X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=4c7b07eca87226591d2c87de4e75ab8f2e65911f;hb=715d1c5a30cc4986018bbf063713f14c34c3e258;hp=5f1bc3a6b55d3fda6955c46ad2c7525242858486;hpb=f25eedf32a7555f71a246c6f491292ce876c4133;p=jquery.git diff --git a/src/core.js b/src/core.js index 5f1bc3a..4c7b07e 100644 --- a/src/core.js +++ b/src/core.js @@ -567,23 +567,20 @@ jQuery.extend({ }, merge: function( first, second ) { - var pos, i = second.length; + var i = first.length, j = 0; - // We have to get length this way when IE & Opera overwrite the length - // expando of getElementsByTagName - if ( i && i.nodeType ) { - for ( i = 0; second[i]; ++i ) {} - } - - pos = i + first.length; - - // Correct length for non Arrays - first.length = pos; - - while ( i ) { - first[ --pos ] = second[ --i ]; + if ( typeof second.length === "number" ) { + for ( var l = second.length; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } } + first.length = i; + return first; },