Blame view

node_modules/clean-css/lib/optimizer/level-2/clone.js 772 Bytes
aaac7fed   liuqimichale   add
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
30
31
32
33
  var wrapSingle = require('../wrap-for-optimizing').single;
  
  var Token = require('../../tokenizer/token');
  
  function deep(property) {
    var cloned = shallow(property);
    for (var i = property.components.length - 1; i >= 0; i--) {
      var component = shallow(property.components[i]);
      component.value = property.components[i].value.slice(0);
      cloned.components.unshift(component);
    }
  
    cloned.dirty = true;
    cloned.value = property.value.slice(0);
  
    return cloned;
  }
  
  function shallow(property) {
    var cloned = wrapSingle([
      Token.PROPERTY,
      [Token.PROPERTY_NAME, property.name]
    ]);
    cloned.important = property.important;
    cloned.hack = property.hack;
    cloned.unused = false;
    return cloned;
  }
  
  module.exports = {
    deep: deep,
    shallow: shallow
  };