Moved to a generic solution for copying methods over for querySelectorAll-using browsers.
[jquery.git] / src / selector.js
index 32817e9..c189515 100644 (file)
@@ -68,7 +68,7 @@ var Sizzle = function(selector, context, results, seed) {
                if ( context ) {
                        var ret = seed ?
                                { expr: parts.pop(), set: makeArray(seed) } :
-                               Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, contextXML );
+                               Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
                        set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
 
                        if ( parts.length > 0 ) {
@@ -659,7 +659,7 @@ var Expr = Sizzle.selectors = {
 var origPOS = Expr.match.POS;
 
 for ( var type in Expr.match ) {
-       Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+       Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
 }
 
 var makeArray = function(array, results) {
@@ -829,10 +829,9 @@ if ( document.querySelectorAll ) (function(){
                return oldSizzle(query, context, extra, seed);
        };
 
-       Sizzle.find = oldSizzle.find;
-       Sizzle.filter = oldSizzle.filter;
-       Sizzle.selectors = oldSizzle.selectors;
-       Sizzle.matches = oldSizzle.matches;
+       for ( var prop in oldSizzle ) {
+               Sizzle[ prop ] = oldSizzle[ prop ];
+       }
 })();
 
 if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) (function(){