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:
a8fa5f2
)
Avoid running jQuery.unique() for methods that are guaranteed to produce a unique...
author
Scott González
<scott.gonzalez@gmail.com>
Fri, 14 Jan 2011 14:55:40 +0000
(09:55 -0500)
committer
Scott González
<scott.gonzalez@gmail.com>
Fri, 14 Jan 2011 14:55:40 +0000
(09:55 -0500)
src/traversing.js
patch
|
blob
|
history
diff --git
a/src/traversing.js
b/src/traversing.js
index
689e901
..
e169be0
100644
(file)
--- a/
src/traversing.js
+++ b/
src/traversing.js
@@
-6,7
+6,14
@@
var runtil = /Until$/,
rmultiselector = /,/,
isSimple = /^.[^:#\[\.,]*$/,
slice = Array.prototype.slice,
rmultiselector = /,/,
isSimple = /^.[^:#\[\.,]*$/,
slice = Array.prototype.slice,
- POS = jQuery.expr.match.POS;
+ POS = jQuery.expr.match.POS,
+ // methods guaranteed to produce a unique set when starting from a unique set
+ guaranteedUnique = {
+ children: true,
+ contents: true,
+ next: true,
+ prev: true
+ };
jQuery.fn.extend({
find: function( selector ) {
jQuery.fn.extend({
find: function( selector ) {
@@
-206,7
+213,7
@@
jQuery.each({
ret = jQuery.filter( selector, ret );
}
ret = jQuery.filter( selector, ret );
}
- ret = this.length > 1 ? jQuery.unique( ret ) : ret;
+ ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
ret = ret.reverse();
if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
ret = ret.reverse();