Commit Graph

246 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
f75daab091
Core: Use named exports in src/
The `default` export is treated differently across tooling when transpiled
to CommonJS - tools differ on whether `module.exports` represents the full
module object or just its default export. Switch `src/` modules to named
exports for tooling consistency.

Fixes gh-5262
Closes gh-5292
2023-09-12 02:27:19 +02:00
Michał Gołębiowski-Owczarek
d0ce00cdfa
Core: Migrate from AMD to ES modules 🎉
Migrate all source AMD modules to ECMAScript modules. The final bundle
is compiled by a custom build process that uses Rollup under the hood.

Test files themselves are still loaded via RequireJS as that has to work in
IE 11.

Tests can now be run in "Load as modules" mode which replaces the previous
"Load with AMD" option. That option of running tests doesn't work in IE
and Edge as it requires support for dynamic imports.

Some of the changes required by the migration:
* check `typeof` of `noGlobal` instead of using the variable directly
  as it's not available when modules are used
* change the nonce module to be an object as ECMASscript module exports
  are immutable
* remove some unused exports
* import `./core/parseHTML.js` directly in `jquery.js` so that it's not
  being cut out when the `ajax` module is excluded in a custom compilation

Closes gh-4541
2019-11-18 21:15:03 +01:00
Michał Gołębiowski
305f193aa5 Build: Put all AMD modules in "src/" in strict mode
Fixes gh-3073
2016-04-25 20:25:08 +02:00
Oleg Gaidarenko
10fdad742a Build: Update jscs and lint files
Fixes gh-2056
2015-09-07 20:03:50 +03:00
Timmy Willison
cd4a9cd7fa All non-var modules should not indent in their AMD wrappers (just for prettier builds). No functionality changes. 2013-09-09 12:08:00 -04:00
Timmy Willison
b534ee2ccf Always return jQuery in modules that can be included separately 2013-09-08 21:25:27 -04:00
Timmy Willison
6318ae6ab9 AMD-ify jQuery sourcegit s! Woo! Fixes #14113, #14163. 2013-08-15 14:15:49 -04:00
Jason Bedard
e53a919090 Avoid jQuery(this) and a closure for .toggle(Boolean), close gh-1271. 2013-06-02 22:27:40 -04:00
Richard Gibson
d8a35011ec Fix #13835: classes separated by form feed 2013-05-13 21:55:00 -04:00
Jason Bedard
c9267ab078 Only call jQuery(this) when needed. Close gh-1260. 2013-05-09 14:26:13 -04:00
Richard Gibson
ad71f47b27 Fix #13809: Avoid collisions with words reserved by any version of ECMA-262 2013-04-24 09:06:11 -04:00
Oleg Gaidarenko
f1ba486ee3 Adjust tabIndex propHook for modern browsers and return -1 where appropriate. Close gh-1228. 2013-04-08 21:33:17 -04:00
Oleg Gaidarenko
e8731410a4 No ticket. Use data_priv methods instead of jQuery._removeData and jQuery._data; Remove needless, internal second argument of jQuery.cleanData. Closes gh-1234 2013-04-08 15:35:16 -04:00
Oleg
eaedf098b3 No ticket: Small simplification of .removeProp. Close gh-1227. 2013-04-07 23:33:04 -04:00
Richard Gibson
5d1dfe7474 Fix #13539: Utilize Sizzle hooks. Close gh-1215.
(cherry picked from commit 4ef516903e)
2013-04-05 00:37:36 -04:00
Michał Gołębiowski
7049877530 Correct oldIE-related comments, revert some workarounds. Close gh-1207. 2013-04-04 12:55:03 -04:00
Michał Gołębiowski
1205103a72 Update grunt-contrib-jshint to 0.3.0, close gh-1204.
(cherry picked from 4adde5d145)

Conflicts:
	src/data.js
	src/effects.js
