| Leo Repp | 58b9f11 | 2021-11-22 11:57:47 +0100 | [diff] [blame^] | 1 | 'use strict' |
| 2 | |||||
| 3 | module.exports = clone | ||||
| 4 | |||||
| 5 | function clone (obj) { | ||||
| 6 | if (obj === null || typeof obj !== 'object') | ||||
| 7 | return obj | ||||
| 8 | |||||
| 9 | if (obj instanceof Object) | ||||
| 10 | var copy = { __proto__: obj.__proto__ } | ||||
| 11 | else | ||||
| 12 | var copy = Object.create(null) | ||||
| 13 | |||||
| 14 | Object.getOwnPropertyNames(obj).forEach(function (key) { | ||||
| 15 | Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) | ||||
| 16 | }) | ||||
| 17 | |||||
| 18 | return copy | ||||
| 19 | } | ||||