Commit Graph

651 Commits

Author SHA1 Message Date
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
Ahmed.S.ElAfifi
9df4f1de12 Core: Use Array.prototype.flat where supported
Calling `Array.prototype.concat.apply( [], inputArray )` to flatten `inputArray`
crashes for large arrays; using `Array.prototype.flat` avoids these issues in
browsers that support it. In case it's necessary to support these large arrays
even in older browsers, a polyfill for `Array.prototype.flat` can be loaded.
This is already being done by many applications.

Fixes gh-4320
Closes gh-4459
2019-09-25 01:38:21 +02:00
Michał Gołębiowski-Owczarek
b59107f5d7
Core: Remove private copies of push, sort & splice from the jQuery prototype
Closes gh-4473
2019-09-24 02:12:36 +02:00
Michał Gołębiowski-Owczarek
78420d427c
Core: Implement .even() & .odd() to replace POS :even & :odd
`:even` & `:odd` are deprecated since jQuery 3.4.0 & will be removed in 4.0.0.
The new `even()` & `odd()` methods will make the migration easier.

Closes gh-4485
2019-09-24 02:04:53 +02:00
Shashanka Nataraj
5ea5946094 Core: Deprecate jQuery.trim
Fixes gh-4363
Closes gh-4461
2019-08-22 02:06:26 +02:00
Michał Gołębiowski-Owczarek
47835965bd Selector: Inline Sizzle into the selector module
This commit removes Sizzle from jQuery, inlining its code & removing obsolete
workarounds where applicable.

The selector-native module has been removed. Further work on the selector
module may decrease the size enough that it will no longer be necessary. If
it turns out it's still useful, we'll reinstate it but the code will look
different anyway as we'll want to share as much code as possible with
the existing selector module.

The Sizzle AUTHORS.txt file has been merged with the jQuery one - people are
sorted by their first contributions to either of the two repositories.

The commit reduces the gzipped jQuery size by 1460 bytes compared to master.

Closes gh-4395
2019-07-29 21:19:21 +02:00
Michał Gołębiowski-Owczarek
438b1a3e8a
Build: ESLint: forbid unused function parameters
This commit requires all function parameters to be used, not just the last one.
In cases where that's not possible as we need to match an external API, there's
an escape hatch of prefixing an unused argument with `_`.

This change makes it easier to catch unused AMD dependencies and unused
parameters in internal functions the API of which we may change at will, among
other things.

Unused AMD dependencies have been removed as part of this commit.

Closes gh-4381
2019-05-13 22:25:11 +02:00
Michał Gołębiowski-Owczarek
cf84696fd1
Core: Drop support for IE <11, iOS <11, Firefox <65, Android Browser & PhantomJS
Also, update support comments format to match format described in:
https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69379197
with the change from:
https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-448998379
(open-ended ranges end with `+`).

