1 |
- {"ast":null,"code":"'use strict';\n\nvar assign = require('object.assign');\nvar callBound = require('call-bind/callBound');\nvar flags = require('regexp.prototype.flags');\nvar GetIntrinsic = require('get-intrinsic');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar is = require('object-is');\nvar isArguments = require('is-arguments');\nvar isArray = require('isarray');\nvar isArrayBuffer = require('is-array-buffer');\nvar isDate = require('is-date-object');\nvar isRegex = require('is-regex');\nvar isSharedArrayBuffer = require('is-shared-array-buffer');\nvar objectKeys = require('object-keys');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar whichCollection = require('which-collection');\nvar whichTypedArray = require('which-typed-array');\nvar byteLength = require('array-buffer-byte-length');\nvar sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) {\n // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') {\n // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, {\n strict: false\n });\n if (typeof curB === 'undefined' && !$mapHas(b, altValue)\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)) {\n $setDelete(set, key2);\n return true;\n }\n }\n return false;\n}\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || typeof actual !== 'object' && typeof expected !== 'object') {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) {\n channel.set(actual, sentinel);\n }\n if (!hasExpected) {\n channel.set(expected, sentinel);\n }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) {\n set = new $Set();\n }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) {\n return false;\n }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) {\n set = new $Set();\n }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (!opts.strict && !$setHas(a, resultB.value) && !setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) {\n set = new $Set();\n }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if (typeof item2 === 'undefined' && !$mapHas(b, key) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) {\n set = new $Set();\n }\n $setAdd(set, key);\n }\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (!opts.strict && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel)) && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, {\n strict: false\n }), channel)) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5], max-lines: [2, 400] */\n var i, key;\n if (typeof a !== typeof b) {\n return false;\n }\n if (a == null || b == null) {\n return false;\n }\n if ($objToString(a) !== $objToString(b)) {\n return false;\n }\n if (isArguments(a) !== isArguments(b)) {\n return false;\n }\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) {\n return false;\n }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) {\n return false;\n }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) {\n return false;\n }\n }\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) {\n return false;\n }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) {\n return false;\n }\n if (aIsDate || bIsDate) {\n // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) {\n return false;\n }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) {\n return false;\n }\n var aWhich = whichTypedArray(a);\n var bWhich = whichTypedArray(b);\n if (aWhich !== bWhich) {\n return false;\n }\n if (aWhich || bWhich) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) {\n return false;\n }\n if (aIsBuffer || bIsBuffer) {\n // && would work too, because both are true or both false here\n if (a.length !== b.length) {\n return false;\n }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n var aIsArrayBuffer = isArrayBuffer(a);\n var bIsArrayBuffer = isArrayBuffer(b);\n if (aIsArrayBuffer !== bIsArrayBuffer) {\n return false;\n }\n if (aIsArrayBuffer || bIsArrayBuffer) {\n // && would work too, because both are true or both false here\n if (byteLength(a) !== byteLength(b)) {\n return false;\n }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n var aIsSAB = isSharedArrayBuffer(a);\n var bIsSAB = isSharedArrayBuffer(b);\n if (aIsSAB !== bIsSAB) {\n return false;\n }\n if (aIsSAB || bIsSAB) {\n // && would work too, because both are true or both false here\n if (sabByteLength(a) !== sabByteLength(b)) {\n return false;\n }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n if (typeof a !== typeof b) {\n return false;\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) {\n return false;\n } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) {\n return false;\n }\n }\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') {\n // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') {\n // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n return true;\n}\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};","map":{"version":3,"names":["assign","require","callBound","flags","GetIntrinsic","getIterator","getSideChannel","is","isArguments","isArray","isArrayBuffer","isDate","isRegex","isSharedArrayBuffer","objectKeys","whichBoxedPrimitive","whichCollection","whichTypedArray","byteLength","sabByteLength","$getTime","gPO","Object","getPrototypeOf","$objToString","$Set","$mapHas","$mapGet","$mapSize","$setAdd","$setDelete","$setHas","$setSize","setHasEqualElement","set","val1","opts","channel","i","result","next","done","internalDeepEqual","value","findLooseMatchingPrimitives","prim","mapMightHaveLoosePrim","a","b","item","altValue","curB","looseOpts","strict","setMightHaveLoosePrim","mapHasEqualEntry","map","key1","item1","key2","actual","expected","options","actualBoxed","expectedBoxed","hasActual","has","hasExpected","sentinel","get","objEquiv","isBuffer","x","length","copy","slice","constructor","setEquiv","iA","iB","resultA","resultB","mapEquiv","key","item2","aIsArray","bIsArray","aIsError","Error","bIsError","name","message","aIsRegex","bIsRegex","source","aIsDate","bIsDate","aWhich","bWhich","aIsBuffer","bIsBuffer","aIsArrayBuffer","bIsArrayBuffer","Uint8Array","aIsSAB","bIsSAB","ka","kb","sort","aCollection","bCollection","module","exports","deepEqual"],"sources":["/Users/max_liu/max_liu/company/tools_auto_pt/node_modules/deep-equal/index.js"],"sourcesContent":["'use strict';\n\nvar assign = require('object.assign');\nvar callBound = require('call-bind/callBound');\nvar flags = require('regexp.prototype.flags');\nvar GetIntrinsic = require('get-intrinsic');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar is = require('object-is');\nvar isArguments = require('is-arguments');\nvar isArray = require('isarray');\nvar isArrayBuffer = require('is-array-buffer');\nvar isDate = require('is-date-object');\nvar isRegex = require('is-regex');\nvar isSharedArrayBuffer = require('is-shared-array-buffer');\nvar objectKeys = require('object-keys');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar whichCollection = require('which-collection');\nvar whichTypedArray = require('which-typed-array');\nvar byteLength = require('array-buffer-byte-length');\n\nvar sabByteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);\n\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\n\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) { // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') { // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, { strict: false });\n if (\n (typeof curB === 'undefined' && !$mapHas(b, altValue))\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)\n ) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)\n ) {\n $setDelete(set, key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) { channel.set(actual, sentinel); }\n if (!hasExpected) { channel.set(expected, sentinel); }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\n\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) { return false; }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && !$setHas(a, resultB.value)\n && !setHasEqualElement(set, resultB.value, opts.strict, channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if ((typeof item2 === 'undefined' && !$mapHas(b, key)) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n }\n }\n }\n\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel))\n && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { strict: false }), channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5], max-lines: [2, 400] */\n var i, key;\n\n if (typeof a !== typeof b) { return false; }\n if (a == null || b == null) { return false; }\n\n if ($objToString(a) !== $objToString(b)) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) { return false; }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) { return false; }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) { return false; }\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) { return false; }\n if (aIsDate || bIsDate) { // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) { return false; }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) { return false; }\n\n var aWhich = whichTypedArray(a);\n var bWhich = whichTypedArray(b);\n if (aWhich !== bWhich) {\n return false;\n }\n if (aWhich || bWhich) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n var aIsArrayBuffer = isArrayBuffer(a);\n var bIsArrayBuffer = isArrayBuffer(b);\n if (aIsArrayBuffer !== bIsArrayBuffer) { return false; }\n if (aIsArrayBuffer || bIsArrayBuffer) { // && would work too, because both are true or both false here\n if (byteLength(a) !== byteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n var aIsSAB = isSharedArrayBuffer(a);\n var bIsSAB = isSharedArrayBuffer(b);\n if (aIsSAB !== bIsSAB) { return false; }\n if (aIsSAB || bIsSAB) { // && would work too, because both are true or both false here\n if (sabByteLength(a) !== sabByteLength(b)) { return false; }\n return typeof Uint8Array === 'function' && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel);\n }\n\n if (typeof a !== typeof b) { return false; }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) { return false; }\n }\n\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') { // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') { // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n\n return true;\n}\n\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
|