34 lines
768 B
JavaScript
34 lines
768 B
JavaScript
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
|
|
};
|