X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore.js;h=f6f0bd592cb416affed841b5cd87116e81b7e0d6;hb=e6fccd71031bd37300c1dfe79873b3d2529b4775;hp=1353ebad2b66ac5edcff4bca9406bc97bd0bc99b;hpb=17b1e407d101c5c7f91db633df3a80cd9b4466ae;p=jquery.git diff --git a/src/core.js b/src/core.js index 1353eba..f6f0bd5 100644 --- a/src/core.js +++ b/src/core.js @@ -465,13 +465,13 @@ jQuery.fn = jQuery.prototype = { var parts = key.split("."); parts[1] = parts[1] ? "." + parts[1] : ""; - if ( value == null ) { + if ( value === undefined ) { var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]); - if ( data == undefined && this.length ) + if ( data === undefined && this.length ) data = jQuery.data( this[0], key ); - return data == null && parts[1] ? + return data === undefined && parts[1] ? this.data( parts[0] ) : data; } else @@ -566,9 +566,9 @@ jQuery.extend = jQuery.fn.extend = function() { target = {}; // extend jQuery itself if only one argument is passed - if ( length == 1 ) { + if ( length == i ) { target = this; - i = 0; + --i; } for ( ; i < length; i++ ) @@ -576,17 +576,19 @@ jQuery.extend = jQuery.fn.extend = function() { if ( (options = arguments[ i ]) != null ) // Extend the base object for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + // Prevent never-ending loop - if ( target === options[ name ] ) + if ( target === copy ) continue; // Recurse if we're merging object values - if ( deep && options[ name ] && typeof options[ name ] == "object" && target[ name ] && !options[ name ].nodeType ) - target[ name ] = jQuery.extend( deep, target[ name ], options[ name ] ); + if ( deep && copy && typeof copy == "object" && src && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, src, copy ); // Don't bring in undefined values - else if ( options[ name ] != undefined ) - target[ name ] = options[ name ]; + else if ( copy !== undefined ) + target[ name ] = copy; } @@ -667,7 +669,7 @@ jQuery.extend({ jQuery.cache[ id ] = {}; // Prevent overriding the named cache with undefined values - if ( data != undefined ) + if ( data !== undefined ) jQuery.cache[ id ][ name ] = data; // Return the named cache data, or the ID for the element