lib/less/js/lib/less/tree/ruleset.js in less-2.0.8 vs lib/less/js/lib/less/tree/ruleset.js in less-2.0.9

- old
+ new

@@ -5,19 +5,21 @@ this.rules = rules; this._lookups = {}; }; tree.Ruleset.prototype = { eval: function (env) { - var ruleset = new(tree.Ruleset)(this.selectors, this.rules.slice(0)); + var selectors = this.selectors && this.selectors.map(function (s) { return s.eval(env) }); + var ruleset = new(tree.Ruleset)(selectors, this.rules.slice(0)); ruleset.root = this.root; + ruleset.allowImports = this.allowImports; // push the current ruleset to the frames stack env.frames.unshift(ruleset); // Evaluate imports - if (ruleset.root) { + if (ruleset.root || ruleset.allowImports) { for (var i = 0; i < ruleset.rules.length; i++) { if (ruleset.rules[i] instanceof tree.Import) { Array.prototype.splice .apply(ruleset.rules, [i, 1].concat(ruleset.rules[i].eval(env))); } @@ -118,11 +120,11 @@ if (! this.root) { if (context.length === 0) { paths = this.selectors.map(function (s) { return [s] }); } else { - this.joinSelectors( paths, context, this.selectors ); + this.joinSelectors(paths, context, this.selectors); } } // Compile rules and rulesets for (var i = 0; i < this.rules.length; i++) { @@ -158,10 +160,11 @@ if (rules.length > 0) { selector = paths.map(function (p) { return p.map(function (s) { return s.toCSS(env); }).join('').trim(); - }).join(env.compress ? ',' : (paths.length > 3 ? ',\n' : ', ')); + }).join( env.compress ? ',' : ',\n'); + css.push(selector, (env.compress ? '{' : ' {\n ') + rules.join(env.compress ? '' : '\n ') + (env.compress ? '}' : '\n}\n')); }