Bug Tracker

Changeset 5385

Show
Ignore:
Timestamp:
05/02/08 19:49:41 (7 months ago)
Author:
scott.gonzalez
Message:

core: Fixed #2600: jQuery.extend no longer skips over null properties.

Location:
trunk/jquery
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/jquery/src/core.js

    r5374 r5385  
    588588 
    589589                // Don't bring in undefined values 
    590                 else if ( copy != undefined ) 
     590                else if ( copy !== undefined ) 
    591591                    target[ name ] = copy; 
    592592 
  • trunk/jquery/test/unit/core.js

    r5348 r5385  
    10261026 
    10271027test("$.extend(Object, Object)", function() { 
    1028     expect(17); 
     1028    expect(20); 
    10291029 
    10301030    var settings = { xnumber1: 5, xnumber2: 7, xstring1: "peter", xstring2: "pan" }, 
     
    10501050    isObj( deep2.foo, deep2copy.foo, "Check if not deep2: options must not be modified" ); 
    10511051    equals( deep1.foo2, document, "Make sure that a deep clone was not attempted on the document" ); 
    1052  
     1052     
     1053    var nullUndef; 
     1054    nullUndef = jQuery.extend({}, options, { xnumber2: null }); 
     1055    ok( nullUndef.xnumber2 === null, "Check to make sure null values are copied"); 
     1056     
     1057    nullUndef = jQuery.extend({}, options, { xnumber2: undefined }); 
     1058    ok( nullUndef.xnumber2 === options.xnumber2, "Check to make sure undefined values are not copied"); 
     1059     
     1060    nullUndef = jQuery.extend({}, options, { xnumber0: null }); 
     1061    ok( nullUndef.xnumber0 === null, "Check to make sure null values are inserted"); 
     1062     
    10531063    var target = {}; 
    10541064    var recursive = { foo:target, bar:5 };