aboutsummaryrefslogtreecommitdiff
path: root/node_modules/clean-css/lib/optimizer/level-2/clone.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/clean-css/lib/optimizer/level-2/clone.js')
-rw-r--r--node_modules/clean-css/lib/optimizer/level-2/clone.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/clean-css/lib/optimizer/level-2/clone.js b/node_modules/clean-css/lib/optimizer/level-2/clone.js
new file mode 100644
index 00000000..3830095e
--- /dev/null
+++ b/node_modules/clean-css/lib/optimizer/level-2/clone.js
@@ -0,0 +1,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
+};