Fixes gh-3950
Fixes gh-4299
Closes gh-4347
2019-04-29 22:56:09 +02:00
Michał Gołębiowski-Owczarek
753d591aea
Core: Prevent Object.prototype pollution for $.extend( true, ... )
Closes gh-4333
2019-03-25 17:57:30 +01:00
Michał Gołębiowski-Owczarek
5bdc85b82b
Core: Support passing nonce through jQuery.globalEval
Fixes gh-4278
Closes gh-4280
Ref gh-3541
Ref gh-4269
2019-01-21 18:42:39 +01:00
Marja Hölttä
4ffb1df8e4 Core: Tiny efficiency fix to jQuery.extend / jQuery.fn.extend (#4246)
Read target[name] only when it's needed.

In addition to doing the property read-only when needed, this
avoids a slow path in V8 (see the issue for more details).

Fixes gh-4245
Closes gh-4246
2018-12-12 17:13:18 +01:00
Ed S
dc05f3c1d5 Build: Remove unnecessary ESLint exception
The linked-to issue was fixed 2 years ago.

Closes gh-4095
2018-06-18 18:50:16 +02:00
Jason Bedard
1ea092a54b
Core: deprecate jQuery.type
Fixes gh-3605
Close gh-3895
2018-01-16 10:39:08 -05:00
Jason Bedard
c4494d4abc Core: deprecate jQuery.isNumeric
Fixes gh-2960
Closes gh-3888
2018-01-15 20:50:02 -08:00
Jason Bedard
3d732cca6b Core: deprecate jQuery.isFunction
Fixes gh-3609
2018-01-15 09:26:19 -08:00
Timmy Willison
3a8e44745c
Core: deprecate jQuery.proxy (not slated for removal)
Fixes gh-2958
Close gh-3885
2018-01-08 11:28:35 -05:00
Timmy Willison
909e0c9925
Core: deprecate jQuery.now
Fixes gh-2959
Close gh-3884
2018-01-08 11:24:45 -05:00
Nilton Cesar
64a289286a
Core: make camelCase function available only for internal usage
Close gh-3604
Fixes gh-3384
2018-01-08 11:21:22 -05:00
Shashanka Nataraj
c18d608537
Core: Deprecate jQuery.isWindow
Fixes gh-3629
Close gh-3702
2017-07-10 12:00:27 -04:00
Michał Gołębiowski
731c501155 Docs:Tests: Update IE/Edge-related support comments & tests
Closes gh-3661
2017-05-15 20:37:14 +02:00
Richard Gibson
a16339b893 Core: Update isFunction to handle unusual-@@toStringTag input
Ref gh-3597
Fixes gh-3600
Fixes gh-3596
Closes gh-3617
2017-04-24 12:39:25 -04:00
karan-96
ac9e301664 Core: Deprecate jQuery.nodeName
Fixes gh-3475
Closes gh-3505
2017-03-01 11:48:11 +01:00
Manoj Kumar
1b9575b9d1 Core: Deprecate jQuery.isArray
Fixes gh-2961
Closes gh-3278
2016-11-30 12:22:24 +01:00
Oleg Gaidarenko
6acf4a7946 Build: .eslintrc -> .eslintrc.json
`.eslintrc` format is deprecated -
http://eslint.org/docs/user-guide/configuring#configuration-file-formats

Fixes gh-3248
Closes gh-3247
2016-08-02 21:16:20 +03:00
Oleg Gaidarenko
e4fd41f8fa Build: Update eslint config and fix associated errors 2016-07-15 21:42:25 +04:00
Oleg Gaidarenko
58c6ca9822 Build: ESLint details
Use eslint pragmas, fix new errors, etc

Closes gh-3148
2016-06-11 10:41:33 +03: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
Richard Gibson
e0d3bfa770 Core: Simplify isPlainObject
Fixes gh-2986
Close gh-2998
2016-04-04 12:02:13 -04:00
Michał Gołębiowski
6072d150d6 Docs: Update support comments to follow the new syntax
The changes follow the spec proposed in:
https://github.com/jquery/contribute.jquery.org/issues/95#issuecomment-69379197
2016-03-30 23:45:17 +02:00
Michał Gołębiowski
693f1b537b Docs: Update support comments related to IE
All support comments were checked for Edge applicability.
2016-03-30 11:21:36 +02:00
Richard Gibson
0c1f72667d Core: Restore 1.x isPlainObject constructor checks
- Guard isPlainObject against inherited scalar constructors

Fixes gh-2982
Close gh-2985
2016-03-14 11:45:07 -04:00
Timmy Willison
00575d4d8c Core: restore enumeration behavior in isPlainObject
Fixes gh-2968
Close gh-2970
2016-03-07 11:12:47 -05:00
Steve Mao
7103d8ef47 Core: Improve isNumeric logic and test coverage
Also add back accidentally deleted comments about the implementation.

Fixes gh-2780
Ref gh-2663
Ref gh-2781
Closes gh-2827
2016-01-24 19:07:09 -05:00
Oleg Gaidarenko
6680c1b29e Core: do not expose second argument of the jQuery.globalEval
Closes jquery/api.jquery.com#831
Closes gh-2718
2015-12-02 17:09:01 +03:00
Timmy Willison
22449eb968 Manipulation: execute scripts from iframe in the iframe's context
Fixes gh-1757
Close gh-2696
2015-11-09 14:14:30 -05:00
Timmy Willison
15ac848868 Core: make isNumeric limited to strings and numbers
Fixes gh-2662
2015-10-21 16:22:22 -04:00
Liza Ramo
0703fd52ef Core: make isNumeric test work on Symbol
Ref #2645
Closes #2657
2015-10-17 16:50:05 -04:00
Christian Grete
8a734344f2 Core: Support Symbol wrapper objects in jQuery.type
In ECMAScript 2015 (ES6), the native typeof operator returns "symbol"
for Symbol primitives. As it is possible to wrap symbols using the
Object constructor, symbols can be objects as well as any other
primitive type in JavaScript and should be determined by jQuery.type.

Closes gh-2627
2015-10-13 01:18:20 +03:00
Yongwoo Jeon
98cee73244 Core: Remove unnecessary parameter to jQuery#constructor
Closes gh-2441
2015-09-08 02:30:26 +02:00
Oleg Gaidarenko
10fdad742a Build: Update jscs and lint files
Fixes gh-2056
2015-09-07 20:03:50 +03:00
Thomas Tortorini
bf48c21d22 Core: .each/.map should accept an undefined/null value
Fixes gh-2267
Closes gh-2363
2015-07-27 19:57:34 +02:00
Michał Gołębiowski
bb026fc12c Core: Make jQuery objects iterable
Make iterating over jQuery objects possible using ES 2015 for-of:

    for ( node of $( "<div id=narwhal>" ) ) {
        console.log( node.id ); // "narwhal"
    }

Fixes gh-1693
2015-06-13 23:14:36 +02:00
Mu Haibao
436f0aee0a Core: remove isArraylike check for nodes
Fixes gh-2238
Close gh-2243
2015-05-05 10:21:10 -07:00
Timmy Willison
172cad80ac Data: camelCasing should not ignore case
Fixes gh-2070
2015-05-04 10:49:21 -04:00
Timmy Willison
2862a07af6 Data: do not include digits when camelCasing
Fixes gh-1751
2015-05-03 08:25:19 -04:00
Timmy Willison
1541664582 Core: add workaround for iOS JIT error in isArrayLike
Fixes gh-2145
2015-04-29 18:02:45 -04:00
Oleg Gaidarenko
2380028ec4 Core: change jQuery.each and jQuery#each signatures
Fixes gh-2090
Closes gh-2097
2015-02-19 11:30:59 +03:00
Dave Methvin
0ea8c32863 Core: Remove deprecated context and selector properties
Fixes gh-1908
Closes gh-2000
2015-01-11 21:11:56 -05:00
Michał Gołębiowski
76df9e4e38 Build: Don't assume the browser environment; smoke test on Node w/ jsdom
Fixes gh-1950
Closes gh-1949
2014-12-26 13:26:46 +01:00
Timmy Willison
59232825aa Core: remove unnecessary support test for createHTMLDocument 2014-12-09 15:57:12 -05:00