Commit 05aff402 authored by Oleg's avatar Oleg Committed by Dave Methvin

Optimization of array operations, closes gh-844.

parent f8baea8f
...@@ -197,15 +197,9 @@ jQuery.fn = jQuery.prototype = { ...@@ -197,15 +197,9 @@ jQuery.fn = jQuery.prototype = {
// Take an array of elements and push it onto the stack // Take an array of elements and push it onto the stack
// (returning the new matched element set) // (returning the new matched element set)
pushStack: function( elems, name, selector ) { 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 { // Build a new jQuery matched element set
jQuery.merge( ret, elems ); var ret = jQuery.merge( this.constructor(), elems );
}
// Add the old object onto the stack (as a reference) // Add the old object onto the stack (as a reference)
ret.prevObject = this; ret.prevObject = this;
......
...@@ -146,10 +146,11 @@ jQuery.fn.extend({ ...@@ -146,10 +146,11 @@ jQuery.fn.extend({
return this.domManip(arguments, false, function( elem ) { return this.domManip(arguments, false, function( elem ) {
this.parentNode.insertBefore( elem, this ); this.parentNode.insertBefore( elem, this );
}); });
} else if ( arguments.length ) { }
if ( arguments.length ) {
var set = jQuery.clean( arguments ); var set = jQuery.clean( arguments );
set.push.apply( set, this.toArray() ); return this.pushStack( jQuery.merge( set, this ), "before", this.selector );
return this.pushStack( set, "before", arguments );
} }
}, },
...@@ -158,10 +159,11 @@ jQuery.fn.extend({ ...@@ -158,10 +159,11 @@ jQuery.fn.extend({
return this.domManip(arguments, false, function( elem ) { return this.domManip(arguments, false, function( elem ) {
this.parentNode.insertBefore( elem, this.nextSibling ); this.parentNode.insertBefore( elem, this.nextSibling );
}); });
} else if ( arguments.length ) { }
var set = this.pushStack( this, "after", arguments );
set.push.apply( set, jQuery.clean(arguments) ); if ( arguments.length ) {
return set; var set = jQuery.clean( arguments );
return this.pushStack( jQuery.merge( this, set ), "after", this.selector );
} }
}, },
......
...@@ -199,7 +199,7 @@ jQuery.each({ ...@@ -199,7 +199,7 @@ jQuery.each({
contents: function( elem ) { contents: function( elem ) {
return jQuery.nodeName( elem, "iframe" ) ? return jQuery.nodeName( elem, "iframe" ) ?
elem.contentDocument || elem.contentWindow.document : elem.contentDocument || elem.contentWindow.document :
jQuery.makeArray( elem.childNodes ); jQuery.merge( [], elem.childNodes );
} }
}, function( name, fn ) { }, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) { jQuery.fn[ name ] = function( until, selector ) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment