if (typeof(require) !== 'undefined') { var tree = require('less/tree') } // // A number with a unit // tree.Dimension = function Dimension(value, unit) { this.value = parseFloat(value); this.unit = unit || null; }; tree.Dimension.prototype = { eval: function () { return this }, toColor: function () { return new(tree.Color)([this.value, this.value, this.value]); }, toCSS: function () { var css = this.value + this.unit; return css; }, // In an operation between two Dimensions, // we default to the first Dimension's unit, // so `1px + 2em` will yield `3px`. // In the future, we could implement some unit // conversions such that `100cm + 10mm` would yield // `101cm`. operate: function (op, other) { return new(tree.Dimension) (tree.operate(op, this.value, other.value), this.unit || other.unit); } };