git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0db207d
)
Landing some minor perf optimization to jQuery().
author
jeresig
<jeresig@gmail.com>
Thu, 28 Jan 2010 22:17:51 +0000
(17:17 -0500)
committer
jeresig
<jeresig@gmail.com>
Thu, 28 Jan 2010 22:17:51 +0000
(17:17 -0500)
src/core.js
patch
|
blob
|
history
test/unit/core.js
patch
|
blob
|
history
diff --git
a/src/core.js
b/src/core.js
index
81b4831
..
2271ceb
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-69,6
+69,14
@@
jQuery.fn = jQuery.prototype = {
this.length = 1;
return this;
}
this.length = 1;
return this;
}
+
+ // The body element only exists once, optimize finding it
+ if ( selector === "body" && !context ) {
+ this.context = this[0] = document.body;
+ this.selector = "body";
+ this.length = 1;
+ return this;
+ }
// Handle HTML strings
if ( typeof selector === "string" ) {
// Handle HTML strings
if ( typeof selector === "string" ) {
@@
-99,7
+107,7
@@
jQuery.fn = jQuery.prototype = {
ret = buildFragment( [ match[1] ], [ doc ] );
selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
}
ret = buildFragment( [ match[1] ], [ doc ] );
selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
}
-
+
return jQuery.merge( this, selector );
// HANDLE: $("#id")
return jQuery.merge( this, selector );
// HANDLE: $("#id")
@@
-128,6
+136,7
@@
jQuery.fn = jQuery.prototype = {
this.selector = selector;
this.context = document;
selector = document.getElementsByTagName( selector );
this.selector = selector;
this.context = document;
selector = document.getElementsByTagName( selector );
+ return jQuery.merge( this, selector );
// HANDLE: $(expr, $(...))
} else if ( !context || context.jquery ) {
// HANDLE: $(expr, $(...))
} else if ( !context || context.jquery ) {
@@
-150,9
+159,7
@@
jQuery.fn = jQuery.prototype = {
this.context = selector.context;
}
this.context = selector.context;
}
- return jQuery.isArray( selector ) ?
- this.setArray( selector ) :
- jQuery.makeArray( selector, this );
+ return jQuery.makeArray( selector, this );
},
// Start with an empty selector
},
// Start with an empty selector
@@
-604,6
+611,7
@@
jQuery.extend({
for ( var l = second.length; j < l; j++ ) {
first[ i++ ] = second[ j ];
}
for ( var l = second.length; j < l; j++ ) {
first[ i++ ] = second[ j ];
}
+
} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
} else {
while ( second[j] !== undefined ) {
first[ i++ ] = second[ j++ ];
diff --git
a/test/unit/core.js
b/test/unit/core.js
index
54ad982
..
4576ab8
100644
(file)
--- a/
test/unit/core.js
+++ b/
test/unit/core.js
@@
-25,7
+25,7
@@
test("jQuery()", function() {
equals( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
// can actually yield more than one, when iframes are included, the window is an array as well
equals( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
// can actually yield more than one, when iframes are included, the window is an array as well
- equals( 1, jQuery(window).length, "Correct number of elements generated for jQuery(window)" );
+ equals( jQuery(window).length, 1, "Correct number of elements generated for jQuery(window)" );
var main = jQuery("#main");
var main = jQuery("#main");