diff --git a/Source/Element/Element.js b/Source/Element/Element.js index 6aa5a9e41..7aabc0ace 100644 --- a/Source/Element/Element.js +++ b/Source/Element/Element.js @@ -436,7 +436,7 @@ Object.each(inserters, function(inserter, where){ var injectCombinator = function(expression, combinator){ if (!expression) return combinator; - expression = Slick.parse(expression); + expression = Object.clone(Slick.parse(expression)); var expressions = expression.expressions; for (var i = expressions.length; i--;) diff --git a/Source/Slick/Slick.Finder.js b/Source/Slick/Slick.Finder.js index 3034d81e9..3d6b3b7ab 100644 --- a/Source/Slick/Slick.Finder.js +++ b/Source/Slick/Slick.Finder.js @@ -614,11 +614,11 @@ var pseudos = { return this['pseudo:nth-child'](node, '' + index + 1); }, - 'even': function(node, argument){ + 'even': function(node){ return this['pseudo:nth-child'](node, '2n'); }, - 'odd': function(node, argument){ + 'odd': function(node){ return this['pseudo:nth-child'](node, '2n+1'); }, diff --git a/Source/Slick/Slick.Parser.js b/Source/Slick/Slick.Parser.js index 2ad28d86a..e112a638e 100644 --- a/Source/Slick/Slick.Parser.js +++ b/Source/Slick/Slick.Parser.js @@ -27,9 +27,10 @@ var parse = function(expression, isReversed){ return parse(this.raw, true); }}; separatorIndex = -1; + var cacheKey = expression; while (expression != (expression = expression.replace(regexp, parser))); parsed.length = parsed.expressions.length; - return currentCache[expression] = (reversed) ? reverse(parsed) : parsed; + return currentCache[cacheKey] = (reversed) ? reverse(parsed) : parsed; }; var reverseCombinator = function(combinator){