Skip to content
Permalink
Browse files

Remove the need for the internal setArray method, it was only really …

…used by pushStack anyway. Fixes #6003.
  • Loading branch information
jeresig committed Feb 13, 2010
1 parent 8404ad6 commit 7a467ed9360c2c55ea55a56e5767c9581e4f4f69
Showing with 8 additions and 13 deletions.
  1. +8 −13 src/core.js
@@ -197,7 +197,14 @@ jQuery.fn = jQuery.prototype = {
// (returning the new matched element set)
pushStack: function( elems, name, selector ) {
// Build a new jQuery matched element set
var ret = jQuery( elems || null );
var ret = jQuery();

if ( jQuery.isArray( elems ) ) {
push.apply( ret, elems );

} else {
jQuery.merge( ret, elems );
}

// Add the old object onto the stack (as a reference)
ret.prevObject = this;
@@ -214,18 +221,6 @@ jQuery.fn = jQuery.prototype = {
return ret;
},

// Force the current matched set of elements to become
// the specified array of elements (destroying the stack in the process)
// You should use pushStack() in order to do this, but maintain the stack
setArray: function( elems ) {
// Resetting the length to 0, then using the native Array push
// is a super-fast way to populate an object with array-like properties
this.length = 0;
push.apply( this, elems );

return this;
},

// Execute a callback for every element in the matched set.
// (You can seed the arguments with an array of args, but this is
// only used internally.)

2 comments on commit 7a467ed

@sunliangqin

This comment has been minimized.

Copy link

sunliangqin replied Feb 26, 2010

Line 200 - 207: why not use jQuery.merge(ret, elems) directly?

@jeresig

This comment has been minimized.

Copy link
Member Author

jeresig replied Feb 26, 2010

It's faster to use push.apply if the incoming set is already an array.

Please sign in to comment.
You can’t perform that action at this time.