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 || [];
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)
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 {
Expr.relative[ cur ]( checkSet, pop );
}
+ }
- if ( !checkSet ) {
- checkSet = set;
- }
+ if ( !checkSet ) {
+ checkSet = set;
}
if ( !checkSet ) {
Sizzle( extra, context, results );
}
- if ( cache && doCache ) {
- cache[selector] = results.slice(0);
- }
-
return results;
};