Commit Graph

54 Commits

Author SHA1 Message Date
Timmy Willison
2bdecf8b7b
Build: migrate most grunt tasks off of grunt
Updated tasks include:

- lint
- npmcopy
- build, minify, and process for distribution.
- new custom build command using yargs
- compare size of minified/gzip built files
- pretest scripts, including qunit-fixture, babel transpilation, and npmcopy
- node smoke tests
- promises aplus tests
- new watch task using `rollup.watch` directly

Also:

- upgraded husky and added the new lint command
- updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new
- Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556
- committed package-lock.json
- updated all test scripts to use the new build
- added an express test server that uses middleware-mockserver (this can be used to run tests without karma)
- build-all-variants is now build:all

Close gh-5318
2023-09-18 12:39:00 -04:00
Michał Gołębiowski-Owczarek
258ca1ec6a
Deferred: Rename getStackHook to getErrorHook
Rename `jQuery.Deferred.getStackHook` to `jQuery.Deferred.getErrorHook`
to indicate passing an error instance is usually a better choice - it
works with source maps while a raw stack generally does not.

In jQuery `3.7.0`, we'll keep both names, marking the old one as
deprecated. In jQuery `4.0.0` we'll just keep the new one. This
change implements the `4.0.0` version; PR gh-5212 implements
the `3.7.0` one.

Fixes gh-5201
Closes gh-5211
Ref gh-5212
2023-03-14 22:32:45 +01:00
Michał Gołębiowski-Owczarek
0b9c5037f7
Deferred: Respect source maps in jQuery.Deferred.exceptionHook
So far, `jQuery.Deferred.exceptionHook` used to log error message and stack
separately. However, that breaks browser applying source maps against the stack
trace - most browsers require logging an error instance. This change makes us
do exactly that.

One drawback of the change is that in IE 11 previously stack was printed
directly and now just the error summary; to get to the actual stack
trace, three clicks are required. This seems to be a low price to pay
for having source maps work in all the other browsers, though.

Safari with the new change requires one click to get to the stack trace
which sounds manageable.

Fixes gh-3179
Closes gh-5192
Ref https://crbug.com/622227
2023-02-01 13:46:44 +01:00
Michał Gołębiowski-Owczarek
fae5fee8b4
Tests: Exclude tests based on compilation flags, not API presence
Introduces a new test API, `includesModule`. The method returns whether
a particular module like "ajax" or "deprecated" is included in the current
jQuery build; it handles the slim build as well. The util was created so that
we don't treat presence of particular APIs to decide whether to run a test as
then if we accidentally remove an API, the tests would still not fail.

Fixes gh-5069
Closes gh-5046
2022-06-28 12:39:01 +02:00
Michał Gołębiowski-Owczarek
0f780ba7cc
Build:Tests: Fix custom build tests, verify on Travis
This commit fixes unit tests for the following builds:

