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
 | |
| };
 |