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