Bug Tracker

Opened 12 years ago

Closed 12 years ago

Last modified 8 years ago

#1907 closed bug (fixed)

jQuery.extend() deep destroys array of zero

Reported by: genezys Owned by:
Priority: major Milestone: 1.2.2
Component: core Version: 1.2.1
Keywords: Cc:
Blocked by: Blocking:

Description

jQuery.extend(true, {plop:[]}, {plop:[0]}) 

returns an object where plop is an empty array.

Change History (2)

comment:1 Changed 12 years ago by davidserduke

It appears this is a coersion problem. In jQuery.extend there is a section

// Prevent never-ending loop
if ( target == prop[i] )
  continue;

Coersion says that [] is false and 0 is false. So they are equal. This test should probably use === instead.

comment:2 Changed 12 years ago by davidserduke

Resolution: fixed
Status: newclosed

Fixed in [3841].

Note, the code treats all objects the same with no special handling for Arrays at this point.

Note: See TracTickets for help on using tickets.