Commit Graph

41 Commits

Author SHA1 Message Date
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
jaubourg
8c13cfa805 Fixes #9104. Returning null or undefined in a pipe callback shouldn't end up throwing an exception. Silly, silly, me. 2011-05-09 10:01:20 +02:00
jaubourg
7a1c6beab0 Renames chain as pipe. 2011-04-08 17:35:08 +02:00
jaubourg
bb99899ca0 Adds always and chain methods to deferreds. 2011-04-07 05:49:32 +02:00
jaubourg
2d0bc7ce72 Moves Deferred-related code into a separate module. Context handling has been simplified in _Deferred.resolve and jQuery.when has been refactored for clarity (and minor optimization). 2011-03-03 19:38:06 +01:00