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.
		
		
		
		
		
			
		
			
				
					24 lines
				
				496 B
			
		
		
			
		
	
	
					24 lines
				
				496 B
			| 
											3 years ago
										 | 'use strict' | ||
|  | 
 | ||
|  | module.exports = clone | ||
|  | 
 | ||
|  | var getPrototypeOf = Object.getPrototypeOf || function (obj) { | ||
|  |   return obj.__proto__ | ||
|  | } | ||
|  | 
 | ||
|  | function clone (obj) { | ||
|  |   if (obj === null || typeof obj !== 'object') | ||
|  |     return obj | ||
|  | 
 | ||
|  |   if (obj instanceof Object) | ||
|  |     var copy = { __proto__: getPrototypeOf(obj) } | ||
|  |   else | ||
|  |     var copy = Object.create(null) | ||
|  | 
 | ||
|  |   Object.getOwnPropertyNames(obj).forEach(function (key) { | ||
|  |     Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) | ||
|  |   }) | ||
|  | 
 | ||
|  |   return copy | ||
|  | } |