Fixes #9104. Returning null or undefined in a pipe callback shouldn't end up throwing an exception. Silly, silly, me.
This commit is contained in:
parent
efd0fce7a1
commit
8c13cfa805
2 changed files with 11 additions and 3 deletions
|
@ -119,7 +119,7 @@ jQuery.extend({
|
|||
if ( jQuery.isFunction( fn ) ) {
|
||||
deferred[ handler ](function() {
|
||||
returned = fn.apply( this, arguments );
|
||||
if ( jQuery.isFunction( returned.promise ) ) {
|
||||
if ( returned && jQuery.isFunction( returned.promise ) ) {
|
||||
returned.promise().then( newDefer.resolve, newDefer.reject );
|
||||
} else {
|
||||
newDefer[ action ]( returned );
|
||||
|
|
|
@ -145,7 +145,7 @@ jQuery.each( [ "", " - new operator" ], function( _, withNew ) {
|
|||
|
||||
test( "jQuery.Deferred.pipe - filtering (done)", function() {
|
||||
|
||||
expect(3);
|
||||
expect(4);
|
||||
|
||||
var defer = jQuery.Deferred(),
|
||||
piped = defer.pipe(function( a, b ) {
|
||||
|
@ -173,11 +173,15 @@ test( "jQuery.Deferred.pipe - filtering (done)", function() {
|
|||
jQuery.Deferred().reject().pipe(function() {
|
||||
ok( false, "pipe should not be called on reject" );
|
||||
});
|
||||
|
||||
jQuery.Deferred().resolve().pipe( jQuery.noop ).done(function( value ) {
|
||||
strictEqual( value, undefined, "pipe done callback can return undefined/null" );
|
||||
});
|
||||
});
|
||||
|
||||
test( "jQuery.Deferred.pipe - filtering (fail)", function() {
|
||||
|
||||
expect(3);
|
||||
expect(4);
|
||||
|
||||
var defer = jQuery.Deferred(),
|
||||
piped = defer.pipe( null, function( a, b ) {
|
||||
|
@ -205,6 +209,10 @@ test( "jQuery.Deferred.pipe - filtering (fail)", function() {
|
|||
jQuery.Deferred().resolve().pipe( null, function() {
|
||||
ok( false, "pipe should not be called on resolve" );
|
||||
} );
|
||||
|
||||
jQuery.Deferred().reject().pipe( null, jQuery.noop ).fail(function( value ) {
|
||||
strictEqual( value, undefined, "pipe fail callback can return undefined/null" );
|
||||
});
|
||||
});
|
||||
|
||||
test( "jQuery.Deferred.pipe - deferred (done)", function() {
|
||||
|
|
Loading…
Reference in a new issue