diff options
author | John Resig <jeresig@gmail.com> | 2009-03-17 20:39:29 +0000 |
---|---|---|
committer | John Resig <jeresig@gmail.com> | 2009-03-17 20:39:29 +0000 |
commit | 26731d475bded26fb1323d4f33266f503474d4b8 (patch) | |
tree | f0120dcc8bc9474417f0028e417e509981347905 /src/selector.js | |
parent | 2d4755a0fb1e34cc81d142415ed0ddf3791cf724 (diff) | |
download | jquery-26731d475bded26fb1323d4f33266f503474d4b8.tar.gz jquery-26731d475bded26fb1323d4f33266f503474d4b8.zip |
Backed out commit [6260], was causing too many problems. We'll have to bite the bullet and assume that the incoming result set has array methods. Un-fixes jQuery bug #4250.
Diffstat (limited to 'src/selector.js')
-rw-r--r-- | src/selector.js | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/selector.js b/src/selector.js index c18951508..2fa8e5d6c 100644 --- a/src/selector.js +++ b/src/selector.js @@ -8,10 +8,7 @@ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g, done = 0, - toString = Object.prototype.toString, - arraySplice = Array.prototype.splice, - arrayPush = Array.prototype.push, - arraySort = Array.prototype.sort; + toString = Object.prototype.toString; var Sizzle = function(selector, context, results, seed) { results = results || []; @@ -107,17 +104,17 @@ var Sizzle = function(selector, context, results, seed) { if ( toString.call(checkSet) === "[object Array]" ) { if ( !prune ) { - arrayPush.apply( results, checkSet ); + results.push.apply( results, checkSet ); } else if ( context && context.nodeType === 1 ) { for ( var i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) { - arrayPush.call( results, set[i] ); + results.push( set[i] ); } } } else { for ( var i = 0; checkSet[i] != null; i++ ) { if ( checkSet[i] && checkSet[i].nodeType === 1 ) { - arrayPush.call( results, set[i] ); + results.push( set[i] ); } } } @@ -136,12 +133,12 @@ var Sizzle = function(selector, context, results, seed) { Sizzle.uniqueSort = function(results){ if ( sortOrder ) { hasDuplicate = false; - arraySort.call(results, sortOrder); + results.sort(sortOrder); if ( hasDuplicate ) { for ( var i = 1; i < results.length; i++ ) { if ( results[i] === results[i-1] ) { - arraySplice.call(results, i--, 1); + results.splice(i--, 1); } } } @@ -666,7 +663,7 @@ var makeArray = function(array, results) { array = Array.prototype.slice.call( array ); if ( results ) { - arrayPush.apply( results, array ); + results.push.apply( results, array ); return results; } @@ -738,9 +735,9 @@ if ( document.documentElement.compareDocumentPosition ) { // querying by getElementById (and provide a workaround) (function(){ // We're going to inject a fake input element with a specified name - var form = document.createElement("form"), + var form = document.createElement("div"), id = "script" + (new Date).getTime(); - form.innerHTML = "<input name='" + id + "'/>"; + form.innerHTML = "<a name='" + id + "'/>"; // Inject it into the root element, check its status, and remove it quickly var root = document.documentElement; |