UNPKG

@jsbits/deep-clone

Version:

Performs a deep cloning of an object own properties and symbols, with loosy or exact behavior.

7 lines 2.73 kB
/* @jsbits/deep-clone @author aMarCruz @version 1.1.1 UMD+ES5 @license MIT */ !function(r,t){((r.$||r.jQuery||{}).jsbits||r.jsbits||(r.jsbits={})).deepClone=function(){"use strict";var r,t=(p="object"==typeof global&&global,v=p&&p.process&&"function"==typeof p.Buffer&&/^v?(\d+)/.exec(p.process.version),0|(v&&v[1])),e=Object.prototype,n=e.toString,o="object"==typeof Reflect&&"function"==typeof Reflect.ownKeys&&Reflect.ownKeys,a={Date:1,RegExp:1,String:1,Number:1,Boolean:1,Float32Array:1,Float64Array:1,Int8Array:1,Int16Array:1,Int32Array:1,Uint8Array:1,Uint8ClampedArray:1,Uint16Array:1,Uint32Array:1,Array:2,ArrayBuffer:3,SharedArrayBuffer:3,DataView:4,Error:6,Map:5,Set:5,Arguments:7,Atomics:8,JSON:8,Math:8,Promise:8,WeakMap:8,WeakSet:8,XMLHttpRequest:8},u=["Array","String","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array"],c=function(r){var t=function(r){return"0"!==r&&(0|r)<=0&&"length"!==r},n=r&&o||function(r){var t=r?Object.getOwnPropertyNames:Object.keys,n=Object.getOwnPropertySymbols;if(!n)return t;if(r)return function(r){return t(r).concat(n(r))};var o=e.propertyIsEnumerable;return function(r){for(var e=t(r),a=n(r),u=0;u<a.length;u++)o.call(r,a[u])&&e.push(a[u]);return e}}(r);return function(r,e){var o=n(r);return~u.indexOf(e)?o.filter(t):o}},i=((r={})[8]=function(r){return r},r[7]=function(r){var t=Object.create(null);return Object.defineProperty(t,"length",{value:r.length,configurable:!0,writable:!0})},r[2]=function(r,t){return r.map(t)},r[3]=function(r){return r.slice(0)},r[4]=function(r){var t=r.buffer.slice(0);return new r.constructor(t,r.byteOffset,r.byteLength)},r[6]=function(r){var t=new r.constructor(r.message);return Object.defineProperty(t,"stack",{value:r.stack,configurable:!0,writable:!0})},r[5]=function(r,t,e){var n=new r.constructor,o="Set"===e?function(r){this.add(t(r))}:function(r,e){this.set(t(e),t(r))};return r.forEach(o,n),n},r),f=(b=function(r){return n.call(r).slice(8,-1)},!t||t>=5?b:function(r){var t=b(r);return"Object"===t&&r.constructor&&"Promise"===r.constructor.name?"Promise":t}),s=function(r){return function e(n){if(!n||"object"!=typeof n)return n;for(var o=f(n),u=function(r,e,n){var o=a[e];if(1===o)return r.slice&&t&&Buffer.isBuffer(r)?r.slice(0):new r.constructor(r.valueOf());if(i[o])return i[o](r,n,e);return e.lastIndexOf(" Iterator",e.length-9)>-1?r:Object.create(Object.getPrototypeOf(r))}(n,o,e),c=r(n,o),s=0;s<c.length;s++){var l=c[s],y=Object.getOwnPropertyDescriptor(n,l);void 0!==y.value&&(y.value=e(n[l])),Object.defineProperty(u,l,y)}return u}},l=s(c(!1)),y=s(c(!0));var b;var p,v;return function(r,t){return t?y(r):l(r)}}()}("undefined"!=typeof self?self:this);