diff options
Diffstat (limited to 'bin/lib/less/tree/variable.js')
-rw-r--r-- | bin/lib/less/tree/variable.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/lib/less/tree/variable.js b/bin/lib/less/tree/variable.js new file mode 100644 index 00000000..ee557e1d --- /dev/null +++ b/bin/lib/less/tree/variable.js @@ -0,0 +1,26 @@ +(function (tree) { + +tree.Variable = function (name, index, file) { this.name = name, this.index = index, this.file = file }; +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 { type: 'Name', + message: "variable " + name + " is undefined", + filename: this.file, + index: this.index }; + } + } +}; + +})(require('../tree')); |