From: Oleg Date: Thu, 28 Jun 2012 00:55:36 +0000 (+0400) Subject: Optimization of array operations, closes gh-844. X-Git-Tag: 1.8b2~24 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=05aff402310d7db5d15f96b15071af6aa21a2afc;p=jquery.git Optimization of array operations, closes gh-844. --- diff --git a/src/core.js b/src/core.js index 9a506f31e..c92774075 100644 --- a/src/core.js +++ b/src/core.js @@ -197,15 +197,9 @@ jQuery.fn = jQuery.prototype = { // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems, name, selector ) { - // Build a new jQuery matched element set - var ret = this.constructor(); - - if ( jQuery.isArray( elems ) ) { - core_push.apply( ret, elems ); - } else { - jQuery.merge( ret, elems ); - } + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); // Add the old object onto the stack (as a reference) ret.prevObject = this; diff --git a/src/manipulation.js b/src/manipulation.js index 9ca6b0a17..fafccffbb 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -146,10 +146,11 @@ jQuery.fn.extend({ return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this ); }); - } else if ( arguments.length ) { + } + + if ( arguments.length ) { var set = jQuery.clean( arguments ); - set.push.apply( set, this.toArray() ); - return this.pushStack( set, "before", arguments ); + return this.pushStack( jQuery.merge( set, this ), "before", this.selector ); } }, @@ -158,10 +159,11 @@ jQuery.fn.extend({ return this.domManip(arguments, false, function( elem ) { this.parentNode.insertBefore( elem, this.nextSibling ); }); - } else if ( arguments.length ) { - var set = this.pushStack( this, "after", arguments ); - set.push.apply( set, jQuery.clean(arguments) ); - return set; + } + + if ( arguments.length ) { + var set = jQuery.clean( arguments ); + return this.pushStack( jQuery.merge( this, set ), "after", this.selector ); } }, diff --git a/src/traversing.js b/src/traversing.js index 4a68ccb5e..a3b2be213 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -199,7 +199,7 @@ jQuery.each({ contents: function( elem ) { return jQuery.nodeName( elem, "iframe" ) ? elem.contentDocument || elem.contentWindow.document : - jQuery.makeArray( elem.childNodes ); + jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) {