From f8e5fd6fef68d243d22c593584aaf4ee549ed30c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Zaefferer?= Date: Thu, 24 Apr 2008 21:23:36 +0000 Subject: [PATCH] jquery core: Patch from #2619 applied, making makeArray more flexible and faster; removed hint to ticket from (previously failing) test --- src/core.js | 13 +++++++------ test/unit/core.js | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/core.js b/src/core.js index 6308a999..072642f6 100644 --- a/src/core.js +++ b/src/core.js @@ -1123,12 +1123,13 @@ jQuery.extend({ makeArray: function( array ) { var ret = []; - // Need to use typeof to fight Safari childNodes crashes - if ( array.constructor != Array ) - for ( var i = 0, length = array.length; i < length; i++ ) - ret.push( array[ i ] ); - else - ret = array.slice( 0 ); + if( array != undefined ) + //strings and functions also have 'length' + if( array.length != undefined && !array.split && !array.call ) + for( var i = array.length; i; ) + ret[--i] = array[i]; + else + ret[0] = array; return ret; }, diff --git a/test/unit/core.js b/test/unit/core.js index 412ba39c..b79b8cb2 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1562,7 +1562,7 @@ test("contents()", function() { equals( c[0].nodeValue, "hi", "Check node,textnode,comment contents is just the one from span" ); }); -test("makeArray(#2619)", function(){ +test("$.makeArray", function(){ expect(11); equals( $.makeArray(document.getElementsByName("PWD")).slice(0,1)[0].name, "PWD", "Pass makeArray a nodelist" );