From 4b25b147ab60a026ba1841b313d713fe57530b04 Mon Sep 17 00:00:00 2001 From: Ariel Flesler Date: Thu, 25 Dec 2008 19:25:30 +0000 Subject: [PATCH] jquery core: Closes #3641. jQuery.merge stopped looping once a 0 was found. --- src/core.js | 4 ++-- test/unit/core.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/core.js b/src/core.js index a38e91ac..b35abade 100644 --- a/src/core.js +++ b/src/core.js @@ -1149,12 +1149,12 @@ jQuery.extend({ // Also, we need to make sure that the correct elements are being returned // (IE returns comment nodes in a '*' query) if ( !jQuery.support.getAll ) { - while ( (elem = second[ i++ ]) ) + while ( (elem = second[ i++ ]) != null ) if ( elem.nodeType != 8 ) first[ pos++ ] = elem; } else - while ( (elem = second[ i++ ]) ) + while ( (elem = second[ i++ ]) != null ) first[ pos++ ] = elem; return first; diff --git a/test/unit/core.js b/test/unit/core.js index 1ae2dfa5..679d5042 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1138,6 +1138,21 @@ test("is(String)", function() { ok( jQuery('#en').is('[lang="de"] , [lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' ); }); +test("jQuery.merge()", function() { + var parse = jQuery.merge; + + same( parse([],[]), [], "Empty arrays" ); + + same( parse([1],[2]), [1,2], "Basic" ); + same( parse([1,2],[3,4]), [1,2,3,4], "Basic" ); + + same( parse([1,2],[]), [1,2], "Second empty" ); + same( parse([],[1,2]), [1,2], "First empty" ); + + // Fixed at [5998], #3641 + same( parse([-2,-1], [0,1,2]), [-2,-1,0,1,2], "Second array including a zero (falsy)"); +}); + test("jQuery.extend(Object, Object)", function() { expect(20);