diff options
Diffstat (limited to 'node_modules/stylus/lib/nodes/each.js')
| -rw-r--r-- | node_modules/stylus/lib/nodes/each.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/nodes/each.js b/node_modules/stylus/lib/nodes/each.js new file mode 100644 index 00000000..985bd29d --- /dev/null +++ b/node_modules/stylus/lib/nodes/each.js @@ -0,0 +1,75 @@ + +/*! + * Stylus - Each + * Copyright (c) Automattic <developer.wordpress.com> + * MIT Licensed + */ + +/** + * Module dependencies. + */ + +var Node = require('./node') + , nodes = require('./'); + +/** + * Initialize a new `Each` node with the given `val` name, + * `key` name, `expr`, and `block`. + * + * @param {String} val + * @param {String} key + * @param {Expression} expr + * @param {Block} block + * @api public + */ + +var Each = module.exports = function Each(val, key, expr, block){ + Node.call(this); + this.val = val; + this.key = key; + this.expr = expr; + this.block = block; +}; + +/** + * Inherit from `Node.prototype`. + */ + +Each.prototype.__proto__ = Node.prototype; + +/** + * Return a clone of this node. + * + * @return {Node} + * @api public + */ + +Each.prototype.clone = function(parent){ + var clone = new Each(this.val, this.key); + clone.expr = this.expr.clone(parent, clone); + clone.block = this.block.clone(parent, clone); + clone.lineno = this.lineno; + clone.column = this.column; + clone.filename = this.filename; + return clone; +}; + +/** + * Return a JSON representation of this node. + * + * @return {Object} + * @api public + */ + +Each.prototype.toJSON = function(){ + return { + __type: 'Each', + val: this.val, + key: this.key, + expr: this.expr, + block: this.block, + lineno: this.lineno, + column: this.column, + filename: this.filename + }; +}; |
