.fail( newDefer.reject )
.progress( newDefer.notify );
} else {
- newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+ newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, [ returned ] );
}
} :
newDefer[ action ]
}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
}
- // deferred[ resolve | reject | notify ] = list.fire
- deferred[ tuple[0] ] = list.fire;
+ // deferred[ resolve | reject | notify ]
+ deferred[ tuple[0] ] = function() {
+ deferred[ tuple[0] + "With" ]( promise, arguments );
+ return this;
+ };
deferred[ tuple[0] + "With" ] = list.fireWith;
});
defer.resolve( 2 );
piped.done(function( value ) {
- strictEqual( this.promise(), piped, "default context gets updated to latest defer in the chain" );
+ strictEqual( this, piped, "default context gets updated to latest promise in the chain" );
strictEqual( value, 6, "proper value received" );
});
});
expected = shouldResolve ? [ 1, 1 ] : [ 0, undefined ],
expectedNotify = shouldNotify && [ willNotify[ id1 ], willNotify[ id2 ] ],
code = id1 + "/" + id2,
- context1 = defer1 && jQuery.isFunction( defer1.promise ) ? defer1 : undefined,
- context2 = defer2 && jQuery.isFunction( defer2.promise ) ? defer2 : undefined;
+ context1 = defer1 && jQuery.isFunction( defer1.promise ) ? defer1.promise() : undefined,
+ context2 = defer2 && jQuery.isFunction( defer2.promise ) ? defer2.promise() : undefined;
jQuery.when( defer1, defer2 ).done(function( a, b ) {
if ( shouldResolve ) {