You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
768 B
33 lines
768 B
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 |
|
};
|
|
|