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