2013-04-03 20:51:30 -04:00
ruado1987
c9ca9bf509 Fix #13514: Set selectedIndex to -1 when non-matching value is set on a select. Close gh-1191.
(cherry picked from commit 48d71d0c3e)
2013-03-22 12:47:01 -04:00
Richard Gibson
64b55f0b79 Fix #13315 for IE9: compare typeof xmlNode.method to var instead of literal "undefined" for safer uglification
(cherry picked from commit ec9b38a34f)
2013-01-27 10:04:09 -05:00
Dave Methvin
c0241a47e2 Ref #12945, IE9/10 still needs safe .getAttribute check. 2013-01-04 22:29:27 -05:00
Dave Methvin
e9ab6a74d4 Fix #12945. Check for .getAttribute so IE9 is happy. 2013-01-04 17:35:01 -05:00
Dave Methvin
f75c0627f2 Restore optSelected hack still needed by IE9/10 2012-12-31 14:32:58 -05:00
Timmy Willison
3f66e928c8 2.0: Remove getSetAttribute and getSetInput and oldIE attroperties hooks 2012-12-31 13:23:32 -05:00
Rick Waldron
d50c18e61f Resolved conflict 2012-12-31 13:23:26 -05:00
Timmy Willison
d96fa37666 2.0: Remove style->cssText attroproties fallback 2012-12-31 13:21:47 -05:00
Timmy Willison
0b91e836a3 2.0: Remove support.optSelected 2012-12-31 13:20:24 -05:00
Timmy Willison
049cc9d1eb 2.0: Remove oldIE enctype propFix 2012-12-31 13:20:24 -05:00
Mike Sherov
abead1c86b Fixes #13088: under IE8, $(selector).attr('style') always return lowercase string 2012-12-31 12:30:02 -05:00
Richard Gibson
06f46dad93 let .attr(checked|selected, true) update the property 2012-12-16 10:39:19 -05:00
Richard Gibson
a763ae7277 Fix #11115: Normalize boolean attributes/properties. Close gh-1066. 2012-12-15 23:16:48 -05:00
Richard Gibson
2c40fdd4a8 Fix #12600: don't use value property in place of value attribute. Close gh-1063. 2012-12-14 10:37:20 -05:00
Oleg
13651f296d Fix #9646. Cloned nodes shouldn't affect original in IE7. Close gh-947. 2012-12-13 09:29:40 -05:00
Dave Methvin
aad235b325 Fix #13011. Let 'type' attribute be set if the browser allows. 2012-12-11 23:16:08 -05:00
Richard Gibson
1052f9cb2b save a byte 2012-11-27 09:53:30 -05:00
Richard Gibson
243d4cc83c Don't let removeClass create attributes 2012-11-27 09:46:06 -05:00
Richard Gibson
0877d424e0 Fix #12959: Optimize library-wide patterns 2012-11-27 01:59:22 +01:00
aFarkas
ca5e06a15c Fix #12915, add propHook for scrip src property on oldIE. Close gh-1035. 2012-11-18 21:20:12 -05:00
Richard Gibson
80d45a69ea Fix #12840: remove undocumented parameter "pass" from .attr. Close gh-1017. 2012-11-05 17:21:24 -05:00
Dave Methvin
240b141a22 Fix #10299. Add a propHook for oldIE link href. 2012-11-01 20:50:45 -04:00
Timo Tijhof
36c9ecb0f5 Implement expectation test instead of using _removeData. Close gh-997.
* Removed inline usage of QUnit.reset() because it is messing with the
  expectation model as reset does .empty() which does a recursive cleanData
  on everything in #qunit-fixture, so any expectJqData above .reset() would
  fail negatively.

  Instead of calling reset inline, either updated the following assertions to
  take previous assertions' state into account, or broke the test() up into
  2 tests at the point where it would call QUnit.reset.

* After introducing the new memory leak discovery a whole bunch of tests were
  failing as they didn't clean up everything. However I didn't (yet) add
  QUnit.expectJqData calls all over the place because in most if not all of
  these cases it is valid data storage. For example in test "data()", there
  will be an internal data key for "parsedAttrs". This particular test isn't
  intending to test for memory leaks, so therefor I made the new discovery
  system only push failures when the test contains at least 1 call to
  QUnit.expectJqData.

  When not, we'll assume that whatever data is being stored is acceptable
  because the relevant elements still exist in the DOM anyway (QUnit.reset
  will remove the elements and clean up the data automatically).

  I did add a "Always check jQuery.data" mode in the test suite that will
  trigger it everywhere. Maybe one day we'll include a call to everywhere,
  but for now I'm keeping the status quo: Only consider data left in storage
  to be a problem if the test says so ("opt-in").

