var Node = function() { }; Node.prototype.toCSS = function (env) { var strs = []; this.genCSS(env, { add: function(chunk, fileInfo, index) { strs.push(chunk); }, isEmpty: function () { return strs.length === 0; } }); return strs.join(''); }; Node.prototype.genCSS = function (env, output) { output.add(this.value); }; Node.prototype.accept = function (visitor) { this.value = visitor.visit(this.value); }; Node.prototype.eval = function () { return this; }; Node.prototype._operate = function (env, op, a, b) { switch (op) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': return a / b; } }; Node.prototype.fround = function(env, value) { var precision = env && env.numPrecision; //add "epsilon" to ensure numbers like 1.000000005 (represented as 1.000000004999....) are properly rounded... return (precision == null) ? value : Number((value + 2e-16).toFixed(precision)); }; module.exports = Node;