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'));
}