* Had to move #fx-tests inside the fixture because ".remove()" test would
  otherwise remove stuff permanently and cause random other tests to fail
  as "#hide div" would yield an empty collection.
  (Why wasn't this in the fixture in the first place?)

  As a result moving fx-tests into the fixture a whole bunch of tests failed
  that relied on arbitrary stuff about the document-wide or fixture-wide
  state (e.g. number of divs etc.). So I had to adjust various tests to
  limit their sample data to not be so variable and unlimited...

* Moved out tests for expando cleanup into a separate test.

* Fixed implied global variable 'pass' in effects.js that was causing
  "TypeError: boolean is not a function" in *UNRELATED* dimensions.js that
  uses a global variable "pass = function () {};" ...

* Removed spurious calls to _removeData. The new test exposed various failures
  e.g. where div[0] isn't being assigned any data anyway.
  (queue.js and attributes.js toggleClass).

* Removed spurious clean up at the bottom of test() functions that are
  already covered by the teardown (calling QUnit.reset or removeClass to
  supposedly undo any changes).

* Documented the parentheses-less magic line in toggleClass. It appeared that
  it would always keep the current class name if there was any (since the
  assignment started with "this.className || ...".

  Adding parentheses + spacing is 8 bytes (though only 1 in gzip apparently).
  Only added the comment for now, though I prefer clarity with logical
  operators, I'd rather not face the yayMinPD[1] in this test-related commit.

* Updated QUnit urlConfig to the new format (raw string is deprecated).

* Clean up odd htmlentities in test titles, QUnit escapes this.
  (^\s+test\(.*)(&gt\;) → $1>
  (^\s+test\(.*)(&lt\;) → $1<

[1] jQuery MinJsGz Release Police Department (do the same, download less)
2012-10-28 22:44:57 -04:00
Timmy Willison
2eff7fe72d Sizzle: remove unneeded vars and POS regex (-22 bytes) 2012-10-24 10:35:08 -04:00
Matthias Jäggli
227c49a459 Fix #12411, .removeClass(undefined) is a chaining no-op. Close gh-913.
.removeClass() //removes all classes, as documented
.removeClass(window.nonExistentVariable) // removes nothing
2012-10-21 21:06:41 -04:00
Sai Wong
2b0e720406 Fix #12048. Set attributes for XML fragments. Close gh-965. 2012-10-20 15:27:43 -04:00
Akintayo Akinwunmi
78617f067a Moved attrFN to deprecated. Close gh-977. 2012-10-16 10:01:18 -04:00
Richard Gibson
425d17de83 Fix #12583: Don't ignore disabled property of select-one, close gh-932. 2012-10-03 21:14:08 -04:00
Richard Gibson
15b5dbfe23 Fix #12229, size/consistency improvements. Close gh-887. 2012-09-18 18:04:31 -04:00
Dave Methvin
37e8b44884 Add back a sacrificial $.attrFn object.
Originally removed in 86b775d036 as part of the enhancement that allows $(html, props) to use any $.fn method.

Although $.attrFn is undocumented it appears to be a poorly kept secret. jQuery Mobile 1.1 is using it and it's the topic of several blog/StackOverflow posts. Leave an empty object here as a dumpster for now, but it's coming out for good in 1.9.
2012-08-07 13:45:47 -04:00
Richard Gibson
c14a6b385f Clean up regexen; use common regex for numbers. Close gh-862. 2012-07-22 22:23:32 -04:00
Dave Methvin
c29660c593 Revert "Fix #11397. Shush Firefox warning by re-breaking #6932 for BB 4.7."
This reverts commit e866893fd2.

Failures in IE6 when this is removed, unfortunately.
2012-07-12 15:28:58 -04:00
Dave Methvin
e866893fd2 Fix #11397. Shush Firefox warning by re-breaking #6932 for BB 4.7.
At this point BlackBerry 4.7 (and related ancient browsers) should be scarce (released circa 2008) so #6932 will be closed wontfix for this edge case.
2012-07-12 15:10:58 -04:00