'use strict' | |
module.exports = clone | |
function clone (obj) { | |
if (obj === null || typeof obj !== 'object') | |
return obj | |
if (obj instanceof Object) | |
var copy = { __proto__: obj.__proto__ } | |
else | |
var copy = Object.create(null) | |
Object.getOwnPropertyNames(obj).forEach(function (key) { | |
Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) | |
}) | |
return copy | |
} |