Skip to content
File

Blob: samples/nodejs-compat-fs-graceful/graceful-fs/clone.js

javascript24 lines
1'use strict'
2 
3module.exports = clone
4 
5var getPrototypeOf = Object.getPrototypeOf || function (obj) {
6 return obj.__proto__
7}
8 
9function clone (obj) {
10 if (obj === null || typeof obj !== 'object')
11 return obj
12 
13 if (obj instanceof Object)
14 var copy = { __proto__: getPrototypeOf(obj) }
15 else
16 var copy = Object.create(null)
17 
18 Object.getOwnPropertyNames(obj).forEach(function (key) {
19 Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
20 })
21 
22 return copy
23}