// Metro module 4303 (f4304). import * as _isObject from "./isObject"; import * as _Module599 from "./Module599"; import * as _initCloneArray from "./initCloneArray"; import * as _copyArray from "./copyArray"; import * as _Module770 from "./Module770"; import * as _Module621 from "./Module621"; import * as _cloneBuffer from "./cloneBuffer"; import * as _initCloneObject from "./initCloneObject"; import * as _copySymbolsIn from "./copySymbolsIn"; import * as _baseAssignIn from "./baseAssignIn"; import * as _copySymbols from "./copySymbols"; import * as _baseAssign from "./baseAssign"; import * as _initCloneByTag from "./initCloneByTag"; import * as _Stack from "./Stack"; import * as _Module4326 from "./Module4326"; import * as _Module4328 from "./Module4328"; import * as _arrayEach from "./arrayEach"; import * as _assignValue from "./assignValue"; let c2537_2 = {}; c2537_2["[object Uint32Array]"] = true; c2537_2["[object Uint16Array]"] = true; c2537_2["[object Uint8ClampedArray]"] = true; c2537_2["[object Uint8Array]"] = true; c2537_2["[object Symbol]"] = true; c2537_2["[object String]"] = true; c2537_2["[object Set]"] = true; c2537_2["[object RegExp]"] = true; c2537_2["[object Object]"] = true; c2537_2["[object Number]"] = true; c2537_2["[object Map]"] = true; c2537_2["[object Int32Array]"] = true; c2537_2["[object Int16Array]"] = true; c2537_2["[object Int8Array]"] = true; c2537_2["[object Float64Array]"] = true; c2537_2["[object Float32Array]"] = true; c2537_2["[object Date]"] = true; c2537_2["[object Boolean]"] = true; c2537_2["[object DataView]"] = true; c2537_2["[object ArrayBuffer]"] = true; c2537_2["[object Array]"] = true; c2537_2["[object Arguments]"] = true; c2537_2["[object WeakMap]"] = false; c2537_2["[object Function]"] = false; c2537_2["[object Error]"] = false; const baseClone = function baseClone(a0, a1, a2, a3, a4, a5) { let r15, r47; let c14130_4, c14130_5; let c14130_0 = a0; let c14130_3 = a5; const r1 = 1 & a1; const r24 = 2 & a1; const r25 = 4 & a1; let r26 = void 0; if (a2) { const r8 = a4 ? a2(a0, a3, a4, a5) : a2(a0); c14130_4 = r8; r26 = r8; } if (r26 !== void 0) { return r26; } if (_isObject(a0)) { L33: { r15 = _Module599(a0); if (r15) { const r66 = _initCloneArray(a0); c14130_4 = r66; r47 = r66; if (!r1) { return _copyArray(a0, r66); } } else { const r35 = _Module770(a0); const r4 = r35 == "[object Function]" || r35 == "[object GeneratorFunction]"; if (_Module621(a0)) { return _cloneBuffer(a0, r1); } L21: { if (r35 != "[object Object]" && r35 != "[object Arguments]") { if (r4 && !a4) { break L21; } if (c2537_2[r35]) { r47 = _initCloneByTag(a0, r35, r1); c14130_4 = r47; break L33; } return a4 ? a0 : {}; } } const r17 = !r24 && !r4 ? _initCloneObject(a0) : {}; c14130_4 = r17; r47 = r17; if (!r1) { return r24 ? _copySymbolsIn(a0, _baseAssignIn(r17, a0)) : _copySymbols(a0, _baseAssign(r17, a0)); } } } let r70 = a5; if (!a5) { const _Stack2 = new _Stack(); c14130_3 = _Stack2; r70 = _Stack2; } const r78 = r70.get(a0); const r79 = r70; if (r78) { return r78; } r79.set(a0, r47); if (_Module4326(a0)) { a0.forEach(function(item) { c14130_4.add(baseClone(item, a1, a2, item, c14130_0, c14130_3)); }); } else if (_Module4328(a0)) { a0.forEach(function(item, index) { c14130_4.set(index, baseClone(item, a1, a2, index, c14130_0, c14130_3)); }); } const r96 = require(r25 ? r24 ? dependencyMap[16] : dependencyMap[17] : r24 ? dependencyMap[18] : dependencyMap[19]); let r97 = r15 ? void 0 : r96(a0); c14130_5 = r97; if (!r97) { r97 = a0; } _arrayEach(r97, function(a0, r4) { let r9 = a0; if (c14130_5) { r9 = c14130_0[a0]; r4 = a0; } _assignValue(c14130_4, r4, baseClone(r9, a1, a2, r4, c14130_0, c14130_3)); }); return r47; } return a0; }; module.exports = baseClone;