mirror of
https://github.com/less/less.js.git
synced 2026-05-01 03:00:22 -04:00
(new) variable variables
This commit is contained in:
@@ -568,7 +568,7 @@ less.Parser = function Parser(env) {
|
||||
variable: function () {
|
||||
var name, index = i;
|
||||
|
||||
if (input.charAt(i) === '@' && (name = $(/^@[\w-]+/))) {
|
||||
if (input.charAt(i) === '@' && (name = $(/^@@?[\w-]+/))) {
|
||||
return new(tree.Variable)(name, index);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,13 +5,17 @@ tree.Variable.prototype = {
|
||||
eval: function (env) {
|
||||
var variable, v, name = this.name;
|
||||
|
||||
if (name.indexOf('@@') == 0) {
|
||||
name = '@' + new(tree.Variable)(name.slice(1)).eval(env).value;
|
||||
}
|
||||
|
||||
if (variable = tree.find(env.frames, function (frame) {
|
||||
if (v = frame.variable(name)) {
|
||||
return v.value.eval(env);
|
||||
}
|
||||
})) { return variable }
|
||||
else {
|
||||
throw { message: "variable " + this.name + " is undefined",
|
||||
throw { message: "variable " + name + " is undefined",
|
||||
index: this.index };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,3 +16,6 @@
|
||||
url: url('Trebuchet');
|
||||
multi: something 'A', B, C, 'Trebuchet';
|
||||
}
|
||||
.variable-names {
|
||||
name: 'hello';
|
||||
}
|
||||
|
||||
@@ -38,3 +38,9 @@
|
||||
url: url(@a);
|
||||
multi: something @multi, @a;
|
||||
}
|
||||
|
||||
.variable-names {
|
||||
@var: 'hello';
|
||||
@name: 'var';
|
||||
name: @@name;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user