diff --git a/lib/less/tree/ruleset.js b/lib/less/tree/ruleset.js index 7c3ffad5..a89dfb00 100644 --- a/lib/less/tree/ruleset.js +++ b/lib/less/tree/ruleset.js @@ -170,9 +170,9 @@ tree.Ruleset.prototype = { if (rule !== self) { for (var j = 0; j < rule.selectors.length; j++) { if (match = selector.match(rule.selectors[j])) { - if (selector.elements.length > rule.selectors[j].elements.length) { + if (selector.elements.length > match) { Array.prototype.push.apply(rules, rule.find( - new(tree.Selector)(selector.elements.slice(rule.selectors[j].elements.length)), self)); + new(tree.Selector)(selector.elements.slice(match)), self)); } else { rules.push(rule); } diff --git a/lib/less/tree/selector.js b/lib/less/tree/selector.js index ac38b993..02e12675 100644 --- a/lib/less/tree/selector.js +++ b/lib/less/tree/selector.js @@ -35,15 +35,15 @@ tree.Selector.prototype = { max = Math.min(len, olen); if (olen === 0 || len < olen) { - return false; + return 0; } else { for (i = 0; i < max; i++) { if (elements[i].value !== oelements[i].value) { - return false; + return 0; } } } - return true; + return max; // return number of matched selectors }, eval: function (env) { var evaldCondition = this.condition && this.condition.eval(env);