forked from projectmoon/tenebrous-dicebot
34 lines
772 B
JavaScript
34 lines
772 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
|
||
|
};
|