Sha256: 16faa5b6e6d9da88b01f6809a96692a1eec04a49b6f82ffd95b8e70e92cb352a

Contents?: true

Size: 1.56 KB

Versions: 9

Compression:

Stored size: 1.56 KB

Contents

(function (tree) {

//
// A function call node.
//
tree.Call = function (name, args, index, filename) {
    this.name = name;
    this.args = args;
    this.index = index;
    this.filename = filename;
};
tree.Call.prototype = {
    //
    // When evaluating a function call,
    // we either find the function in `tree.functions` [1],
    // in which case we call it, passing the  evaluated arguments,
    // or we simply print it out as it appeared originally [2].
    //
    // The *functions.js* file contains the built-in functions.
    //
    // The reason why we evaluate the arguments, is in the case where
    // we try to pass a variable to a function, like: `saturate(@color)`.
    // The function should receive the value, not the variable.
    //
    eval: function (env) {
        var args = this.args.map(function (a) { return a.eval(env) });

        if (this.name in tree.functions) { // 1.
            try {
                return tree.functions[this.name].apply(tree.functions, args);
            } catch (e) {
                throw { type: e.type || "Runtime",
                        message: "error evaluating function `" + this.name + "`" +
                                 (e.message ? ': ' + e.message : ''),
                        index: this.index, filename: this.filename };
            }
        } else { // 2.
            return new(tree.Anonymous)(this.name +
                   "(" + args.map(function (a) { return a.toCSS() }).join(', ') + ")");
        }
    },

    toCSS: function (env) {
        return this.eval(env).toCSS();
    }
};

})(require('../tree'));

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
less-2.3.0 lib/less/js/lib/less/tree/call.js
less-2.2.2 lib/less/js/lib/less/tree/call.js
less-2.2.1 lib/less/js/lib/less/tree/call.js
less-2.2.0 lib/less/js/lib/less/tree/call.js
less-2.1.0 lib/less/js/lib/less/tree/call.js
less-2.0.12 lib/less/js/lib/less/tree/call.js
less-2.0.11 lib/less/js/lib/less/tree/call.js
less-2.0.10 lib/less/js/lib/less/tree/call.js
less-2.0.9 lib/less/js/lib/less/tree/call.js