Blame view

node_modules/stylus/lib/functions/add-property.js 769 Bytes
ce4c83ff   wxy   初始提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  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;