1. The no-deprecated build: `custom:-deprecated`
2. The current slim build: `custom:-ajax,-effects`
3. The future (#4553) slim build: `custom:-ajax,-callbacks,-deferred,-effects`

It also adds separate Travis jobs for the no-deprecated & slim builds. 

Closes gh-4577
2020-01-07 23:59:08 +01:00
Michał Gołębiowski-Owczarek
3527a38405
Core: Remove IE-specific support tests, rely on document.documentMode
Also, update some tests to IE-sniff when deciding whether
to skip a test.

Fixes gh-4386
Closes gh-4387
2019-05-13 21:39:56 +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
abnud1
c349818742 Build: Update test code for compatibility with QUnit 2.x (#4297)
Also, run `grunt npmcopy` to sync the "external" directory with dependencies
from package.json. For example, the Sinon library version didn't match.

Ref gh-4234
Closes gh-4297
2019-02-18 19:03:26 +01:00
Michał Gołębiowski-Owczarek
4a2bcc27f9
Tests: Fix Android 4.0 Deferred tests
Closes gh-3967
2018-02-12 20:24:58 +01:00
Jason Bedard
1ea092a54b
Core: deprecate jQuery.type
Fixes gh-3605
Close gh-3895
2018-01-16 10:39:08 -05:00
Jason Bedard
3d732cca6b Core: deprecate jQuery.isFunction
Fixes gh-3609
2018-01-15 09:26:19 -08: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
Richard Gibson
5d79c64663 Deferred: Stop inventing jQuery.when() resolution values
Fixes gh-3442
Closes gh-3445
2016-12-16 11:45:35 -05: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
d5dae259eb Deferred: Propagate progress correctly from unwrapped promises
Progress parameters are now correctly propagated from a deferred to which
another deferred resolved unwrapping it.

Thanks to @gibson042 for the report and a clear description of the problem
and the needed fix.

Fixes gh-3062
Closes gh-3150
2016-06-09 14:53:34 +02:00
Dave Methvin
07c11c03cc Deferred: Give better stack diagnostics on exceptions
Ref gh-2736

The exception stack has the name of the immediately outer function where the
exception occurred, which can be very handy for tracing errors. Since we already
have the exception object we might as well use it.
2016-05-11 20:21:04 -04:00
Richard Gibson
de71e9755f Deferred: Make jQuery.when synchronous when possible
Closes gh-3102
Fixes gh-3100
Closes gh-3105
2016-05-09 12:14:22 -04:00
Richard Gibson
356a3bccb0 Deferred: Separate the two paths in jQuery.when
Single- and no-argument calls act like Promise.resolve.
Multi-argument calls act like Promise.all.

Fixes gh-3029
Closes gh-3059
2016-05-02 12:30:31 -04:00
Richard Gibson
7f1e59343b Deferred: Provide explicit undefined context for jQuery.when raw casts
Fixes gh-3082
Closes gh-3084
2016-04-27 15:33:12 -04:00
Richard Gibson
76084372c2 Deferred: Remove default callback context
Employs strict mode to simplify Deferred callback context handling.

Fixes gh-3060
Closes gh-3061
2016-04-23 00:30:48 -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
5c01cb1cc4 Tests: Fix Deferred tests in Android 5.0's stock Chrome browser & Yandex.Browser
Some Chrome versions newer than 30 but older than 42 display the "undefined is
not a function" error, not mentioning the function name. This has been fixed
in Chrome 42. Relax two tests to allow for this divergence in older Chromoiums.

This affects our Android 5.0 & Yandex.Browser testing.
2016-01-20 13:54:31 +01:00
Dave Methvin
36a7cf9b1e Deferred: Warn on exceptions that are likely programming errors
Fixes gh-2736
Closes gh-2737
2016-01-13 12:39:58 -05:00
Dave Methvin
bdf1b8f317 Deferred: Remove undocumented progress notifications in $.when
Fixes gh-2710
Closes gh-2816
2016-01-13 12:21:17 -05:00
Timmy Willison
78b9eac119 Deferred: syncronize single and multiple target handling in $.when
Fixes gh-2546
Fixes gh-2018
Close gh-2707
2015-11-13 11:16:26 -05:00
Oleg Gaidarenko
c8d15a2f9f Tests: further improvements QUnit 2.0 migration
* Remove QUnit jshint globals
* Extend QUnit.assert methods
* Use assert.async instead of start/stop/done

Ref b930d14ce6
2015-09-08 04:06:20 +03:00
Oleg Gaidarenko
10fdad742a Build: Update jscs and lint files
Fixes gh-2056
2015-09-07 20:03:50 +03:00
Oleg Gaidarenko
b930d14ce6 Tests: partially use new qunit interface
http://qunitjs.com/upgrade-guide-2.x/

For most of the boring work was used
https://github.com/apsdehal/qunit-migrate package

However, it can't update local qunit helpers, plus in some places
old QUnit.asyncTest signature is still used

Fixes gh-2540
2015-08-16 09:02:01 +03:00
Michał Gołębiowski
1c59b308d2 Build: Acknowledge Android 2.3 is not ES5-compatible
Android 2.3 chokes on unquoted reserved words being used as property names
which was making Deferred tests not run.

Acknowledge the sad fact that Android 2.3 is not ES5-compliant browser
and enable the "es3" option in JSHint config.

Fixes gh-2478
Closes gh-2481
2015-07-20 18:37:26 +02:00
Timmy Willison
84ccf2606c Deferred: add .catch handler
Fixes gh-2102
2015-07-06 10:47:30 -04:00
Richard Gibson
002240a6eb Deferred: Always handle progress callbacks before done/fail
Fixes gh-2013
Fixes gh-2010
Closes gh-2210
2015-04-22 15:24:37 -04:00
Richard Gibson
555a50d340 Deferred: Backwards-compatible standards interoperability
Fixes gh-1722
Closes gh-1996
2015-03-20 02:00:17 -04:00
Nicolas HENRY
ab20d9d24f Deferred: Fix $.when with resolved deferred and progress callbacks
Fixes gh-1894
Closes gh-1915
2014-12-25 15:39:28 +03:00
Daniel Herman
584a4af9c8 No ticket: add assertions for jQuery.when( array ). Close gh-1312. 2013-08-19 18:25:42 +02:00
Timmy Willison
0fa52c11cb Update jshintrc to conform to new style guide. Conform to onevar and unused in tests. Fixes #13755. 2013-04-09 11:59:31 -04:00
nanto_vi
e7fdda9819 Propagete context of returned deferred object in Deferred.then(). Fixes #13160 2013-01-07 02:49:15 +09:00
jaubourg
23d7cf0488 Deferred: .resolve(), .reject() and .notify() now set the callback context to the promise instance rather than the deferred instance ; .then() has also been amended. Fixes #11405. 2012-12-07 15:14:12 +01:00
Erick Ruiz de Chavez
efc2d8b1a6 Fixing style for deferred.js unit tests. Close gh-973.
Close jquery/2012-dev-summit/#56
2012-10-16 08:24:18 -04:00
jaubourg
74cdd78497 deferred.promise(obj) should work with non-objects. Fixes #12521. Much needed unit tests added! 2012-09-13 15:44:12 +02:00
Chad Killingsworth
de9bed319e Make unit tests friendly to Closure Compiler. Closes gh-845.
Conflicts:
    	test/unit/effects.js
    	test/unit/offset.js
2012-07-05 15:52:42 -04:00
Rick Waldron
7ff3da186c Unit tests are linted and passing. 2012-06-21 15:30:24 -04:00
jaubourg
f93a2f569d Preserves context objects when multiple Deferreds are passed to $.when(). Context is an array containing the original contexts in order. When non-observable value is given, associated context is undefined. In case only a single non-observable value is given, context is the global object (thanks so much Function.prototype.apply!). Fixes #11749. 2012-05-12 21:41:39 +02:00
Dave Methvin
c5fda2945c Fix #11736. Remove deprecated Deferred.isResolved/isRejected. 2012-05-11 15:02:18 -04:00
jaubourg
a41f240674 Makes Deferred implementation truly Promise/A compliant. Unit tests amended. Actually few changes required in jQuery's own source and we gained 8 bytes minified gzipped \o/. 2012-04-02 01:29:39 +02:00
jaubourg
2a9f0681de Have Deferred.always return the object onto which it is currently attached to enable true chainability. Fixes #10723. Unit tests added. 2011-11-09 01:02:29 +01:00
Mike Sherov
f35ba5e699 Fix #10691. Remove all instances of equals() and same(), as these are deprecated in QUnit. 2011-11-06 15:27:42 -05:00
jaubourg
d29182e8d0 Removes isPending and introduces state as a means to retrieve the Deferred/Promise state. Unit tests amended. 2011-10-11 20:23:56 -04:00
jaubourg
749d32a290 isProgressing becomes isPending. Unit tests added. 2011-10-04 12:08:46 -04:00
jaubourg
4092e3d275 $.Callbacks, $.Topic and notify/progress on $.Deferred. 2011-09-19 15:42:30 -04:00
jaubourg
139135a98a Fixes #9446. Context is properly propagated using pipe. If context was the original deferred, then context is updated to next deferred in the chain. Unit tests added. 2011-07-01 01:51:50 +02:00