22 lines
		
	
	
		
			465 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			465 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var List = require('../common/List');
 | |
| 
 | |
| module.exports = function clone(node) {
 | |
|     var result = {};
 | |
| 
 | |
|     for (var key in node) {
 | |
|         var value = node[key];
 | |
| 
 | |
|         if (value) {
 | |
|             if (Array.isArray(value) || value instanceof List) {
 | |
|                 value = value.map(clone);
 | |
|             } else if (value.constructor === Object) {
 | |
|                 value = clone(value);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         result[key] = value;
 | |
|     }
 | |
| 
 | |
|     return result;
 | |
| };
 |