X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fselector.js;h=b5a241342dcf48607066a7e688fa2d10d5ac973a;hb=c0446c70d52fe2afd74b2f95c384ae238c48ad09;hp=c89b92eea0df9edc26a5f83f37632c66e194cd34;hpb=c85243dfc4b09e6bb87532f2025f686b6ae45a22;p=jquery.git diff --git a/src/selector.js b/src/selector.js index c89b92e..b5a2413 100644 --- a/src/selector.js +++ b/src/selector.js @@ -7,19 +7,9 @@ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]+\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g; -var cache = null; var done = 0; -if ( document.addEventListener && !document.querySelectorAll ) { - cache = {}; - function invalidate(){ cache = {}; } - document.addEventListener("DOMAttrModified", invalidate, false); - document.addEventListener("DOMNodeInserted", invalidate, false); - document.addEventListener("DOMNodeRemoved", invalidate, false); -} - var Sizzle = function(selector, context, results, seed) { - var doCache = !results; results = results || []; context = context || document; @@ -30,11 +20,6 @@ var Sizzle = function(selector, context, results, seed) { return results; } - if ( cache && context === document && cache[ selector ] ) { - results.push.apply( results, cache[ selector ] ); - return results; - } - var parts = [], m, set, checkSet, check, mode, extra; // Reset the position of the chunker regexp (start from head) @@ -59,24 +44,24 @@ var Sizzle = function(selector, context, results, seed) { selector = selector.replace( Expr.match.POS, "" ); } - checkSet = Sizzle.filter( later, Sizzle( selector, context, results ) ); + set = Sizzle.filter( later, Sizzle( selector, context ) ); } else { - checkSet = Expr.relative[ parts[0] ] ? + set = Expr.relative[ parts[0] ] ? [ context ] : Sizzle( parts.shift(), context ); while ( parts.length ) { - set = []; + var tmpSet = []; selector = parts.shift(); if ( Expr.relative[ selector ] ) selector += parts.shift(); - for ( var i = 0, l = checkSet.length; i < l; i++ ) { - Sizzle( selector, checkSet[i], set ); + for ( var i = 0, l = set.length; i < l; i++ ) { + Sizzle( selector, set[i], tmpSet ); } - checkSet = set; + set = tmpSet; } } } else { @@ -104,10 +89,10 @@ var Sizzle = function(selector, context, results, seed) { Expr.relative[ cur ]( checkSet, pop ); } + } - if ( !checkSet ) { - checkSet = set; - } + if ( !checkSet ) { + checkSet = set; } if ( !checkSet ) { @@ -136,10 +121,6 @@ var Sizzle = function(selector, context, results, seed) { Sizzle( extra, context, results ); } - if ( cache && doCache ) { - cache[selector] = results.slice(0); - } - return results; };