diff --git a/src/core.js b/src/core.js index efb16830..67429f77 100644 --- a/src/core.js +++ b/src/core.js @@ -936,20 +936,15 @@ jQuery.extend({ }, // Check if an object is a deferred - isDeferred: function( object , method ) { - method = method || "then"; - return !!( object && object[ method ] && object[ method ]._ === deferredMarker ); + isDeferred: function( object ) { + return !!( object && object.then && object.then._ === deferredMarker ); }, // Deferred helper - when: function( object , method ) { - method = method || "then"; - object = jQuery.isDeferred( object , method ) ? + when: function( object ) { + object = jQuery.isDeferred( object ) ? object : jQuery.Deferred().resolve( object ); - object.fail = object.fail || function() { return this; }; - object[ method ] = object[ method ] || object.then; - object.then = object.then || object[ method ]; return object; }, diff --git a/test/unit/core.js b/test/unit/core.js index 19670074..e0938b68 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1024,7 +1024,7 @@ test("jQuery.Deferred()", function() { test("jQuery.isDeferred()", function() { - expect( 11 ); + expect( 10 ); var object1 = { then: function() { return this; } }, object2 = { then: function() { return this; } }; @@ -1049,14 +1049,13 @@ test("jQuery.isDeferred()", function() { object1 = {custom: jQuery._Deferred().then}; ok(!jQuery.isDeferred(object1) , "custom method name not found automagically"); - ok(jQuery.isDeferred(object1,"custom") , "custom method name"); }); test("jQuery.when()", function() { - expect( 5 ); + expect( 2 ); - var cache, i, deferred = { done: jQuery.Deferred().resolve( 1 ).then }; + var cache, i; for( i = 1 ; i < 3 ; i++ ) { jQuery.when( cache || jQuery.Deferred( function() { @@ -1068,22 +1067,4 @@ test("jQuery.when()", function() { ok( false , "Fail called" ); }); } - - cache = 0; - - for( i = 1 ; i < 3 ; i++ ) { - jQuery.when( cache || deferred , "done" ).done( function( value ) { - strictEqual( value , 1 , "Custom method: resolved" + ( i > 1 ? " only once" : "" ) ); - cache = value; - }).fail( function() { - ok( false , "Custom method: fail called" ); - }); - } - - stop(); - - jQuery.when( jQuery( document ) , "ready" ).then( function( test ) { - strictEqual( test , jQuery , "jQuery.fn.ready recognized as a deferred" ); - start(); - }); });