1234567891011121314151617181920212223242526272829 |
- var utils = require('../utils')
- , nodes = require('../nodes');
- /**
- * Add property `name` with the given `expr`
- * to the mixin-able block.
- *
- * @param {String|Ident|Literal} name
- * @param {Expression} expr
- * @return {Property}
- * @api public
- */
- (module.exports = function addProperty(name, expr){
- utils.assertType(name, 'expression', 'name');
- name = utils.unwrap(name).first;
- utils.assertString(name, 'name');
- utils.assertType(expr, 'expression', 'expr');
- var prop = new nodes.Property([name], expr);
- var block = this.closestBlock;
- var len = block.nodes.length
- , head = block.nodes.slice(0, block.index)
- , tail = block.nodes.slice(block.index++, len);
- head.push(prop);
- block.nodes = head.concat(tail);
- return prop;
- }).raw = true;
|