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.
		
		
		
		
		
			
		
			
				
					
					
						
							34 lines
						
					
					
						
							772 B
						
					
					
				
			
		
		
	
	
							34 lines
						
					
					
						
							772 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
 | |
| };
 |