From 7b481825bdc3b9a058f2613aaa3f9134e4f1305a Mon Sep 17 00:00:00 2001 From: Graham Fairweather Date: Fri, 31 Jan 2020 12:35:53 +0100 Subject: [PATCH] Maintenance --- __tests__/is-deep-strict-equal-x.test.js | 183 +- dist/is-deep-strict-equal-x.esm.js | 16 +- dist/is-deep-strict-equal-x.esm.js.map | 2 +- dist/is-deep-strict-equal-x.js | 20 +- dist/is-deep-strict-equal-x.js.map | 2 +- dist/is-deep-strict-equal-x.min.js | 4 +- .../is-deep-strict-equal-x.min.js.LICENSE.txt | 17 + dist/is-deep-strict-equal-x.min.js.map | 2 +- package-lock.json | 8197 ++++++++++++----- package.json | 68 +- 10 files changed, 6180 insertions(+), 2331 deletions(-) create mode 100644 dist/is-deep-strict-equal-x.min.js.LICENSE.txt diff --git a/__tests__/is-deep-strict-equal-x.test.js b/__tests__/is-deep-strict-equal-x.test.js index 2876d47..ca7adab 100644 --- a/__tests__/is-deep-strict-equal-x.test.js +++ b/__tests__/is-deep-strict-equal-x.test.js @@ -71,6 +71,7 @@ describe('isDeepStrictEqual', function() { it('regex', function() { expect.assertions(1); + /* eslint-disable-next-line prefer-regex-literals */ const re1 = new RegExp('test'); const re2 = new MyRegExp('test'); @@ -118,7 +119,16 @@ describe('isDeepStrictEqual', function() { notUtilIsDeepStrict(new Set([1, 2, 3]), new Set([1, 2, 3, 4])); notUtilIsDeepStrict(new Set([1, 2, 3, 4]), new Set([1, 2, 3])); utilIsDeepStrict(new Set(['1', '2', '3']), new Set(['1', '2', '3'])); - utilIsDeepStrict(new Set([[1, 2], [3, 4]]), new Set([[3, 4], [1, 2]])); + utilIsDeepStrict( + new Set([ + [1, 2], + [3, 4], + ]), + new Set([ + [3, 4], + [1, 2], + ]), + ); { const a = [1, 2]; @@ -129,10 +139,46 @@ describe('isDeepStrictEqual', function() { utilIsDeepStrict({a, b, s: new Set([a, b])}, {a: c, b: d, s: new Set([d, c])}); } - utilIsDeepStrict(new Map([[1, 1], [2, 2]]), new Map([[1, 1], [2, 2]])); - utilIsDeepStrict(new Map([[1, 1], [2, 2]]), new Map([[2, 2], [1, 1]])); - notUtilIsDeepStrict(new Map([[1, 1], [2, 2]]), new Map([[1, 2], [2, 1]])); - notUtilIsDeepStrict(new Map([[[1], 1], [{}, 2]]), new Map([[[1], 2], [{}, 1]])); + utilIsDeepStrict( + new Map([ + [1, 1], + [2, 2], + ]), + new Map([ + [1, 1], + [2, 2], + ]), + ); + utilIsDeepStrict( + new Map([ + [1, 1], + [2, 2], + ]), + new Map([ + [2, 2], + [1, 1], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [1, 1], + [2, 2], + ]), + new Map([ + [1, 2], + [2, 1], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [[1], 1], + [{}, 2], + ]), + new Map([ + [[1], 2], + [{}, 1], + ]), + ); notUtilIsDeepStrict(new Set([1]), [1]); notUtilIsDeepStrict(new Set(), []); @@ -153,33 +199,138 @@ describe('isDeepStrictEqual', function() { // Ref: https://github.com/nodejs/node/issues/13347 notUtilIsDeepStrict(new Set([{a: 1}, {a: 1}]), new Set([{a: 1}, {a: 2}])); notUtilIsDeepStrict(new Set([{a: 1}, {a: 1}, {a: 2}]), new Set([{a: 1}, {a: 2}, {a: 2}])); - notUtilIsDeepStrict(new Map([[{x: 1}, 5], [{x: 1}, 5]]), new Map([[{x: 1}, 5], [{x: 2}, 5]])); + notUtilIsDeepStrict( + new Map([ + [{x: 1}, 5], + [{x: 1}, 5], + ]), + new Map([ + [{x: 1}, 5], + [{x: 2}, 5], + ]), + ); notUtilIsDeepStrict(new Set([3, '3']), new Set([3, 4])); - notUtilIsDeepStrict(new Map([[3, 0], ['3', 0]]), new Map([[3, 0], [4, 0]])); + notUtilIsDeepStrict( + new Map([ + [3, 0], + ['3', 0], + ]), + new Map([ + [3, 0], + [4, 0], + ]), + ); notUtilIsDeepStrict(new Set([{a: 1}, {a: 1}, {a: 2}]), new Set([{a: 1}, {a: 2}, {a: 2}])); // Mixed primitive and object keys - utilIsDeepStrict(new Map([[1, 'a'], [{}, 'a']]), new Map([[1, 'a'], [{}, 'a']])); + utilIsDeepStrict( + new Map([ + [1, 'a'], + [{}, 'a'], + ]), + new Map([ + [1, 'a'], + [{}, 'a'], + ]), + ); utilIsDeepStrict(new Set([1, 'a', [{}, 'a']]), new Set([1, 'a', [{}, 'a']])); // This is an awful case, where a map contains multiple equivalent keys: - notUtilIsDeepStrict(new Map([[1, 'a'], ['1', 'b']]), new Map([['1', 'a'], [true, 'b']])); + notUtilIsDeepStrict( + new Map([ + [1, 'a'], + ['1', 'b'], + ]), + new Map([ + ['1', 'a'], + [true, 'b'], + ]), + ); notUtilIsDeepStrict(new Set(['a']), new Set(['b'])); - utilIsDeepStrict(new Map([[{}, 'a'], [{}, 'b']]), new Map([[{}, 'b'], [{}, 'a']])); - notUtilIsDeepStrict(new Map([[true, 'a'], ['1', 'b'], [1, 'a']]), new Map([['1', 'a'], [1, 'b'], [true, 'a']])); - notUtilIsDeepStrict(new Map([[true, 'a'], ['1', 'b'], [1, 'c']]), new Map([['1', 'a'], [1, 'b'], [true, 'a']])); + utilIsDeepStrict( + new Map([ + [{}, 'a'], + [{}, 'b'], + ]), + new Map([ + [{}, 'b'], + [{}, 'a'], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [true, 'a'], + ['1', 'b'], + [1, 'a'], + ]), + new Map([ + ['1', 'a'], + [1, 'b'], + [true, 'a'], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [true, 'a'], + ['1', 'b'], + [1, 'c'], + ]), + new Map([ + ['1', 'a'], + [1, 'b'], + [true, 'a'], + ]), + ); // Similar object keys notUtilIsDeepStrict(new Set([{}, {}]), new Set([{}, 1])); - notUtilIsDeepStrict(new Set([[{}, 1], [{}, 1]]), new Set([[{}, 1], [1, 1]])); - notUtilIsDeepStrict(new Map([[{}, 1], [{}, 1]]), new Map([[{}, 1], [1, 1]])); - notUtilIsDeepStrict(new Map([[{}, 1], [true, 1]]), new Map([[{}, 1], [1, 1]])); + notUtilIsDeepStrict( + new Set([ + [{}, 1], + [{}, 1], + ]), + new Set([ + [{}, 1], + [1, 1], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [{}, 1], + [{}, 1], + ]), + new Map([ + [{}, 1], + [1, 1], + ]), + ); + notUtilIsDeepStrict( + new Map([ + [{}, 1], + [true, 1], + ]), + new Map([ + [{}, 1], + [1, 1], + ]), + ); // Similar primitive key / values notUtilIsDeepStrict(new Set([1, true, false]), new Set(['1', 0, '0'])); - notUtilIsDeepStrict(new Map([[1, 5], [true, 5], [false, 5]]), new Map([['1', 5], [0, 5], ['0', 5]])); + notUtilIsDeepStrict( + new Map([ + [1, 5], + [true, 5], + [false, 5], + ]), + new Map([ + ['1', 5], + [0, 5], + ['0', 5], + ]), + ); // Undefined value in Map utilIsDeepStrict(new Map([[1, undefined]]), new Map([[1, undefined]])); diff --git a/dist/is-deep-strict-equal-x.esm.js b/dist/is-deep-strict-equal-x.esm.js index 9a37c19..4bd976d 100644 --- a/dist/is-deep-strict-equal-x.esm.js +++ b/dist/is-deep-strict-equal-x.esm.js @@ -1,10 +1,10 @@ -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } @@ -438,14 +438,14 @@ var mapEquiv = function mapEquiv(args) { while (!nextB.done) { var _nextB$value = _slicedToArray(nextB.value, 2), - key = _nextB$value[0], + _key = _nextB$value[0], item = _nextB$value[1]; - if (_typeof(key) === 'object' && key !== null) { - if (!mapHasEqualEntry([set, a, key, item, strict, memo])) { + if (_typeof(_key) === 'object' && _key !== null) { + if (!mapHasEqualEntry([set, a, _key, item, strict, memo])) { return false; } - } else if (!strict && (!a.has(key) || !$innerDeepEqual([a.get(key), item, false, memo])) && !mapHasEqualEntry([set, a, key, item, false, memo])) { + } else if (!strict && (!a.has(_key) || !$innerDeepEqual([a.get(_key), item, false, memo])) && !mapHasEqualEntry([set, a, _key, item, false, memo])) { return false; } @@ -527,9 +527,9 @@ var objEquiv = function objEquiv(args) { for (i = 0; i < keys.length; i += 1) { - var _key = keys[i]; + var _key2 = keys[i]; - if (!$innerDeepEqual([a[_key], b[_key], strict, memos])) { + if (!$innerDeepEqual([a[_key2], b[_key2], strict, memos])) { return false; } } diff --git a/dist/is-deep-strict-equal-x.esm.js.map b/dist/is-deep-strict-equal-x.esm.js.map index f3e5bf0..bc51e5c 100644 --- a/dist/is-deep-strict-equal-x.esm.js.map +++ b/dist/is-deep-strict-equal-x.esm.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/is-deep-strict-equal-x.js"],"names":[],"mappings":"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","file":"is-deep-strict-equal-x.esm.js","sourcesContent":["import hasOwnProperty from 'has-own-property-x';\nimport propertyIsEnumerable from 'property-is-enumerable-x';\nimport objectToString from 'to-string-tag-x';\nimport isDate from 'is-date-object';\nimport isMap from 'is-map-x';\nimport isRegExp from 'is-regexp-x';\nimport isSet from 'is-set-x';\nimport isNumberObject from 'is-number-object';\nimport isStringObject from 'is-string';\nimport isBooleanObject from 'is-boolean-object';\nimport isSymbolObject from 'is-symbol';\nimport isAnyArrayBuffer from 'is-array-buffer-x';\nimport isError from 'is-error-x';\nimport isBoxedPrimitive from 'is-boxed-primitive';\nimport isBigIntObject from 'is-bigint';\nimport whichTypedArray from 'which-typed-array';\nimport hasSymbolSupport from 'has-symbol-support-x';\nimport objectIs from 'same-value-x';\nimport objectKeys from 'object-keys-x';\nimport numberIsNaN from 'is-nan-x';\nimport getPrototypeOf from 'get-prototype-of-x';\nimport isArray from 'is-array-x';\nimport getOwnPropertySymbols from 'get-own-property-symbols-x';\nimport getOwnPropertyNames from 'get-own-property-names-x';\nimport arrayFilter from 'array-filter-x';\nimport isIndex from 'is-index-x';\nimport {MapConstructor, SetConstructor} from 'collections-x';\nimport isArrayBufferEqual from 'arraybuffer-equal';\nimport isDataView from 'is-data-view-x';\nimport attempt from 'attempt-x';\nimport methodize from 'simple-methodize-x';\nimport toBoolean from 'to-boolean-x';\n\nconst tempArray = [];\nconst push = methodize(tempArray.push);\nconst concat = methodize(tempArray.concat);\n/* eslint-disable-next-line no-void */\nconst UNDEFINED = void 0;\nconst EMPTY_STRING = '';\nlet $innerDeepEqual;\n\nconst getBigInt48 = function getBigInt48() {\n if (typeof BigInt === 'function') {\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line compat/compat */\n return BigInt(48);\n });\n\n if (res.threw === false) {\n return res.value;\n }\n }\n\n return UNDEFINED;\n};\n\nconst bigInt48 = getBigInt48();\nconst hasBigInt = isBigIntObject(bigInt48);\nconst bigIntValueOf = hasBigInt ? methodize(bigInt48.valueOf) : UNDEFINED;\nconst booleanValueOf = methodize(true.valueOf);\nconst dateGetTime = methodize(new Date().getTime);\nconst numberValueOf = methodize((0).valueOf);\nconst stringValueOf = methodize(EMPTY_STRING.valueOf);\n/* eslint-disable-next-line compat/compat */\nconst symbolValueOf = hasSymbolSupport ? methodize(Symbol(EMPTY_STRING).valueOf) : UNDEFINED;\nconst testArrayBuffer = function testArrayBuffer() {\n if (typeof ArrayBuffer === 'function') {\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line compat/compat */\n return isAnyArrayBuffer(new ArrayBuffer(4));\n });\n\n if (res.threw === false) {\n return res.value;\n }\n }\n\n return false;\n};\n\nconst hasArrayBuffer = testArrayBuffer();\n\n/* eslint-disable-next-line compat/compat */\nconst hasIsView = hasArrayBuffer && typeof ArrayBuffer.isView === 'function';\nconst isArrayBufferView = hasIsView\n ? ArrayBuffer.isView /* eslint-disable-line compat/compat */\n : function isArrayBufferView(value) {\n return whichTypedArray(value) !== false || isDataView(value);\n };\n\nconst isFloat32Array = function isFloat32Array(value) {\n // noinspection JSIncompatibleTypesComparison\n return whichTypedArray(value) === 'Float32Array';\n};\n\nconst isFloat64Array = function isFloat64Array(value) {\n // noinspection JSIncompatibleTypesComparison\n return whichTypedArray(value) === 'Float64Array';\n};\n\n// const ALL_PROPERTIES = 0;\n// const ONLY_WRITABLE = 1;\nconst ONLY_ENUMERABLE = 2;\n// const ONLY_CONFIGURABLE = 4;\n// const SKIP_STRINGS = 8;\nconst SKIP_SYMBOLS = 16;\n\nconst getOwnNonIndexProperties = function getOwnNonIndexProperties(value, filter) {\n // noinspection JSBitwiseOperatorUsage\n const names = filter & ONLY_ENUMERABLE /* eslint-disable-line no-bitwise */ ? objectKeys(value) : getOwnPropertyNames(value);\n // noinspection JSBitwiseOperatorUsage\n const symbols = filter & SKIP_SYMBOLS /* eslint-disable-line no-bitwise */ ? [] : getOwnPropertySymbols(value);\n\n return arrayFilter(concat(names, symbols), function predicate(key) {\n return isIndex(key) === false;\n });\n};\n\nconst kStrict = true;\nconst kLoose = false;\n\nconst kNoIterator = 0;\nconst kIsArray = 1;\nconst kIsSet = 2;\nconst kIsMap = 3;\n\n// Check if they have the same source and flags\nconst areSimilarRegExps = function areSimilarRegExps(a, b) {\n return a.source === b.source && a.flags === b.flags;\n};\n\nconst areSimilarFloatArrays = function areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (let offset = 0; offset < a.byteLength; offset += 1) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n};\n\nconst areSimilarTypedArrays = function areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n /* eslint-disable-next-line compat/compat */\n return isArrayBufferEqual(a.buffer, new Uint8Array(b.buffer, b.byteOffset, b.byteLength).buffer);\n};\n\nconst areEqualArrayBuffers = function areEqualArrayBuffers(buf1, buf2) {\n /* eslint-disable-next-line compat/compat */\n return buf1.byteLength === buf2.byteLength && isArrayBufferEqual(new Uint8Array(buf1).buffer, new Uint8Array(buf2).buffer);\n};\n\nconst setHasEqualElement = function setHasEqualElement(args) {\n const [set, val1, strict, memo] = args;\n // Go looking.\n const setIter = set.values();\n let next = setIter.next();\n while (toBoolean(next.done) === false) {\n const val2 = next.value;\n\n if ($innerDeepEqual([val1, val2, strict, memo])) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n\n return true;\n }\n\n next = setIter.next();\n }\n\n return false;\n};\n\nconst getEnumerables = function getEnumerables(val, keys) {\n return arrayFilter(keys, function predicate(k) {\n return propertyIsEnumerable(val, k);\n });\n};\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nconst findLooseMatchingPrimitives = function findLooseMatchingPrimitives(prim) {\n let $prim = prim;\n switch (typeof $prim) {\n case 'undefined':\n return null;\n\n case 'object': // Only pass in null as object!\n return UNDEFINED;\n\n case 'symbol':\n return false;\n\n case 'string':\n $prim = +$prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN($prim)) {\n return false;\n }\n\n break;\n\n default:\n }\n\n return true;\n};\n\nconst setMightHaveLoosePrim = function setMightHaveLoosePrim(args) {\n const [a, b, prim] = args;\n const altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n return b.has(altValue) && a.has(altValue) === false;\n};\n\nconst mapMightHaveLoosePrim = function mapMightHaveLoosePrim(args) {\n const [a, b, prim, item, memo] = args;\n const altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n const curB = b.get(altValue);\n\n if ((typeof curB === 'undefined' && b.has(altValue) === false) || $innerDeepEqual([item, curB, false, memo]) === false) {\n return false;\n }\n\n return a.has(altValue) === false && $innerDeepEqual([item, curB, false, memo]);\n};\n\nconst setEquiv = function setEquiv(args) {\n const [a, b, strict, memo] = args;\n // This is a lazily initiated Set of entries which have to be compared pairwise.\n /** @type {Set} */\n let set = null;\n const setIterA = a.values();\n let nextA = setIterA.next();\n while (toBoolean(nextA.done) === false) {\n const val = nextA.value;\n\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (typeof val === 'object' && val !== null) {\n if (set === null) {\n set = new SetConstructor();\n }\n\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something that's deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (b.has(val) === false) {\n if (strict) {\n return false;\n }\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim([a, b, val])) {\n return false;\n }\n\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(val);\n }\n\n nextA = setIterA.next();\n }\n\n if (set !== null) {\n const setIterB = b.values();\n let nextB = setIterB.next();\n while (toBoolean(nextB.done) === false) {\n const val = nextB.value;\n\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (typeof val === 'object' && val !== null) {\n if (setHasEqualElement([set, val, strict, memo]) === false) {\n return false;\n }\n } else if (toBoolean(strict) === false && a.has(val) === false && setHasEqualElement([set, val, strict, memo]) === false) {\n return false;\n }\n\n nextB = setIterB.next();\n }\n\n return set.size === 0;\n }\n\n return true;\n};\n\nconst mapHasEqualEntry = function mapHasEqualEntry(args) {\n const [set, map, key1, item1, strict, memo] = args;\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n const setIter = set.values();\n let next = setIter.next();\n while (!next.done) {\n const key2 = next.value;\n\n if ($innerDeepEqual([key1, key2, strict, memo]) && $innerDeepEqual([item1, map.get(key2), strict, memo])) {\n set.delete(key2);\n\n return true;\n }\n\n next = setIter.next();\n }\n\n return false;\n};\n\nconst mapEquiv = function mapEquiv(args) {\n const [a, b, strict, memo] = args;\n /** @type {Set} */\n let set = null;\n\n const setIterA = a.entries();\n let nextA = setIterA.next();\n while (!nextA.done) {\n const [key, item1] = nextA.value;\n\n if (typeof key === 'object' && key !== null) {\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n const item2 = b.get(key);\n\n if ((typeof item2 === 'undefined' && !b.has(key)) || !$innerDeepEqual([item1, item2, strict, memo])) {\n if (strict) {\n return false;\n }\n\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim([a, b, key, item1, memo])) {\n return false;\n }\n\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(key);\n }\n }\n\n nextA = setIterA.next();\n }\n\n if (set !== null) {\n const setIterB = b.entries();\n let nextB = setIterB.next();\n while (!nextB.done) {\n const [key, item] = nextB.value;\n\n if (typeof key === 'object' && key !== null) {\n if (!mapHasEqualEntry([set, a, key, item, strict, memo])) {\n return false;\n }\n } else if (\n !strict &&\n (!a.has(key) || !$innerDeepEqual([a.get(key), item, false, memo])) &&\n !mapHasEqualEntry([set, a, key, item, false, memo])\n ) {\n return false;\n }\n\n nextB = setIterB.next();\n }\n\n return set.size === 0;\n }\n\n return true;\n};\n\nconst isEqualBoxedPrimitive = function isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(numberValueOf(val1), numberValueOf(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && stringValueOf(val1) === stringValueOf(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && booleanValueOf(val1) === booleanValueOf(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && bigIntValueOf(val1) === bigIntValueOf(val2);\n }\n\n return isSymbolObject(val2) && symbolValueOf(val1) === symbolValueOf(val2);\n};\n\nconst objEquiv = function objEquiv(args) {\n const [a, b, strict, keys, memos, iterationType] = args;\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n let i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv([a, b, strict, memos])) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv([a, b, strict, memos])) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i += 1) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !$innerDeepEqual([a[i], b[i], strict, memos])) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n const keysA = objectKeys(a);\n for (; i < keysA.length; i += 1) {\n const key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !$innerDeepEqual([a[key], b[key], strict, memos])) {\n return false;\n }\n }\n\n return keysA.length === objectKeys(b).length;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n\n if (!$innerDeepEqual([a[key], b[key], strict, memos])) {\n return false;\n }\n }\n\n return true;\n};\n\nconst keyCheck = function keyCheck(args) {\n const [val1, val2, strict, memos, iterationType, aKeys] = args;\n let $memos = memos;\n let $aKeys = aKeys;\n\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (args.length === 5) {\n $aKeys = objectKeys(val1);\n const bKeys = objectKeys(val2);\n\n // The pair must have the same number of owned properties.\n if ($aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n let i = 0;\n for (; i < $aKeys.length; i += 1) {\n if (!hasOwnProperty(val2, $aKeys[i])) {\n return false;\n }\n }\n\n if (strict && args.length === 5) {\n const symbolKeysA = getOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n let count = 0;\n for (i = 0; i < symbolKeysA.length; i += 1) {\n const key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n push($aKeys, key);\n count += 1;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n const symbolKeysB = getOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n const symbolKeysB = getOwnPropertySymbols(val2);\n\n if (symbolKeysB.length !== 0 && getEnumerables(val2, symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (\n $aKeys.length === 0 &&\n (iterationType === kNoIterator || (iterationType === kIsArray && val1.length === 0) || val1.size === 0)\n ) {\n return true;\n }\n\n // Use $memos to handle cycles.\n if (typeof $memos === 'undefined') {\n $memos = {\n val1: new MapConstructor(),\n val2: new MapConstructor(),\n position: 0,\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n const val2MemoA = $memos.val1.get(val1);\n\n if (typeof val2MemoA !== 'undefined') {\n const val2MemoB = $memos.val2.get(val2);\n\n if (typeof val2MemoB !== 'undefined') {\n return val2MemoA === val2MemoB;\n }\n }\n\n $memos.position += 1;\n }\n\n $memos.val1.set(val1, $memos.position);\n $memos.val2.set(val2, $memos.position);\n\n const areEq = objEquiv([val1, val2, strict, $aKeys, $memos, iterationType]);\n\n $memos.val1.delete(val1);\n $memos.val2.delete(val2);\n\n return areEq;\n};\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n$innerDeepEqual = function innerDeepEqual(args) {\n const [val1, val2, strict, memos] = args;\n\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) {\n return true;\n }\n\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (typeof val1 !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (typeof val2 !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (getPrototypeOf(val1) !== getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || typeof val1 !== 'object') {\n if (val2 === null || typeof val2 !== 'object') {\n // noinspection EqualityComparisonWithCoercionJS\n return val1 == val2; /* eslint-disable-line eqeqeq */\n }\n\n return false;\n }\n\n if (val2 === null || typeof val2 !== 'object') {\n return false;\n }\n }\n\n const val1Tag = objectToString(val1);\n const val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n /* eslint-disable-next-line no-bitwise */\n const filter = strict ? ONLY_ENUMERABLE : ONLY_ENUMERABLE | SKIP_SYMBOLS;\n const keys1 = getOwnNonIndexProperties(val1, filter);\n const keys2 = getOwnNonIndexProperties(val2, filter);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsArray, keys1]);\n }\n\n if (val1Tag === '[object Object]') {\n return keyCheck([val1, val2, strict, memos, kNoIterator]);\n }\n\n if (isDate(val1)) {\n if (dateGetTime(val1) !== dateGetTime(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isError(val1)) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (areSimilarFloatArrays(val1, val2) === false) {\n return false;\n }\n } else if (areSimilarTypedArrays(val1, val2) === false) {\n return false;\n }\n\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n /* eslint-disable-next-line no-bitwise */\n const filter = strict ? ONLY_ENUMERABLE : ONLY_ENUMERABLE | SKIP_SYMBOLS;\n const keys1 = getOwnNonIndexProperties(val1, filter);\n const keys2 = getOwnNonIndexProperties(val2, filter);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kNoIterator, keys1]);\n } else if (isSet(val1)) {\n if (isSet(val2) === false || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsSet]);\n } else if (isMap(val1)) {\n if (isMap(val2) === false || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsMap]);\n } else if (isAnyArrayBuffer(val1)) {\n if (areEqualArrayBuffers(val1, val2) === false) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kNoIterator]);\n};\n\n// noinspection JSUnusedGlobalSymbols\nexport function isDeepEqual(val1, val2) {\n return $innerDeepEqual([val1, val2, kLoose]);\n}\n\nexport function isDeepStrictEqual(val1, val2) {\n return $innerDeepEqual([val1, val2, kStrict]);\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/is-deep-strict-equal-x.js"],"names":[],"mappings":"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","file":"is-deep-strict-equal-x.esm.js","sourcesContent":["import hasOwnProperty from 'has-own-property-x';\nimport propertyIsEnumerable from 'property-is-enumerable-x';\nimport objectToString from 'to-string-tag-x';\nimport isDate from 'is-date-object';\nimport isMap from 'is-map-x';\nimport isRegExp from 'is-regexp-x';\nimport isSet from 'is-set-x';\nimport isNumberObject from 'is-number-object';\nimport isStringObject from 'is-string';\nimport isBooleanObject from 'is-boolean-object';\nimport isSymbolObject from 'is-symbol';\nimport isAnyArrayBuffer from 'is-array-buffer-x';\nimport isError from 'is-error-x';\nimport isBoxedPrimitive from 'is-boxed-primitive';\nimport isBigIntObject from 'is-bigint';\nimport whichTypedArray from 'which-typed-array';\nimport hasSymbolSupport from 'has-symbol-support-x';\nimport objectIs from 'same-value-x';\nimport objectKeys from 'object-keys-x';\nimport numberIsNaN from 'is-nan-x';\nimport getPrototypeOf from 'get-prototype-of-x';\nimport isArray from 'is-array-x';\nimport getOwnPropertySymbols from 'get-own-property-symbols-x';\nimport getOwnPropertyNames from 'get-own-property-names-x';\nimport arrayFilter from 'array-filter-x';\nimport isIndex from 'is-index-x';\nimport {MapConstructor, SetConstructor} from 'collections-x';\nimport isArrayBufferEqual from 'arraybuffer-equal';\nimport isDataView from 'is-data-view-x';\nimport attempt from 'attempt-x';\nimport methodize from 'simple-methodize-x';\nimport toBoolean from 'to-boolean-x';\n\nconst tempArray = [];\nconst push = methodize(tempArray.push);\nconst concat = methodize(tempArray.concat);\n/* eslint-disable-next-line no-void */\nconst UNDEFINED = void 0;\nconst EMPTY_STRING = '';\nlet $innerDeepEqual;\n\nconst getBigInt48 = function getBigInt48() {\n if (typeof BigInt === 'function') {\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line compat/compat */\n return BigInt(48);\n });\n\n if (res.threw === false) {\n return res.value;\n }\n }\n\n return UNDEFINED;\n};\n\nconst bigInt48 = getBigInt48();\nconst hasBigInt = isBigIntObject(bigInt48);\nconst bigIntValueOf = hasBigInt ? methodize(bigInt48.valueOf) : UNDEFINED;\nconst booleanValueOf = methodize(true.valueOf);\nconst dateGetTime = methodize(new Date().getTime);\nconst numberValueOf = methodize((0).valueOf);\nconst stringValueOf = methodize(EMPTY_STRING.valueOf);\n/* eslint-disable-next-line compat/compat */\nconst symbolValueOf = hasSymbolSupport ? methodize(Symbol(EMPTY_STRING).valueOf) : UNDEFINED;\nconst testArrayBuffer = function testArrayBuffer() {\n if (typeof ArrayBuffer === 'function') {\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line compat/compat */\n return isAnyArrayBuffer(new ArrayBuffer(4));\n });\n\n if (res.threw === false) {\n return res.value;\n }\n }\n\n return false;\n};\n\nconst hasArrayBuffer = testArrayBuffer();\n\n/* eslint-disable-next-line compat/compat */\nconst hasIsView = hasArrayBuffer && typeof ArrayBuffer.isView === 'function';\nconst isArrayBufferView = hasIsView\n ? ArrayBuffer.isView /* eslint-disable-line compat/compat */\n : function isArrayBufferView(value) {\n return whichTypedArray(value) !== false || isDataView(value);\n };\n\nconst isFloat32Array = function isFloat32Array(value) {\n // noinspection JSIncompatibleTypesComparison\n return whichTypedArray(value) === 'Float32Array';\n};\n\nconst isFloat64Array = function isFloat64Array(value) {\n // noinspection JSIncompatibleTypesComparison\n return whichTypedArray(value) === 'Float64Array';\n};\n\n// const ALL_PROPERTIES = 0;\n// const ONLY_WRITABLE = 1;\nconst ONLY_ENUMERABLE = 2;\n// const ONLY_CONFIGURABLE = 4;\n// const SKIP_STRINGS = 8;\nconst SKIP_SYMBOLS = 16;\n\nconst getOwnNonIndexProperties = function getOwnNonIndexProperties(value, filter) {\n // noinspection JSBitwiseOperatorUsage\n const names = filter & ONLY_ENUMERABLE /* eslint-disable-line no-bitwise */ ? objectKeys(value) : getOwnPropertyNames(value);\n // noinspection JSBitwiseOperatorUsage\n const symbols = filter & SKIP_SYMBOLS /* eslint-disable-line no-bitwise */ ? [] : getOwnPropertySymbols(value);\n\n return arrayFilter(concat(names, symbols), function predicate(key) {\n return isIndex(key) === false;\n });\n};\n\nconst kStrict = true;\nconst kLoose = false;\n\nconst kNoIterator = 0;\nconst kIsArray = 1;\nconst kIsSet = 2;\nconst kIsMap = 3;\n\n// Check if they have the same source and flags\nconst areSimilarRegExps = function areSimilarRegExps(a, b) {\n return a.source === b.source && a.flags === b.flags;\n};\n\nconst areSimilarFloatArrays = function areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (let offset = 0; offset < a.byteLength; offset += 1) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n};\n\nconst areSimilarTypedArrays = function areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n /* eslint-disable-next-line compat/compat */\n return isArrayBufferEqual(a.buffer, new Uint8Array(b.buffer, b.byteOffset, b.byteLength).buffer);\n};\n\nconst areEqualArrayBuffers = function areEqualArrayBuffers(buf1, buf2) {\n /* eslint-disable-next-line compat/compat */\n return buf1.byteLength === buf2.byteLength && isArrayBufferEqual(new Uint8Array(buf1).buffer, new Uint8Array(buf2).buffer);\n};\n\nconst setHasEqualElement = function setHasEqualElement(args) {\n const [set, val1, strict, memo] = args;\n // Go looking.\n const setIter = set.values();\n let next = setIter.next();\n while (toBoolean(next.done) === false) {\n const val2 = next.value;\n\n if ($innerDeepEqual([val1, val2, strict, memo])) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n\n return true;\n }\n\n next = setIter.next();\n }\n\n return false;\n};\n\nconst getEnumerables = function getEnumerables(val, keys) {\n return arrayFilter(keys, function predicate(k) {\n return propertyIsEnumerable(val, k);\n });\n};\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nconst findLooseMatchingPrimitives = function findLooseMatchingPrimitives(prim) {\n let $prim = prim;\n switch (typeof $prim) {\n case 'undefined':\n return null;\n\n case 'object': // Only pass in null as object!\n return UNDEFINED;\n\n case 'symbol':\n return false;\n\n case 'string':\n $prim = +$prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN($prim)) {\n return false;\n }\n\n break;\n\n default:\n }\n\n return true;\n};\n\nconst setMightHaveLoosePrim = function setMightHaveLoosePrim(args) {\n const [a, b, prim] = args;\n const altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n return b.has(altValue) && a.has(altValue) === false;\n};\n\nconst mapMightHaveLoosePrim = function mapMightHaveLoosePrim(args) {\n const [a, b, prim, item, memo] = args;\n const altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n const curB = b.get(altValue);\n\n if ((typeof curB === 'undefined' && b.has(altValue) === false) || $innerDeepEqual([item, curB, false, memo]) === false) {\n return false;\n }\n\n return a.has(altValue) === false && $innerDeepEqual([item, curB, false, memo]);\n};\n\nconst setEquiv = function setEquiv(args) {\n const [a, b, strict, memo] = args;\n // This is a lazily initiated Set of entries which have to be compared pairwise.\n /** @type {Set} */\n let set = null;\n const setIterA = a.values();\n let nextA = setIterA.next();\n while (toBoolean(nextA.done) === false) {\n const val = nextA.value;\n\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (typeof val === 'object' && val !== null) {\n if (set === null) {\n set = new SetConstructor();\n }\n\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something that's deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (b.has(val) === false) {\n if (strict) {\n return false;\n }\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim([a, b, val])) {\n return false;\n }\n\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(val);\n }\n\n nextA = setIterA.next();\n }\n\n if (set !== null) {\n const setIterB = b.values();\n let nextB = setIterB.next();\n while (toBoolean(nextB.done) === false) {\n const val = nextB.value;\n\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (typeof val === 'object' && val !== null) {\n if (setHasEqualElement([set, val, strict, memo]) === false) {\n return false;\n }\n } else if (toBoolean(strict) === false && a.has(val) === false && setHasEqualElement([set, val, strict, memo]) === false) {\n return false;\n }\n\n nextB = setIterB.next();\n }\n\n return set.size === 0;\n }\n\n return true;\n};\n\nconst mapHasEqualEntry = function mapHasEqualEntry(args) {\n const [set, map, key1, item1, strict, memo] = args;\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n const setIter = set.values();\n let next = setIter.next();\n while (!next.done) {\n const key2 = next.value;\n\n if ($innerDeepEqual([key1, key2, strict, memo]) && $innerDeepEqual([item1, map.get(key2), strict, memo])) {\n set.delete(key2);\n\n return true;\n }\n\n next = setIter.next();\n }\n\n return false;\n};\n\nconst mapEquiv = function mapEquiv(args) {\n const [a, b, strict, memo] = args;\n /** @type {Set} */\n let set = null;\n\n const setIterA = a.entries();\n let nextA = setIterA.next();\n while (!nextA.done) {\n const [key, item1] = nextA.value;\n\n if (typeof key === 'object' && key !== null) {\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n const item2 = b.get(key);\n\n if ((typeof item2 === 'undefined' && !b.has(key)) || !$innerDeepEqual([item1, item2, strict, memo])) {\n if (strict) {\n return false;\n }\n\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim([a, b, key, item1, memo])) {\n return false;\n }\n\n if (set === null) {\n set = new SetConstructor();\n }\n\n set.add(key);\n }\n }\n\n nextA = setIterA.next();\n }\n\n if (set !== null) {\n const setIterB = b.entries();\n let nextB = setIterB.next();\n while (!nextB.done) {\n const [key, item] = nextB.value;\n\n if (typeof key === 'object' && key !== null) {\n if (!mapHasEqualEntry([set, a, key, item, strict, memo])) {\n return false;\n }\n } else if (\n !strict &&\n (!a.has(key) || !$innerDeepEqual([a.get(key), item, false, memo])) &&\n !mapHasEqualEntry([set, a, key, item, false, memo])\n ) {\n return false;\n }\n\n nextB = setIterB.next();\n }\n\n return set.size === 0;\n }\n\n return true;\n};\n\nconst isEqualBoxedPrimitive = function isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(numberValueOf(val1), numberValueOf(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && stringValueOf(val1) === stringValueOf(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && booleanValueOf(val1) === booleanValueOf(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && bigIntValueOf(val1) === bigIntValueOf(val2);\n }\n\n return isSymbolObject(val2) && symbolValueOf(val1) === symbolValueOf(val2);\n};\n\nconst objEquiv = function objEquiv(args) {\n const [a, b, strict, keys, memos, iterationType] = args;\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n let i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv([a, b, strict, memos])) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv([a, b, strict, memos])) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i += 1) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !$innerDeepEqual([a[i], b[i], strict, memos])) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n const keysA = objectKeys(a);\n for (; i < keysA.length; i += 1) {\n const key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !$innerDeepEqual([a[key], b[key], strict, memos])) {\n return false;\n }\n }\n\n return keysA.length === objectKeys(b).length;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i += 1) {\n const key = keys[i];\n\n if (!$innerDeepEqual([a[key], b[key], strict, memos])) {\n return false;\n }\n }\n\n return true;\n};\n\nconst keyCheck = function keyCheck(args) {\n const [val1, val2, strict, memos, iterationType, aKeys] = args;\n let $memos = memos;\n let $aKeys = aKeys;\n\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (args.length === 5) {\n $aKeys = objectKeys(val1);\n const bKeys = objectKeys(val2);\n\n // The pair must have the same number of owned properties.\n if ($aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n let i = 0;\n for (; i < $aKeys.length; i += 1) {\n if (!hasOwnProperty(val2, $aKeys[i])) {\n return false;\n }\n }\n\n if (strict && args.length === 5) {\n const symbolKeysA = getOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n let count = 0;\n for (i = 0; i < symbolKeysA.length; i += 1) {\n const key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n push($aKeys, key);\n count += 1;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n const symbolKeysB = getOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n const symbolKeysB = getOwnPropertySymbols(val2);\n\n if (symbolKeysB.length !== 0 && getEnumerables(val2, symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (\n $aKeys.length === 0 &&\n (iterationType === kNoIterator || (iterationType === kIsArray && val1.length === 0) || val1.size === 0)\n ) {\n return true;\n }\n\n // Use $memos to handle cycles.\n if (typeof $memos === 'undefined') {\n $memos = {\n val1: new MapConstructor(),\n val2: new MapConstructor(),\n position: 0,\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n const val2MemoA = $memos.val1.get(val1);\n\n if (typeof val2MemoA !== 'undefined') {\n const val2MemoB = $memos.val2.get(val2);\n\n if (typeof val2MemoB !== 'undefined') {\n return val2MemoA === val2MemoB;\n }\n }\n\n $memos.position += 1;\n }\n\n $memos.val1.set(val1, $memos.position);\n $memos.val2.set(val2, $memos.position);\n\n const areEq = objEquiv([val1, val2, strict, $aKeys, $memos, iterationType]);\n\n $memos.val1.delete(val1);\n $memos.val2.delete(val2);\n\n return areEq;\n};\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n$innerDeepEqual = function innerDeepEqual(args) {\n const [val1, val2, strict, memos] = args;\n\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) {\n return true;\n }\n\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (typeof val1 !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (typeof val2 !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (getPrototypeOf(val1) !== getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || typeof val1 !== 'object') {\n if (val2 === null || typeof val2 !== 'object') {\n // noinspection EqualityComparisonWithCoercionJS\n return val1 == val2; /* eslint-disable-line eqeqeq */\n }\n\n return false;\n }\n\n if (val2 === null || typeof val2 !== 'object') {\n return false;\n }\n }\n\n const val1Tag = objectToString(val1);\n const val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n /* eslint-disable-next-line no-bitwise */\n const filter = strict ? ONLY_ENUMERABLE : ONLY_ENUMERABLE | SKIP_SYMBOLS;\n const keys1 = getOwnNonIndexProperties(val1, filter);\n const keys2 = getOwnNonIndexProperties(val2, filter);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsArray, keys1]);\n }\n\n if (val1Tag === '[object Object]') {\n return keyCheck([val1, val2, strict, memos, kNoIterator]);\n }\n\n if (isDate(val1)) {\n if (dateGetTime(val1) !== dateGetTime(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isError(val1)) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (areSimilarFloatArrays(val1, val2) === false) {\n return false;\n }\n } else if (areSimilarTypedArrays(val1, val2) === false) {\n return false;\n }\n\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n /* eslint-disable-next-line no-bitwise */\n const filter = strict ? ONLY_ENUMERABLE : ONLY_ENUMERABLE | SKIP_SYMBOLS;\n const keys1 = getOwnNonIndexProperties(val1, filter);\n const keys2 = getOwnNonIndexProperties(val2, filter);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kNoIterator, keys1]);\n } else if (isSet(val1)) {\n if (isSet(val2) === false || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsSet]);\n } else if (isMap(val1)) {\n if (isMap(val2) === false || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kIsMap]);\n } else if (isAnyArrayBuffer(val1)) {\n if (areEqualArrayBuffers(val1, val2) === false) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck([val1, val2, strict, memos, kNoIterator]);\n};\n\n// noinspection JSUnusedGlobalSymbols\nexport function isDeepEqual(val1, val2) {\n return $innerDeepEqual([val1, val2, kLoose]);\n}\n\nexport function isDeepStrictEqual(val1, val2) {\n return $innerDeepEqual([val1, val2, kStrict]);\n}\n"]} \ No newline at end of file diff --git a/dist/is-deep-strict-equal-x.js b/dist/is-deep-strict-equal-x.js index b8a830b..215a0b6 100644 --- a/dist/is-deep-strict-equal-x.js +++ b/dist/is-deep-strict-equal-x.js @@ -1,11 +1,11 @@ /*! { "copywrite": "Copyright (c) 2015-2017", - "date": "2019-09-05T20:42:51.208Z", + "date": "2020-01-31T11:35:40.841Z", "describe": "", "description": "node's isDeepStrictEqual algorithm.", "file": "is-deep-strict-equal-x.js", - "hash": "f67dbd644bd5412273cf", + "hash": "0a0b8e073a640a14ab79", "license": "MIT", "version": "1.1.2" } @@ -7105,13 +7105,13 @@ var is_data_view_x_esm_isDataView = function isDataView(object) { // CONCATENATED MODULE: ./dist/is-deep-strict-equal-x.esm.js /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDeepEqual", function() { return isDeepEqual; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDeepStrictEqual", function() { return isDeepStrictEqual; }); -function is_deep_strict_equal_x_esm_typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { is_deep_strict_equal_x_esm_typeof = function _typeof(obj) { return typeof obj; }; } else { is_deep_strict_equal_x_esm_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return is_deep_strict_equal_x_esm_typeof(obj); } +function is_deep_strict_equal_x_esm_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { is_deep_strict_equal_x_esm_typeof = function _typeof(obj) { return typeof obj; }; } else { is_deep_strict_equal_x_esm_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return is_deep_strict_equal_x_esm_typeof(obj); } function is_deep_strict_equal_x_esm_slicedToArray(arr, i) { return is_deep_strict_equal_x_esm_arrayWithHoles(arr) || is_deep_strict_equal_x_esm_iterableToArrayLimit(arr, i) || is_deep_strict_equal_x_esm_nonIterableRest(); } function is_deep_strict_equal_x_esm_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } -function is_deep_strict_equal_x_esm_iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +function is_deep_strict_equal_x_esm_iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function is_deep_strict_equal_x_esm_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } @@ -7545,14 +7545,14 @@ var is_deep_strict_equal_x_esm_mapEquiv = function mapEquiv(args) { while (!nextB.done) { var _nextB$value = is_deep_strict_equal_x_esm_slicedToArray(nextB.value, 2), - key = _nextB$value[0], + _key = _nextB$value[0], item = _nextB$value[1]; - if (is_deep_strict_equal_x_esm_typeof(key) === 'object' && key !== null) { - if (!mapHasEqualEntry([set, a, key, item, strict, memo])) { + if (is_deep_strict_equal_x_esm_typeof(_key) === 'object' && _key !== null) { + if (!mapHasEqualEntry([set, a, _key, item, strict, memo])) { return false; } - } else if (!strict && (!a.has(key) || !$innerDeepEqual([a.get(key), item, false, memo])) && !mapHasEqualEntry([set, a, key, item, false, memo])) { + } else if (!strict && (!a.has(_key) || !$innerDeepEqual([a.get(_key), item, false, memo])) && !mapHasEqualEntry([set, a, _key, item, false, memo])) { return false; } @@ -7634,9 +7634,9 @@ var is_deep_strict_equal_x_esm_objEquiv = function objEquiv(args) { for (i = 0; i < keys.length; i += 1) { - var _key = keys[i]; + var _key2 = keys[i]; - if (!$innerDeepEqual([a[_key], b[_key], strict, memos])) { + if (!$innerDeepEqual([a[_key2], b[_key2], strict, memos])) { return false; } } diff --git a/dist/is-deep-strict-equal-x.js.map b/dist/is-deep-strict-equal-x.js.map index cfd0e04..152c8d7 100644 --- a/dist/is-deep-strict-equal-x.js.map +++ b/dist/is-deep-strict-equal-x.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://isDeepStrictEqualX/webpack/universalModuleDefinition","webpack://isDeepStrictEqualX/webpack/bootstrap","webpack://isDeepStrictEqualX/./node_modules/is-string/index.js","webpack://isDeepStrictEqualX/./node_modules/is-symbol/index.js","webpack://isDeepStrictEqualX/./node_modules/is-boolean-object/index.js","webpack://isDeepStrictEqualX/./node_modules/is-bigint/index.js","webpack://isDeepStrictEqualX/./node_modules/is-date-object/index.js","webpack://isDeepStrictEqualX/./node_modules/is-number-object/index.js","webpack://isDeepStrictEqualX/./node_modules/is-arguments/index.js","webpack://isDeepStrictEqualX/./node_modules/which-typed-array/index.js","webpack://isDeepStrictEqualX/(webpack)/buildin/global.js","webpack://isDeepStrictEqualX/./node_modules/arraybuffer-equal/index.js","webpack://isDeepStrictEqualX/./node_modules/foreach/index.js","webpack://isDeepStrictEqualX/./node_modules/object-keys/isArguments.js","webpack://isDeepStrictEqualX/./node_modules/is-boxed-primitive/implementation.js","webpack://isDeepStrictEqualX/./node_modules/object-keys/index.js","webpack://isDeepStrictEqualX/./node_modules/has-symbols/index.js","webpack://isDeepStrictEqualX/./node_modules/has-symbols/shams.js","webpack://isDeepStrictEqualX/./node_modules/function-bind/index.js","webpack://isDeepStrictEqualX/./node_modules/function-bind/implementation.js","webpack://isDeepStrictEqualX/./node_modules/is-typed-array/index.js","webpack://isDeepStrictEqualX/./node_modules/object-keys/implementation.js","webpack://isDeepStrictEqualX/../src/is-nil-x.js","webpack://isDeepStrictEqualX/../src/require-object-coercible-x.js","webpack://isDeepStrictEqualX/../src/to-object-x.js","webpack://isDeepStrictEqualX/../src/is-primitive-x.js","webpack://isDeepStrictEqualX/../src/has-boxed-string-x.js","webpack://isDeepStrictEqualX/../src/noop-x.js","webpack://isDeepStrictEqualX/../src/has-working-bind-x.js","webpack://isDeepStrictEqualX/../src/util-pusher-x.js","webpack://isDeepStrictEqualX/../src/simple-bind-x.js","webpack://isDeepStrictEqualX/../src/simple-call-x.js","webpack://isDeepStrictEqualX/../src/attempt-x.js","webpack://isDeepStrictEqualX/../src/has-symbol-support-x.js","webpack://isDeepStrictEqualX/../src/to-boolean-x.js","webpack://isDeepStrictEqualX/../src/simple-methodize-x.js","webpack://isDeepStrictEqualX/../src/to-string-tag-x.js","webpack://isDeepStrictEqualX/../src/has-to-string-tag-x.js","webpack://isDeepStrictEqualX/../src/to-string-x.js","webpack://isDeepStrictEqualX/../src/require-coercible-to-string-x.js","webpack://isDeepStrictEqualX/../src/white-space-x.js","webpack://isDeepStrictEqualX/../src/trim-left-x.js","webpack://isDeepStrictEqualX/../src/trim-right-x.js","webpack://isDeepStrictEqualX/../src/trim-x.js","webpack://isDeepStrictEqualX/../src/normalize-space-x.js","webpack://isDeepStrictEqualX/../src/replace-comments-x.js","webpack://isDeepStrictEqualX/../src/is-function-x.js","webpack://isDeepStrictEqualX/../src/to-primitive-x.js","webpack://isDeepStrictEqualX/../src/to-property-key-x.js","webpack://isDeepStrictEqualX/../src/has-own-property-x.js","webpack://isDeepStrictEqualX/../src/property-is-enumerable-x.js","webpack://isDeepStrictEqualX/../src/is-object-like-x.js","webpack://isDeepStrictEqualX/../src/is-nan-x.js","webpack://isDeepStrictEqualX/../src/infinity-x.js","webpack://isDeepStrictEqualX/../src/is-finite-x.js","webpack://isDeepStrictEqualX/../src/nan-x.js","webpack://isDeepStrictEqualX/../src/parse-int-x.js","webpack://isDeepStrictEqualX/../src/to-number-x.js","webpack://isDeepStrictEqualX/../src/math-sign-x.js","webpack://isDeepStrictEqualX/../src/to-integer-x.js","webpack://isDeepStrictEqualX/../src/is-integer-x.js","webpack://isDeepStrictEqualX/../src/is-safe-integer-x.js","webpack://isDeepStrictEqualX/../src/is-length-x.js","webpack://isDeepStrictEqualX/../src/to-string-symbols-supported-x.js","webpack://isDeepStrictEqualX/../src/math-clamp-x.js","webpack://isDeepStrictEqualX/../src/is-index-x.js","webpack://isDeepStrictEqualX/../src/object-get-own-property-descriptor-x.js","webpack://isDeepStrictEqualX/../src/util-get-getter-x.js","webpack://isDeepStrictEqualX/../src/is-map-x.js","webpack://isDeepStrictEqualX/../src/assert-is-object-x.js","webpack://isDeepStrictEqualX/../src/object-define-property-x.js","webpack://isDeepStrictEqualX/../src/is-regexp-x.js","webpack://isDeepStrictEqualX/../src/is-set-x.js","webpack://isDeepStrictEqualX/../src/is-array-buffer-x.js","webpack://isDeepStrictEqualX/../src/get-prototype-of-x.js","webpack://isDeepStrictEqualX/../src/is-error-x.js","webpack://isDeepStrictEqualX/../src/same-value-x.js","webpack://isDeepStrictEqualX/../src/is-array-x.js","webpack://isDeepStrictEqualX/../src/to-length-x.js","webpack://isDeepStrictEqualX/../src/split-if-boxed-bug-x.js","webpack://isDeepStrictEqualX/../src/array-like-slice-x.js","webpack://isDeepStrictEqualX/../src/object-keys-x.js","webpack://isDeepStrictEqualX/../src/get-own-property-symbols-x.js","webpack://isDeepStrictEqualX/../src/array-slice-x.js","webpack://isDeepStrictEqualX/../src/get-own-property-names-x.js","webpack://isDeepStrictEqualX/../src/assert-is-function-x.js","webpack://isDeepStrictEqualX/../src/array-any-x.js","webpack://isDeepStrictEqualX/../src/array-all-x.js","webpack://isDeepStrictEqualX/../src/array-filter-x.js","webpack://isDeepStrictEqualX/../src/array-for-each-x.js","webpack://isDeepStrictEqualX/../src/get-own-enumerable-property-symbols-x.js","webpack://isDeepStrictEqualX/../src/get-own-enumerable-keys-x.js","webpack://isDeepStrictEqualX/../src/object-define-properties-x.js","webpack://isDeepStrictEqualX/../src/is-array-like-x.js","webpack://isDeepStrictEqualX/../src/is-surrogate-pair-x.js","webpack://isDeepStrictEqualX/../src/same-value-zero-x.js","webpack://isDeepStrictEqualX/../src/find-index-x.js","webpack://isDeepStrictEqualX/../src/calculate-from-index-x.js","webpack://isDeepStrictEqualX/../src/index-of-x.js","webpack://isDeepStrictEqualX/../src/array-reduce-right-x.js","webpack://isDeepStrictEqualX/../src/big-counter-x.js","webpack://isDeepStrictEqualX/../src/array-some-x.js","webpack://isDeepStrictEqualX/../src/symbol-iterator-x.js","webpack://isDeepStrictEqualX/../src/symbol-species-x.js","webpack://isDeepStrictEqualX/../src/object-create-x.js","webpack://isDeepStrictEqualX/./node_modules/is-var-name/index.mjs","webpack://isDeepStrictEqualX/../src/rename-function-x.js","webpack://isDeepStrictEqualX/../src/collections-x.js","webpack://isDeepStrictEqualX/../src/is-data-view-x.js","webpack://isDeepStrictEqualX/../src/is-deep-strict-equal-x.js"],"names":[],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD,O;QCvDA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFa;;AAEb;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,aAAa;AAC9C,iCAAiC,cAAc;AAC/C;AACA;;;;;;;;ACnBa;;AAEb;AACA,iBAAiB,mBAAO,CAAC,EAAa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,SAAS,MAAK,IAAI,KAAK;AACvB;AACA;;;;;;;;AClCa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,aAAa;AAC/C,iCAAiC,cAAc;AAC/C;AACA;;;;;;;;ACpBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,SAAS,MAAK,IAAI,KAAK;AACvB;AACA;;;;;;;;ACnCa;;AAEb;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,cAAc;AACjE;AACA;;;;;;;;ACnBa;;AAEb;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,aAAa;AAC9C,iCAAiC,cAAc;AAC/C;AACA;;;;;;;;ACnBa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,0DAA0D;;AAE1D;;;;;;;;AC9BA,8CAAa;;AAEb,cAAc,mBAAO,CAAC,EAAS;AAC/B,WAAW,mBAAO,CAAC,EAAe;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF;AACA;;AAEA,mBAAmB,mBAAO,CAAC,EAAgB;;AAE3C;AACA,4BAA4B,cAAc;AAC1C,uBAAuB,mCAAmC;AAC1D;AACA;;;;;;;;AChEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBa;;AAEb,eAAe,mBAAO,CAAC,CAAW;AAClC,eAAe,mBAAO,CAAC,CAAkB;AACzC,gBAAgB,mBAAO,CAAC,CAAmB;AAC3C,eAAe,mBAAO,CAAC,CAAW;AAClC,eAAe,mBAAO,CAAC,CAAW;;AAElC;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACda;;AAEb;AACA,aAAa,mBAAO,CAAC,EAAe;;AAEpC;AACA,4CAA4C,oBAAoB,EAAE,GAAG,mBAAO,CAAC,EAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;;;;;;;AC/BA,8CAAa;;AAEb;AACA,oBAAoB,mBAAO,CAAC,EAAS;;AAErC;AACA,wCAAwC,cAAc;AACtD,oCAAoC,cAAc;AAClD,6CAA6C,cAAc;AAC3D,yCAAyC,cAAc;;AAEvD;AACA;;;;;;;;;ACZa;;AAEb;AACA;AACA,0FAA0F,cAAc;AACxG,2CAA2C,aAAa;;AAExD;AACA;AACA;AACA,+BAA+B,cAAc;;AAE7C,iEAAiE,cAAc;AAC/E,oEAAoE,cAAc;;AAElF;AACA,gCAAgC,cAAc;AAC9C;AACA,sCAAsC,cAAc;;AAEpD,0DAA0D,cAAc;AACxE,8DAA8D,cAAc;;AAE5E;AACA;AACA,mBAAmB,cAAc,EAAE;AACnC,0EAA0E,cAAc;;AAExF,wGAAwG,cAAc;;AAEtH;AACA,4CAA4C,cAAc;;AAE1D,6DAA6D,cAAc;;AAE3E;AACA;AACA,sEAAsE,cAAc;AACpF;;AAEA;AACA;;;;;;;;ACzCa;;AAEb,qBAAqB,mBAAO,CAAC,EAAkB;;AAE/C;;;;;;;;ACJa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA,8EAA8E,qCAAqC,EAAE;;AAErH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnDA,8CAAa;;AAEb,cAAc,mBAAO,CAAC,EAAS;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA,EAAE;AACF;AACA;;AAEA;AACA,2CAA2C,cAAc;AACzD,uBAAuB,uEAAuE;AAC9F,aAAa,cAAc;AAC3B;AACA;;;;;;;;;AC3Da;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,EAAe,EAAE;AACvC;AACA,0CAA0C,iBAAiB;AAC3D,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;A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","file":"is-deep-strict-equal-x.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"isDeepStrictEqualX\"] = factory();\n\telse\n\t\troot[\"isDeepStrictEqualX\"] = factory();\n})((function () {\n 'use strict';\n\n var ObjectCtr = {}.constructor;\n var objectPrototype = ObjectCtr.prototype;\n var defineProperty = ObjectCtr.defineProperty;\n var $globalThis;\n var getGlobalFallback = function() {\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n return void 0;\n };\n\n var returnThis = function() {\n return this;\n };\n\n try {\n if (defineProperty) {\n defineProperty(objectPrototype, '$$globalThis$$', {\n get: returnThis,\n configurable: true\n });\n } else {\n objectPrototype.__defineGetter__('$$globalThis$$', returnThis);\n }\n\n $globalThis = typeof $$globalThis$$ === 'undefined' ? getGlobalFallback() : $$globalThis$$;\n\n delete objectPrototype.$$globalThis$$;\n\n return $globalThis;\n } catch (error) {\n return getGlobalFallback();\n }\n}()), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 20);\n","'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') { return true; }\n\tif (typeof value !== 'object') { return false; }\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar boolToStr = Boolean.prototype.toString;\n\nvar tryBooleanObject = function tryBooleanObject(value) {\n\ttry {\n\t\tboolToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar boolClass = '[object Boolean]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isBoolean(value) {\n\tif (typeof value === 'boolean') { return true; }\n\tif (typeof value !== 'object') { return false; }\n\treturn hasToStringTag ? tryBooleanObject(value) : toStr.call(value) === boolClass;\n};\n","'use strict';\n\nif (typeof BigInt === 'function') {\n\tvar bigIntValueOf = BigInt.prototype.valueOf;\n\tvar tryBigInt = function tryBigIntObject(value) {\n\t\ttry {\n\t\t\tbigIntValueOf.call(value);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\n\tmodule.exports = function isBigInt(value) {\n\t\tif (\n\t\t\tvalue === null\n\t\t\t|| typeof value === 'undefined'\n\t\t\t|| typeof value === 'boolean'\n\t\t\t|| typeof value === 'string'\n\t\t\t|| typeof value === 'number'\n\t\t\t|| typeof value === 'symbol'\n\t\t\t|| typeof value === 'function'\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof value === 'bigint') { // eslint-disable-line valid-typeof\n\t\t\treturn true;\n\t\t}\n\n\t\treturn tryBigInt(value);\n\t};\n} else {\n\tmodule.exports = function isBigInt(value) {\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar numToStr = Number.prototype.toString;\nvar tryNumberObject = function tryNumberObject(value) {\n\ttry {\n\t\tnumToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar numClass = '[object Number]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isNumberObject(value) {\n\tif (typeof value === 'number') { return true; }\n\tif (typeof value !== 'object') { return false; }\n\treturn hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;\n};\n","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nvar toStr = Object.prototype.toString;\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn toStr.call(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\ttoStr.call(value) !== '[object Array]' &&\n\t\ttoStr.call(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar forEach = require('foreach');\nvar bind = require('function-bind');\n\nvar toStr = bind.call(Function.call, Object.prototype.toString);\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nvar typedArrays = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n\nvar slice = bind.call(Function.call, String.prototype.slice);\nvar toStrTags = {};\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (hasToStringTag && gOPD && Object.getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof global[typedArray] === 'function') {\n\t\t\tvar arr = new global[typedArray]();\n\t\t\tif (!(Symbol.toStringTag in arr)) {\n\t\t\t\tthrow new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n\t\t\t}\n\t\t\tvar proto = Object.getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = Object.getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag) { return slice(toStr(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function arraybufferEqual (buf1, buf2) {\n if (buf1 === buf2) {\n return true;\n }\n\n if (buf1.byteLength !== buf2.byteLength) {\n return false;\n }\n\n var view1 = new DataView(buf1);\n var view2 = new DataView(buf2);\n\n var i = buf1.byteLength;\n while (i--) {\n if (view1.getUint8(i) !== view2.getUint8(i)) {\n return false;\n }\n }\n\n return true;\n};\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar isString = require('is-string');\nvar isNumber = require('is-number-object');\nvar isBoolean = require('is-boolean-object');\nvar isSymbol = require('is-symbol');\nvar isBigInt = require('is-bigint');\n\nmodule.exports = function isBoxedPrimitive(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\treturn isString(value) || isNumber(value) || isBoolean(value) || isSymbol(value) || isBigInt(value);\n};\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 17], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar forEach = require('foreach');\n\nvar toStr = Object.prototype.toString;\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nvar typedArrays = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n\nvar slice = String.prototype.slice;\nvar toStrTags = {};\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (hasToStringTag && gOPD && Object.getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof global[typedArray] === 'function') {\n\t\t\tvar arr = new global[typedArray]();\n\t\t\tif (!(Symbol.toStringTag in arr)) {\n\t\t\t\tthrow new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.');\n\t\t\t}\n\t\t\tvar proto = Object.getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = Object.getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) { return typedArrays.indexOf(slice.call(toStr.call(value), 8, -1)) > -1; }\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @param {*} [value] - The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n */\nconst isNil = function isNil(value) {\n /* eslint-disable-next-line lodash/prefer-is-nil */\n return value === null || typeof value === 'undefined';\n};\n\nexport default isNil;\n","import isNil from 'is-nil-x';\n\n/**\n * The abstract operation RequireObjectCoercible throws an error if argument\n * is a value that cannot be converted to an Object using ToObject.\n *\n * @param {*} [value] - The `value` to check.\n * @throws {TypeError} If `value` is a `null` or `undefined`.\n * @returns {string} The `value`.\n */\nconst requireObjectCoercible = function requireObjectCoercible(value) {\n if (isNil(value)) {\n throw new TypeError(`Cannot call method on ${value}`);\n }\n\n return value;\n};\n\nexport default requireObjectCoercible;\n","import requireObjectCoercible from 'require-object-coercible-x';\n\nconst castObject = {}.constructor;\n\n/**\n * The abstract operation ToObject converts argument to a value of\n * type Object.\n *\n * @param {*} value - The `value` to convert.\n * @throws {TypeError} If `value` is a `null` or `undefined`.\n * @returns {!object} The `value` converted to an object.\n */\nconst toObject = function toObject(value) {\n return castObject(requireObjectCoercible(value));\n};\n\nexport default toObject;\n","/**\n * Returns true if the value is a primitive.\n *\n * @param {*} [val] - The value to test.\n * @returns {boolean} True if a primitive, otherwise false..\n */\nconst isPrimitive = function isPrimitive(val) {\n return typeof val === 'object' ? val === null : typeof val !== 'function';\n};\n\nexport default isPrimitive;\n","const string = 'a';\nconst boxedString = {}.constructor(string);\n\n/**\n * Check failure of by-index access of string characters (IE < 9)\n * and failure of `0 in boxedString` (Rhino).\n *\n * `true` if no failure; otherwise `false`.\n *\n * @type boolean\n */\nconst hasBoxed = boxedString[0] === string && 0 in boxedString;\n\nexport default hasBoxed;\n","/**\n * This method returns undefined.\n *\n * @returns {undefined} Always undefined.\n */\nconst noop = function noop() {}; /* eslint-disable-line lodash/prefer-noop */\n\nexport default noop;\n","import noop from 'noop-x';\n\nconst {bind} = noop;\n\nconst test1 = function test1() {\n let a1 = null;\n let a2 = null;\n let context = null;\n const testThis = [];\n\n const test1Fn = function test1Fn(arg1, arg2) {\n /* eslint-disable-next-line babel/no-invalid-this */\n context = this;\n a1 = arg1;\n a2 = arg2;\n\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n };\n\n try {\n const boundFn = bind.apply(test1Fn, [testThis, 1]);\n const args = boundFn(2);\n\n return boundFn.length === 1 && args.length === 2 && a1 === 1 && a2 === 2 && context === testThis;\n } catch (e) {\n return false;\n }\n};\n\nconst test2 = function test2() {\n let a1 = null;\n let a2 = null;\n let context = null;\n const oracle = [1, 2, 3];\n\n const Ctr = function Ctr(arg1, arg2) {\n a1 = arg1;\n a2 = arg2;\n context = this;\n\n return oracle;\n };\n\n try {\n const BoundFn = bind.apply(Ctr, [null]);\n const returned = new BoundFn(1, 2);\n\n return BoundFn.length === Ctr.length && returned === oracle && a1 === 1 && a2 === 2 && context !== oracle;\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Indicates if the engine has a working bind function.\n *\n * @type {boolean}\n */\nconst isWorking = typeof bind === 'function' && test1() && test2();\n\nexport default isWorking;\n","import isPrimitive from 'is-primitive-x';\nimport isString from 'is-string';\nimport hasBoxed from 'has-boxed-string-x';\nimport hasWorkingBind from 'has-working-bind-x';\n\nconst EMPTY_STRING = '';\nconst {split} = EMPTY_STRING;\nconst {max} = Math;\nconst {bind, call} = isPrimitive;\nexport const stringSplit = function stringSplit(string, pattern) {\n // noinspection JSUnresolvedFunction\n return split.call(string, pattern);\n};\n\nexport const $split = hasWorkingBind ? bind.call(call, split) : stringSplit;\n\nexport const getIterable = function getIterable(arrayLike) {\n // noinspection JSUnresolvedFunction\n return isString(arrayLike) ? $split(arrayLike, EMPTY_STRING) : arrayLike;\n};\n\n// eslint-disable jsdoc/no-undefined-types\n// noinspection JSCommentMatchesSignature\n/**\n * This pushes or concatenates into a new or existing array.\n *\n * @param {Array} arrayLike - The source.\n * @param {number} [from=0] - The from source index.\n * @param {Array} [target=[]] - The target array.\n * @returns {*} The target array.\n */\n// eslint-enable jsdoc/no-undefined-types\nconst pusher = function pusher(arrayLike, from) {\n /* eslint-disable-next-line prefer-rest-params */\n const target = arguments.length > 2 ? arguments[2] : [];\n\n if (typeof arrayLike !== 'string' && isPrimitive(arrayLike)) {\n return target;\n }\n\n const iterable = hasBoxed ? arrayLike : getIterable(arrayLike);\n const {length} = iterable;\n for (let i = max(0, from) || 0; i < length; i += 1) {\n target[target.length] = arrayLike[i];\n }\n\n return target;\n};\n\nexport default pusher;\n","import hasWorkingBind from 'has-working-bind-x';\nimport pusher from 'util-pusher-x';\n\nconst {bind: nativeBind, call} = pusher;\nconst ERROR_MESSAGE = 'bind called on incompatible ';\nconst object = {};\nconst ObjectCtr = object.constructor;\nconst toStringTag = object.toString;\nconst funcType = '[object Function]';\nconst ZERO = 0;\nconst argsOffset = 2;\n\nconst getMax = function getMax(a, b) {\n return a >= b ? a : b;\n};\n\nconst assertIsFunction = function assertIsFunction(value) {\n if (typeof value !== 'function' && toStringTag.apply(value) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + value);\n }\n};\n\nconst boundFns = [\n function zero(binder) {\n return function boundFn() {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments));\n };\n },\n function one(binder, boundLength) {\n return function boundFn(a) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a]));\n };\n },\n function two(binder, boundLength) {\n return function boundFn(a, b) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b]));\n };\n },\n function three(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c]));\n };\n },\n function four(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c, d) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c, d]));\n };\n },\n function five(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c, d, e) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c, d, e]));\n };\n },\n function six(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c, d, e, f) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c, d, e, f]));\n };\n },\n function seven(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c, d, e, f, g) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c, d, e, f, g]));\n };\n },\n function eight(binder, boundLength) {\n /* eslint-disable-next-line max-params */\n return function boundFn(a, b, c, d, e, f, g, h) {\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n return binder.apply(this, pusher(arguments, boundLength, [a, b, c, d, e, f, g, h]));\n };\n },\n];\n\nconst getBoundFn = function getBoundFn(args) {\n const [binder, target, bindArgs] = args;\n const boundLength = getMax(ZERO, target.length - getMax(ZERO, bindArgs.length - argsOffset));\n const fn = boundFns[boundLength];\n const boundFn = fn ? fn(binder, boundLength) : boundFns[ZERO](binder);\n\n if (target.prototype) {\n /* eslint-disable-next-line lodash/prefer-noop */\n const Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n boundFn.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return boundFn;\n};\n\nconst getResult = function getResult(target, boundArgs) {\n /* eslint-disable-next-line babel/no-invalid-this */\n const result = target.apply(this, boundArgs);\n\n /* eslint-disable-next-line babel/no-invalid-this,babel/new-cap */\n return ObjectCtr(result) === result ? result : this;\n};\n\nexport const implementation = function bind(target, thisArg) {\n assertIsFunction(target);\n /* eslint-disable-next-line prefer-rest-params */\n const bindArgs = arguments;\n\n let bound;\n const binder = function binder() {\n /* eslint-disable-next-line prefer-rest-params */\n const boundArgs = pusher(arguments, ZERO, pusher(bindArgs, argsOffset));\n\n /* eslint-disable-next-line babel/no-invalid-this */\n return this instanceof bound ? getResult.apply(this, [target, boundArgs]) : target.apply(thisArg, boundArgs);\n };\n\n bound = getBoundFn([binder, target, bindArgs]);\n\n return bound;\n};\n\n/**\n * The bind() method creates a new function that, when called, has its this\n * keyword set to the provided value, with a given sequence of arguments\n * preceding any provided when the new function is called.\n *\n * @function bind\n * @param {Function} target - The target function.\n * @param {*} [thisArg] - The value to be passed as the this parameter to the target\n * function when the bound function is called. The value is ignored if the\n * bound function is constructed using the new operator.\n * @param {...*} [args] - Arguments to prepend to arguments provided to the bound\n * function when invoking the target function.\n * @throws {TypeError} If target is not a function.\n * @returns {Function} The bound function.\n */\nconst $bind = hasWorkingBind ? call.bind(nativeBind) : implementation;\n\nexport default $bind;\n","import pusher from 'util-pusher-x';\nimport bind from 'simple-bind-x';\n\nconst $TypeError = TypeError;\nconst {apply: nativeApply, call: nativeCall} = bind;\nconst $apply = bind(nativeCall, nativeApply);\nconst toStringTag = bind(nativeApply, {}.toString);\nconst ERROR_MESSAGE = ' is not a function';\nconst funcType = '[object Function]';\n\nconst assertIsFunction = function assertIsFunction(value) {\n if (typeof value !== 'function' && toStringTag(value) !== funcType) {\n throw new $TypeError(value + ERROR_MESSAGE);\n }\n\n return value;\n};\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * The abstract operation Call is used to call the [[Call]] internal method of a function object.\n *\n * @function call\n * @param {Function} F - The target function.\n * @param {*} [V] - The context.\n * @param {Array} [args] - Argument to call the function with.\n * @throws {TypeError} If target is not a function.\n * @returns {*} The the result of invoking the function.\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-call\n */\n// eslint-enable jsdoc/check-param-names\nconst call = function call(F, V) {\n /* eslint-disable-next-line prefer-rest-params */\n return $apply(assertIsFunction(F), V, pusher(arguments[2]));\n};\n\nexport default call;\n","import pusher from 'util-pusher-x';\nimport call from 'simple-call-x';\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * This method attempts to invoke the function, returning either the result or\n * the caught error object. Any additional arguments are provided to the\n * function when it's invoked.\n *\n * @function attempt\n * @param {Function} [fn] - The function to attempt.\n * @param {...*} [args] - The arguments to invoke the function with.\n * @returns {object} Returns an object of the result.\n */\n// eslint-disable jsdoc/check-param-names\nconst attempt = function attempt(fn) {\n try {\n return {\n threw: false,\n /* eslint-disable-next-line babel/no-invalid-this,prefer-rest-params */\n value: call(fn, this, pusher(arguments, 1)),\n };\n } catch (e) {\n return {\n threw: true,\n value: e,\n };\n }\n};\n\nexport default attempt;\n","import attempt from 'attempt-x';\nimport isSymbol from 'is-symbol';\n\nconst hasSymbolSupport = attempt(() => {\n /* eslint-disable-next-line compat/compat */\n return typeof Symbol === 'function' && isSymbol(Symbol(''));\n});\n\n/**\n * Indicates if `Symbol`exists and creates the correct type.\n * `true`, if it exists and creates the correct type, otherwise `false`.\n *\n * @type boolean\n */\nexport default hasSymbolSupport.threw === false && hasSymbolSupport.value === true;\n","/**\n * The abstract operation ToBoolean converts argument to a value of type Boolean.\n *\n * @param {*} [value] - The value to be converted.\n * @returns {boolean} 'true' if value is truthy; otherwise 'false'.\n */\nconst toBoolean = function toBoolean(value) {\n return !!value;\n};\n\nexport default toBoolean;\n","import call from 'simple-call-x';\nimport pusher from 'util-pusher-x';\n\nconst toStringTag = {}.toString;\nconst ERROR_MESSAGE = 'methodize called on incompatible ';\nconst funcType = '[object Function]';\n\nconst assertIsFunction = function assertIsFunction(value) {\n if (typeof value !== 'function' && call(toStringTag, value) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + value);\n }\n\n return value;\n};\n\n/**\n * Methodize a prototype method. Compliant to 8 arguments.\n *\n * @param {Function} prototypeMethod - The prototype method to methodize.\n * @throws {TypeError} If target is not a function.\n * @returns {Function} The static method.\n */\nconst methodize = function methodize(prototypeMethod) {\n assertIsFunction(prototypeMethod);\n\n return function methodized() {\n /* eslint-disable-next-line prefer-rest-params */\n return call(prototypeMethod, arguments[0], pusher(arguments, 1));\n };\n};\n\nexport default methodize;\n","import methodize from 'simple-methodize-x';\n\nconst methodizedToString = methodize({}.toString);\n\n/**\n * The `toStringTag` method returns \"[object type]\", where type is the\n * object type.\n *\n * @param {*} [value] - The object of which to get the object type string.\n * @returns {string} The object type string.\n */\nconst toStringTag = function toStringTag(value) {\n if (value === null) {\n return '[object Null]';\n }\n\n if (typeof value === 'undefined') {\n return '[object Undefined]';\n }\n\n return methodizedToString(value);\n};\n\nexport default toStringTag;\n","import hasSymbols from 'has-symbol-support-x';\nimport isSymbol from 'is-symbol';\n\n/**\n * Indicates if `Symbol.toStringTag`exists and is the correct type.\n * `true`, if it exists and is the correct type, otherwise `false`.\n *\n * @type boolean\n */\nexport default hasSymbols &&\n /* eslint-disable-next-line compat/compat */\n isSymbol(Symbol.toStringTag);\n","import isSymbol from 'is-symbol';\n\nconst ERROR_MESSAGE = 'Cannot convert a Symbol value to a string';\nconst castString = ERROR_MESSAGE.constructor;\n/**\n * The abstract operation ToString converts argument to a value of type String.\n *\n * @param {*} [value] - The value to convert to a string.\n * @throws {TypeError} If `value` is a Symbol.\n * @returns {string} The converted value.\n */\nconst ToString = function ToString(value) {\n if (isSymbol(value)) {\n throw new TypeError(ERROR_MESSAGE);\n }\n\n return castString(value);\n};\n\nexport default ToString;\n","import requireObjectCoercible from 'require-object-coercible-x';\nimport toStr from 'to-string-x';\n\n/**\n * This method requires an argument is corecible then converts using ToString.\n *\n * @param {*} [value] - The value to converted to a string.\n * @throws {TypeError} If value is null or undefined.\n * @returns {string} The value as a string.\n */\nconst requireCoercibleToString = function requireCoercibleToString(value) {\n return toStr(requireObjectCoercible(value));\n};\n\nexport default requireCoercibleToString;\n","/**\n * A record of a white space character.\n *\n * @typedef {object} CharRecord\n * @property {number} code - The character code.\n * @property {string} description - A description of the character.\n * @property {boolean} es5 - Whether the spec lists this as a white space.\n * @property {boolean} es2015 - Whether the spec lists this as a white space.\n * @property {boolean} es2016 - Whether the spec lists this as a white space.\n * @property {boolean} es2017 - Whether the spec lists this as a white space.\n * @property {boolean} es2018 - Whether the spec lists this as a white space.\n * @property {string} string - The character string.\n */\n\n/**\n * An array of the whitespace char codes, string, descriptions and language\n * presence in the specifications.\n *\n * @type Array.\n */\nexport const list = [\n {\n code: 0x0009,\n description: 'Tab',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u0009',\n },\n {\n code: 0x000a,\n description: 'Line Feed',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u000a',\n },\n {\n code: 0x000b,\n description: 'Vertical Tab',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u000b',\n },\n {\n code: 0x000c,\n description: 'Form Feed',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u000c',\n },\n {\n code: 0x000d,\n description: 'Carriage Return',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u000d',\n },\n {\n code: 0x0020,\n description: 'Space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u0020',\n },\n /*\n {\n code: 0x0085,\n description: 'Next line',\n es5: false,\n es2015: false,\n es2016: false,\n es2017: false,\n es2018: false,\n string: '\\u0085'\n }\n */\n {\n code: 0x00a0,\n description: 'No-break space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u00a0',\n },\n {\n code: 0x1680,\n description: 'Ogham space mark',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u1680',\n },\n {\n code: 0x180e,\n description: 'Mongolian vowel separator',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: false,\n es2018: false,\n string: '\\u180e',\n },\n {\n code: 0x2000,\n description: 'En quad',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2000',\n },\n {\n code: 0x2001,\n description: 'Em quad',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2001',\n },\n {\n code: 0x2002,\n description: 'En space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2002',\n },\n {\n code: 0x2003,\n description: 'Em space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2003',\n },\n {\n code: 0x2004,\n description: 'Three-per-em space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2004',\n },\n {\n code: 0x2005,\n description: 'Four-per-em space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2005',\n },\n {\n code: 0x2006,\n description: 'Six-per-em space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2006',\n },\n {\n code: 0x2007,\n description: 'Figure space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2007',\n },\n {\n code: 0x2008,\n description: 'Punctuation space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2008',\n },\n {\n code: 0x2009,\n description: 'Thin space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2009',\n },\n {\n code: 0x200a,\n description: 'Hair space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u200a',\n },\n /*\n {\n code: 0x200b,\n description: 'Zero width space',\n es5: false,\n es2015: false,\n es2016: false,\n es2017: false,\n es2018: false,\n string: '\\u200b'\n },\n */\n {\n code: 0x2028,\n description: 'Line separator',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2028',\n },\n {\n code: 0x2029,\n description: 'Paragraph separator',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u2029',\n },\n {\n code: 0x202f,\n description: 'Narrow no-break space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u202f',\n },\n {\n code: 0x205f,\n description: 'Medium mathematical space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u205f',\n },\n {\n code: 0x3000,\n description: 'Ideographic space',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\u3000',\n },\n {\n code: 0xfeff,\n description: 'Byte Order Mark',\n es5: true,\n es2015: true,\n es2016: true,\n es2017: true,\n es2018: true,\n string: '\\ufeff',\n },\n];\n\n/**\n * A string of the ES5 to ES2016 whitespace characters.\n *\n * @type string\n */\nlet stringES2016 = '';\n\n/**\n * A string of the ES2017 to ES2018 whitespace characters.\n *\n * @type string\n */\nlet stringES2018 = '';\nconst {length} = list;\nfor (let i = 0; i < length; i += 1) {\n if (list[i].es2016) {\n stringES2016 += list[i].string;\n }\n\n if (list[i].es2018) {\n stringES2018 += list[i].string;\n }\n}\n\nconst string2018 = stringES2018;\n\nexport default string2018;\nexport const string2016 = stringES2016;\n","import requireCoercibleToString from 'require-coercible-to-string-x';\nimport whiteSpace from 'white-space-x';\nimport methodize from 'simple-methodize-x';\n\nconst EMPTY_STRING = '';\nconst RegExpCtr = /none/.constructor;\nconst reLeft = new RegExpCtr(`^[${whiteSpace}]+`);\nconst methodizedReplace = methodize(EMPTY_STRING.replace);\n\n/**\n * This method removes whitespace from the start of a string. (ES2019).\n *\n * @param {string} [string] - The string to trim the left end whitespace from.\n * @throws {TypeError} If string is null or undefined or not coercible.\n * @returns {string} The left trimmed string.\n */\nconst trimStart = function trimStart(string) {\n return methodizedReplace(requireCoercibleToString(string), reLeft, EMPTY_STRING);\n};\n\nexport default trimStart;\n","import requireCoercibleToString from 'require-coercible-to-string-x';\nimport whiteSpace from 'white-space-x';\nimport methodize from 'simple-methodize-x';\n\nconst EMPTY_STRING = '';\nconst RegExpCtr = /none/.constructor;\nconst reRight = new RegExpCtr(`[${whiteSpace}]+$`);\nconst methodizedReplace = methodize(EMPTY_STRING.replace);\n\n/**\n * This method removes whitespace from the end of a string. (ES2019).\n *\n * @param {string} [string] - The string to trim the right end whitespace from.\n * @throws {TypeError} If string is null or undefined or not coercible.\n * @returns {string} The right trimmed string.\n */\nconst trimEnd = function trimEnd(string) {\n return methodizedReplace(requireCoercibleToString(string), reRight, EMPTY_STRING);\n};\n\nexport default trimEnd;\n","import trimStart from 'trim-left-x';\nimport trimEnd from 'trim-right-x';\n\n/**\n * This method removes whitespace from the start and end of a string.\n * (ES2019).\n *\n * @param {string} [string] - The string to trim the whitespace from.\n * @throws {TypeError} If string is null or undefined or not coercible.\n * @returns {string} The trimmed string.\n */\nconst trim = function trim(string) {\n return trimStart(trimEnd(string));\n};\n\nexport default trim;\n","import trim from 'trim-x';\nimport whiteSpace from 'white-space-x';\nimport methodize from 'simple-methodize-x';\n\nconst SPACE = ' ';\nconst RegExpCtr = /none/.constructor;\nconst reNormalize = new RegExpCtr(`[${whiteSpace}]+`, 'g');\nconst methodizedReplace = methodize(SPACE.replace);\n\n/**\n * This method strips leading and trailing white-space from a string,\n * replaces sequences of whitespace characters by a single space,\n * and returns the resulting string. (ES2019).\n *\n * @param {string} [string] - The string to be normalized.\n * @throws {TypeError} If string is null or undefined or not coercible.\n */\nconst normalizeSpace = function normalizeSpace(string) {\n return methodizedReplace(trim(string), reNormalize, SPACE);\n};\n\nexport default normalizeSpace;\n","import toStr from 'to-string-x';\nimport requireCoercibleToString from 'require-coercible-to-string-x';\nimport methodize from 'simple-methodize-x';\n\nconst EMPTY_STRING = '';\nconst STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/gm;\nconst methodizedReplace = methodize(EMPTY_STRING.replace);\n\n/**\n * This method replaces comments in a string.\n *\n * @param {string} [string] - The string to be stripped.\n * @param {string} [replacement=''] - The string to be used as a replacement.\n * @throws {TypeError} If string is null or undefined or not coercible.\n * @throws {TypeError} If replacement is not coercible.\n * @returns {string} The new string with the comments replaced.\n */\nconst replaceComments = function replaceComments(string, replacement) {\n return methodizedReplace(\n requireCoercibleToString(string),\n STRIP_COMMENTS,\n arguments.length > 1 ? toStr(replacement) : EMPTY_STRING,\n );\n};\n\nexport default replaceComments;\n","import attempt from 'attempt-x';\nimport toBoolean from 'to-boolean-x';\nimport toStringTag from 'to-string-tag-x';\nimport hasToStringTag from 'has-to-string-tag-x';\nimport isPrimitive from 'is-primitive-x';\nimport normalise from 'normalize-space-x';\nimport deComment from 'replace-comments-x';\nimport methodize from 'simple-methodize-x';\n\nconst FunctionCtr = attempt.constructor;\nconst SPACE = ' ';\nconst methodizedFunctionToString = methodize(attempt.toString);\nconst funcTag = '[object Function]';\nconst genTag = '[object GeneratorFunction]';\nconst asyncTag = '[object AsyncFunction]';\nconst ctrRx = /^class /;\nconst methodizedTest = methodize(ctrRx.test);\n\nconst hasNativeClass =\n attempt(function attemptee() {\n /* eslint-disable-next-line babel/new-cap */\n return FunctionCtr('\"use strict\"; return class My {};')();\n }).threw === false;\n\nconst testClassString = function testClassString(value) {\n return methodizedTest(ctrRx, normalise(deComment(methodizedFunctionToString(value), SPACE)));\n};\n\nconst isES6ClassFn = function isES6ClassFunc(value) {\n const result = attempt(testClassString, value);\n\n return result.threw === false && result.value;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @private\n * @param {*} value - The value to check.\n * @param {boolean} allowClass - Whether to filter ES6 classes.\n * @returns {boolean} Returns `true` if `value` is correctly classified,\n * else `false`.\n */\nconst tryFuncToString = function funcToString(value, allowClass) {\n if (hasNativeClass && allowClass === false && isES6ClassFn(value)) {\n return false;\n }\n\n return (\n attempt(function attemptee() {\n return methodizedFunctionToString(value);\n }).threw === false\n );\n};\n\nconst compareTags = function compareTags(value) {\n const strTag = toStringTag(value);\n\n return strTag === funcTag || strTag === genTag || strTag === asyncTag;\n};\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @param {*} value - The value to check.\n * @param {boolean} [allowClass=false] - Whether to filter ES6 classes.\n * @returns {boolean} Returns `true` if `value` is correctly classified,\n * else `false`.\n */\nconst isFunction = function isFunction(value, allowClass) {\n if (isPrimitive(value)) {\n return false;\n }\n\n if (hasToStringTag) {\n return tryFuncToString(value, toBoolean(allowClass));\n }\n\n if (hasNativeClass && toBoolean(allowClass) === false && isES6ClassFn(value)) {\n return false;\n }\n\n return compareTags(value);\n};\n\nexport default isFunction;\n","import hasSymbols from 'has-symbol-support-x';\nimport isPrimitive from 'is-primitive-x';\nimport isDate from 'is-date-object';\nimport isSymbol from 'is-symbol';\nimport isFunction from 'is-function-x';\nimport requireObjectCoercible from 'require-object-coercible-x';\nimport isNil from 'is-nil-x';\nimport call from 'simple-call-x';\n\nconst ZERO = 0;\nconst ONE = 1;\n/* eslint-disable-next-line no-void */\nconst UNDEFINED = void ZERO;\nconst NUMBER = 'number';\nconst STRING = 'string';\nconst DEFAULT = 'default';\nconst StringCtr = STRING.constructor;\nconst NumberCtr = ZERO.constructor;\n/* eslint-disable-next-line compat/compat */\nconst symToPrimitive = hasSymbols && Symbol.toPrimitive;\n/* eslint-disable-next-line compat/compat */\nconst symValueOf = hasSymbols && Symbol.prototype.valueOf;\n\nconst toStringOrder = ['toString', 'valueOf'];\nconst toNumberOrder = ['valueOf', 'toString'];\nconst orderLength = 2;\n\nconst assertHint = function assertHint(hint) {\n if (typeof hint !== 'string' || (hint !== NUMBER && hint !== STRING)) {\n throw new TypeError('hint must be \"string\" or \"number\"');\n }\n\n return hint;\n};\n\n/**\n * @param {*} ordinary - The ordinary to convert.\n * @param {*} hint - The hint.\n * @returns {*} - The primitive.\n */\nconst ordinaryToPrimitive = function ordinaryToPrimitive(ordinary, hint) {\n requireObjectCoercible(ordinary);\n assertHint(hint);\n\n const methodNames = hint === STRING ? toStringOrder : toNumberOrder;\n for (let i = ZERO; i < orderLength; i += ONE) {\n const method = ordinary[methodNames[i]];\n\n if (isFunction(method)) {\n const result = call(method, ordinary);\n\n if (isPrimitive(result)) {\n return result;\n }\n }\n }\n\n throw new TypeError('No default value');\n};\n\n/**\n * @param {*} object - The object.\n * @param {*} property - The property.\n * @returns {undefined|Function} - The method.\n */\nconst getMethod = function getMethod(object, property) {\n const func = object[property];\n\n if (isNil(func) === false) {\n if (isFunction(func) === false) {\n throw new TypeError(`${func} returned for property ${property} of object ${object} is not a function`);\n }\n\n return func;\n }\n\n return UNDEFINED;\n};\n\n/**\n * Get the hint.\n *\n * @param {*} value - The value to compare.\n * @param {boolean} supplied - Was a value supplied.\n * @returns {string} - The hint string.\n */\nconst getHint = function getHint(value, supplied) {\n if (supplied) {\n if (value === StringCtr) {\n return STRING;\n }\n\n if (value === NumberCtr) {\n return NUMBER;\n }\n }\n\n return DEFAULT;\n};\n\n/**\n * Get the primitive from the exotic.\n *\n * @param {*} value - The exotic.\n * @returns {*} - The primitive.\n */\nconst getExoticToPrim = function getExoticToPrim(value) {\n if (hasSymbols) {\n if (symToPrimitive) {\n return getMethod(value, symToPrimitive);\n }\n\n if (isSymbol(value)) {\n return symValueOf;\n }\n }\n\n return UNDEFINED;\n};\n\nconst evalExotic = function evalExotic(obj) {\n const {exoticToPrim, input, hint} = obj;\n const result = call(exoticToPrim, input, [hint]);\n\n if (isPrimitive(result)) {\n return result;\n }\n\n throw new TypeError('unable to convert exotic object to primitive');\n};\n\nconst evalPrimitive = function evalPrimitive(input, hint) {\n const newHint = hint === DEFAULT && (isDate(input) || isSymbol(input)) ? STRING : hint;\n\n return ordinaryToPrimitive(input, newHint === DEFAULT ? NUMBER : newHint);\n};\n\n/**\n * This method converts a JavaScript object to a primitive value.\n * Note: When toPrimitive is called with no hint, then it generally behaves as\n * if the hint were Number. However, objects may over-ride this behaviour by\n * defining a @@toPrimitive method. Of the objects defined in this specification\n * only Date objects (see 20.3.4.45) and Symbol objects (see 19.4.3.4) over-ride\n * the default ToPrimitive behaviour. Date objects treat no hint as if the hint\n * were String.\n *\n * @param {*} input - The input to convert.\n * @param {Function} [preferredType] - The preferred type (String or Number).\n * @throws {TypeError} If unable to convert input to a primitive.\n * @returns {string|number} The converted input as a primitive.\n * @see {http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive}\n */\nconst toPrimitive = function toPrimitive(input, preferredType) {\n if (isPrimitive(input)) {\n return input;\n }\n\n const hint = getHint(preferredType, arguments.length > ONE);\n const exoticToPrim = getExoticToPrim(input);\n\n return typeof exoticToPrim === 'undefined' ? evalPrimitive(input, hint) : evalExotic({exoticToPrim, input, hint});\n};\n\nexport default toPrimitive;\n","import hasSymbols from 'has-symbol-support-x';\nimport toPrimitive from 'to-primitive-x';\nimport toStr from 'to-string-x';\n\n/**\n * This method Converts argument to a value that can be used as a property key.\n *\n * @param {*} argument - The argument to convert to a property key.\n * @throws {TypeError} If argument is not a symbol and is not coercible to a string.\n * @returns {string|symbol} The converted argument.\n */\nconst toPropertyKey = function toPropertyKey(argument) {\n const key = toPrimitive(argument, String);\n\n return hasSymbols && typeof key === 'symbol' ? key : toStr(key);\n};\n\nexport default toPropertyKey;\n","import toObject from 'to-object-x';\nimport toPropertyKey from 'to-property-key-x';\nimport methodize from 'simple-methodize-x';\n\nconst hop = methodize({}.hasOwnProperty);\n\n/**\n * The `hasOwnProperty` method returns a boolean indicating whether\n * the `object` has the specified `property`. Does not attempt to fix known\n * issues in older browsers, but does ES6ify the method.\n *\n * @param {!object} object - The object to test.\n * @throws {TypeError} If object is null or undefined.\n * @param {string|number|symbol} property - The name or Symbol of the property to test.\n * @returns {boolean} `true` if the property is set on `object`, else `false`.\n */\nconst hasOwnProperty = function hasOwnProperty(object, property) {\n return hop(toObject(object), toPropertyKey(property));\n};\n\nexport default hasOwnProperty;\n","import toPropertyKey from 'to-property-key-x';\nimport toObject from 'to-object-x';\nimport methodize from 'simple-methodize-x';\n\nconst propIsEnumerable = methodize({}.propertyIsEnumerable);\n\n/**\n * This method returns a Boolean indicating whether the specified property is\n * enumerable. Does not attempt to fix bugs in IE<9 or old Opera, otherwise it\n * does ES6ify the method.\n *\n * @param {!object} object - The object on which to test the property.\n * @param {string|symbol} property - The name of the property to test.\n * @throws {TypeError} If target is null or undefined.\n * @returns {boolean} A Boolean indicating whether the specified property is\n * enumerable.\n */\nconst propertyIsEnumerable = function propertyIsEnumerable(object, property) {\n return propIsEnumerable(toObject(object), toPropertyKey(property));\n};\n\nexport default propertyIsEnumerable;\n","import isFunction from 'is-function-x';\nimport isPrimitive from 'is-primitive-x';\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not a\n * primitive and not a function.\n *\n * @param {*} [value] - The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nconst isObjectLike = function isObjectLike(value) {\n return isPrimitive(value) === false && isFunction(value, true) === false;\n};\n\nexport default isObjectLike;\n","/**\n * This method determines whether the passed value is NaN and its type is\n * `Number`. It is a more robust version of the original, global isNaN().\n *\n * @param {*} [value] - The value to be tested for NaN.\n * @returns {boolean} `true` if the given value is NaN and its type is Number;\n * otherwise, `false`.\n */\nconst isNaN = function isNaN(value) {\n /* eslint-disable-next-line no-self-compare */\n return value !== value;\n};\n\nexport default isNaN;\n","/**\n * The constant value Infinity derived mathematically by 1 / 0.\n *\n * @type number\n */\nconst constantInfinity = 1 / 0;\n\nexport default constantInfinity;\n","import numberIsNaN from 'is-nan-x';\nimport INFINITY from 'infinity-x';\n\n/**\n * This method determines whether the passed value is a finite number.\n *\n * @param {*} [number] - The value to be tested for finiteness.\n * @returns {boolean} A Boolean indicating whether or not the given value is a finite number.\n */\nconst isFinite = function isFinite(number) {\n return typeof number === 'number' && numberIsNaN(number) === false && number !== INFINITY && number !== -INFINITY;\n};\n\nexport default isFinite;\n","/**\n * The constant NaN derived mathematically by 0 / 0.\n *\n * @type number\n */\nconst constantNAN = 0 / 0;\n\nexport default constantNAN;\n","import NAN from 'nan-x';\nimport toStr from 'to-string-x';\nimport trimLeft from 'trim-left-x';\nimport methodize from 'simple-methodize-x';\n\nconst nativeParseInt = parseInt;\n/** @type {Function} */\nconst castNumber = (0).constructor;\nconst BAD_CHAR = '\\u180E';\nconst methodizedCharAt = methodize(BAD_CHAR.charAt);\nconst hexRegex = /^[-+]?0[xX]/;\nconst methodizedTest = methodize(hexRegex.test);\n\n/**\n * This method parses a string argument and returns an integer of the specified\n * radix (the base in mathematical numeral systems). (ES2019).\n *\n * @param {string} [string] - The value to parse. If the string argument is not a\n * string, then it is converted to a string (using the ToString abstract\n * operation). Leading whitespace in the string argument is ignored.\n * @param {number} [radix] - An integer between 2 and 36 that represents the radix\n * (the base in mathematical numeral systems) of the above mentioned string.\n * Specify 10 for the decimal numeral system commonly used by humans. Always\n * specify this parameter to eliminate reader confusion and to guarantee\n * predictable behavior. Different implementations produce different results\n * when a radix is not specified, usually defaulting the value to 10.\n * @throws {TypeError} If target is a Symbol or is not coercible.\n * @returns {number} An integer number parsed from the given string. If the first\n * character cannot be converted to a number, NaN is returned.\n */\nconst $parseInt = function $parseInt(string, radix) {\n const str = trimLeft(toStr(string));\n\n if (methodizedCharAt(str, 0) === BAD_CHAR) {\n return NAN;\n }\n\n return nativeParseInt(str, castNumber(radix) || (methodizedTest(hexRegex, str) ? 16 : 10));\n};\n\nexport default $parseInt;\n","import isSymbol from 'is-symbol';\nimport toPrimitive from 'to-primitive-x';\nimport trim from 'trim-x';\nimport $parseInt from 'parse-int-x';\nimport NAN from 'nan-x';\nimport methodize from 'simple-methodize-x';\n\nconst binaryRadix = 2;\nconst octalRadix = 8;\nconst testCharsCount = 2;\nconst ERROR_MESSAGE = 'Cannot convert a Symbol value to a number';\n\nconst castNumber = testCharsCount.constructor;\nconst methodizedStringSlice = methodize(ERROR_MESSAGE.slice);\n\nconst binaryRegex = /^0b[01]+$/i;\nconst RegExpConstructor = binaryRegex.constructor;\n// Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, \"test\" is\n// an own property of regexes. wtf.\nconst methodizedTest = methodize(binaryRegex.test);\nconst isBinary = function isBinary(value) {\n return methodizedTest(binaryRegex, value);\n};\n\nconst octalRegex = /^0o[0-7]+$/i;\nconst isOctal = function isOctal(value) {\n return methodizedTest(octalRegex, value);\n};\n\nconst nonWSregex = new RegExpConstructor('[\\u0085\\u180e\\u200b\\ufffe]', 'g');\nconst hasNonWS = function hasNonWS(value) {\n return methodizedTest(nonWSregex, value);\n};\n\nconst invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nconst isInvalidHexLiteral = function isInvalidHexLiteral(value) {\n return methodizedTest(invalidHexLiteral, value);\n};\n\nconst assertNotSymbol = function assertNotSymbol(value) {\n if (isSymbol(value)) {\n throw new TypeError(ERROR_MESSAGE);\n }\n\n return value;\n};\n\nconst parseBase = function parseBase(value, radix) {\n return $parseInt(methodizedStringSlice(value, testCharsCount), radix);\n};\n\nconst parseString = function parseString(toNum, value) {\n if (isBinary(value)) {\n return toNum(parseBase(value, binaryRadix));\n }\n\n if (isOctal(value)) {\n return toNum(parseBase(value, octalRadix));\n }\n\n return null;\n};\n\nconst convertString = function convertString(toNum, value) {\n const val = parseString(toNum, value);\n\n if (val !== null) {\n return val;\n }\n\n if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n return NAN;\n }\n\n const trimmed = trim(value);\n\n if (trimmed !== value) {\n return toNum(trimmed);\n }\n\n return null;\n};\n\n/**\n * This method converts argument to a value of type Number. (ES2019).\n *\n * @param {*} [argument] - The argument to convert to a number.\n * @throws {TypeError} - If argument is a Symbol or not coercible.\n * @returns {*} The argument converted to a number.\n */\nconst toNumber = function toNumber(argument) {\n const value = assertNotSymbol(toPrimitive(argument, castNumber));\n\n if (typeof value === 'string') {\n const val = convertString(toNumber, value);\n\n if (val !== null) {\n return val;\n }\n }\n\n return castNumber(value);\n};\n\nexport default toNumber;\n","import toNumber from 'to-number-x';\nimport numberIsNaN from 'is-nan-x';\n\n/**\n * This method returns the sign of a number, indicating whether the number is positive,\n * negative or zero. (ES2019).\n *\n * @param {*} x - A number.\n * @returns {number} A number representing the sign of the given argument. If the argument\n * is a positive number, negative number, positive zero or negative zero, the function will\n * return 1, -1, 0 or -0 respectively. Otherwise, NaN is returned.\n */\nconst sign = function sign(x) {\n const n = toNumber(x);\n\n if (n === 0 || numberIsNaN(n)) {\n return n;\n }\n\n return n > 0 ? 1 : -1;\n};\n\nexport default sign;\n","import toNumber from 'to-number-x';\nimport numberIsNaN from 'is-nan-x';\nimport numberIsFinite from 'is-finite-x';\nimport mathSign from 'math-sign-x';\n\nconst {abs, floor} = Math;\n\n/**\n * Converts `value` to an integer. (ES2019).\n *\n * @param {*} value - The value to convert.\n * @returns {number} Returns the converted integer.\n */\nconst toInteger = function toInteger(value) {\n const number = toNumber(value);\n\n if (numberIsNaN(number)) {\n return 0;\n }\n\n if (number === 0 || numberIsFinite(number) === false) {\n return number;\n }\n\n return mathSign(number) * floor(abs(number));\n};\n\nexport default toInteger;\n","import numberIsFinite from 'is-finite-x';\nimport toInteger from 'to-integer-x';\n\n/**\n * This method determines whether the passed value is an integer.\n *\n * @param {*} value - The value to be tested for being an integer.\n * @returns {boolean} A Boolean indicating whether or not the given value is an integer.\n */\nconst isInteger = function isInteger(value) {\n return numberIsFinite(value) && toInteger(value) === value;\n};\n\nexport default isInteger;\n","import isInteger from 'is-integer-x';\n\nconst MAX_SAFE_INTEGER = 9007199254740991;\nconst MIN_SAFE_INTEGER = -MAX_SAFE_INTEGER;\n\n/**\n * This method determines whether the passed value is a safe integer.\n *\n * Can be exactly represented as an IEEE-754 double precision number, and\n * whose IEEE-754 representation cannot be the result of rounding any other\n * integer to fit the IEEE-754 representation.\n *\n * @param {*} value - The value to be tested for being a safe integer.\n * @returns {boolean} A Boolean indicating whether or not the given value is a\n * safe integer.\n */\nconst isSafeInteger = function isSafeInteger(value) {\n return isInteger(value) && value >= MIN_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n};\n\nexport default isSafeInteger;\n","import isSafeInteger from 'is-safe-integer-x';\n\n/**\n * This method checks if `value` is a valid array-like length.\n *\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nconst isLength = function isLength(value) {\n return isSafeInteger(value) && value >= 0;\n};\n\nexport default isLength;\n","import hasSymbols from 'has-symbol-support-x';\nimport isSymbol from 'is-symbol';\n\n/* eslint-disable-next-line compat/compat */\nconst pToString = hasSymbols && Symbol.prototype.toString;\nconst isSymbolFn = typeof pToString === 'function' && isSymbol;\n/** @type {Function} */\nconst castString = ''.constructor;\n\n/**\n * The abstract operation ToString converts argument to a value of type String,\n * however the specification states that if the argument is a Symbol then a\n * 'TypeError' is thrown. This version also allows Symbols be converted to\n * a string. Other uncoercible exotics will still throw though.\n *\n * @param {*} [value] - The value to convert to a string.\n * @returns {string} The converted value.\n */\nconst toStringSymbolsSupported = function toStringSymbolsSupported(value) {\n return isSymbolFn && isSymbolFn(value) ? pToString.call(value) : castString(value);\n};\n\nexport default toStringSymbolsSupported;\n","import toNumber from 'to-number-x';\n\nconst getMaxMin = function getMaxMin(args) {\n const minVal = toNumber(args[1]);\n const result = args.length < 3 ? {max: minVal, min: 0} : {max: toNumber(args[2]), min: minVal};\n\n if (result.min > result.max) {\n throw new RangeError('\"min\" must be less than \"max\"');\n }\n\n return result;\n};\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * This method clamp a number to min and max limits inclusive.\n *\n * @param {number} value - The number to be clamped.\n * @param {number} [min=0] - The minimum number.\n * @param {number} max - The maximum number.\n * @throws {RangeError} If min > max.\n * @returns {number} The clamped number.\n */\n// eslint-enable jsdoc/check-param-names\nconst clamp = function clamp(value) {\n const number = toNumber(value);\n\n if (arguments.length < 2) {\n return number;\n }\n\n /* eslint-disable-next-line prefer-rest-params */\n const {max, min} = getMaxMin(arguments);\n\n if (number < min) {\n return min;\n }\n\n if (number > max) {\n return max;\n }\n\n return number;\n};\n\nexport default clamp;\n","import safeToString from 'to-string-symbols-supported-x';\nimport toInteger from 'to-integer-x';\nimport toNumber from 'to-number-x';\nimport mathClamp from 'math-clamp-x';\n\nconst MAX_SAFE_INTEGER = 9007199254740991;\nconst reIsUint = /^(?:0|[1-9]\\d*)$/;\nconst rxTest = reIsUint.test;\n\n/**\n * This method determines whether the passed value is a zero based index.\n * JavaScript arrays are zero-indexed: the first element of an array is at\n * index 0, and the last element is at the index equal to the value of the\n * array's length property minus 1.\n *\n * @param {number|string} value - The value to be tested for being a zero based index.\n * @param {number} [length=MAX_SAFE_INTEGER] - The length that sets the upper bound.\n * @returns {boolean} A Boolean indicating whether or not the given value is a\n * zero based index within bounds.\n */\nconst isIndex = function isIndex(value, length) {\n const string = safeToString(value);\n\n if (rxTest.call(reIsUint, string) === false) {\n return false;\n }\n\n const number = toNumber(string);\n\n if (arguments.length > 1) {\n return number < mathClamp(toInteger(length), MAX_SAFE_INTEGER);\n }\n\n return number < MAX_SAFE_INTEGER;\n};\n\nexport default isIndex;\n","import toObject from 'to-object-x';\nimport toPropertyKey from 'to-property-key-x';\nimport attempt from 'attempt-x';\nimport hasSymbolSupport from 'has-symbol-support-x';\nimport owns from 'has-own-property-x';\nimport isPrimitive from 'is-primitive-x';\nimport isString from 'is-string';\nimport isIndex from 'is-index-x';\nimport propertyIsEnumerable from 'property-is-enumerable-x';\nimport toBoolean from 'to-boolean-x';\nimport methodize from 'simple-methodize-x';\n\nconst EMPTY_STRING = '';\nconst charAt = methodize(EMPTY_STRING.charAt);\nconst ObjectCtr = {}.constructor;\nconst ngopd = ObjectCtr.getOwnPropertyDescriptor;\nconst nativeGOPD = typeof ngopd === 'function' && ngopd;\nlet getOPDFallback1;\nlet getOPDFallback2;\n\n// ES5 15.2.3.3\n// http://es5.github.com/#x15.2.3.3\n\nconst doesGOPDWork = function doesGOPDWork(object, prop) {\n object[toPropertyKey(prop)] = 0;\n const testResult = attempt(nativeGOPD, object, prop);\n\n return testResult.threw === false && testResult.value.value === 0;\n};\n\nconst prototypeOfObject = ObjectCtr.prototype;\n\n// If JS engine supports accessors creating shortcuts.\nconst supportsAccessors = owns(prototypeOfObject, '__defineGetter__');\n/* eslint-disable-next-line no-underscore-dangle */\nconst lookupGetter = supportsAccessors && methodize(prototypeOfObject.__lookupGetter__);\n/* eslint-disable-next-line no-underscore-dangle */\nconst lookupSetter = supportsAccessors && methodize(prototypeOfObject.__lookupSetter__);\n\nexport const implementation = function getOwnPropertyDescriptor(object, property) {\n const obj = toObject(object);\n const propKey = toPropertyKey(property);\n\n let result;\n\n // make a valiant attempt to use the real getOwnPropertyDescriptor for I8's DOM elements.\n if (getOPDFallback1) {\n result = attempt(function attemptee() {\n return getOPDFallback1(toObject(obj), propKey);\n });\n\n if (result.threw === false) {\n return result.value;\n }\n // try the shim if the real one doesn't work\n }\n\n const isStringIndex = isString(obj) && isIndex(propKey, obj.length);\n\n if (getOPDFallback2 && isStringIndex === false) {\n result = attempt(function attemptee() {\n return getOPDFallback2(toObject(obj), propKey);\n });\n\n if (result.threw === false) {\n return result.value;\n }\n // try the shim if the real one doesn't work\n }\n\n /* eslint-disable-next-line no-void */\n let descriptor = void 0;\n\n // If object does not owns property return undefined immediately.\n if (isStringIndex === false && owns(obj, propKey) === false) {\n return descriptor;\n }\n\n // If object has a property then it's for sure `configurable`, and\n // probably `enumerable`. Detect enumerability though.\n descriptor = {\n configurable: isPrimitive(object) === false && isStringIndex === false,\n enumerable: propertyIsEnumerable(obj, propKey),\n };\n\n // If JS engine supports accessor properties then property may be a\n // getter or setter.\n if (supportsAccessors) {\n // Unfortunately `__lookupGetter__` will return a getter even\n // if object has own non getter property along with a same named\n // inherited getter. To avoid misbehavior we temporary remove\n // `__proto__` so that `__lookupGetter__` will return getter only\n // if it's owned by an object.\n /* eslint-disable-next-line no-proto */\n const prototype = obj.__proto__;\n const notPrototypeOfObject = obj !== prototypeOfObject;\n\n // avoid recursion problem, breaking in Opera Mini when\n // Object.getOwnPropertyDescriptor(Object.prototype, 'toString')\n // or any other Object.prototype accessor\n if (notPrototypeOfObject) {\n /* eslint-disable-next-line no-proto */\n obj.__proto__ = prototypeOfObject;\n }\n\n const getter = lookupGetter(obj, propKey);\n const setter = lookupSetter(obj, propKey);\n\n if (notPrototypeOfObject) {\n // Once we have getter and setter we can put values back.\n /* eslint-disable-next-line no-proto */\n obj.__proto__ = prototype;\n }\n\n if (getter || setter) {\n if (getter) {\n descriptor.get = getter;\n }\n\n if (setter) {\n descriptor.set = setter;\n }\n\n // If it was accessor property we're done and return here\n // in order to avoid adding `value` to the descriptor.\n return descriptor;\n }\n }\n\n // If we got this far we know that object has an own property that is\n // not an accessor so we set it as a value and return descriptor.\n if (isStringIndex) {\n descriptor.value = charAt(obj, propKey);\n descriptor.writable = false;\n } else {\n descriptor.value = obj[propKey];\n descriptor.writable = true;\n }\n\n return descriptor;\n};\n\n/**\n * This method returns a property descriptor for an own property (that is,\n * one directly present on an object and not in the object's prototype chain)\n * of a given object.\n *\n * @param {*} object - The object in which to look for the property.\n * @param {*} property - The name of the property whose description is to be retrieved.\n * @returns {object} A property descriptor of the given property if it exists on the object, undefined otherwise.\n */\nlet $getOwnPropertyDescriptor;\n\n// check whether getOwnPropertyDescriptor works if it's given. Otherwise, shim partially.\nif (nativeGOPD) {\n const doc = typeof document !== 'undefined' && document;\n const getOPDWorksOnDom = doc ? doesGOPDWork(doc.createElement('div'), 'sentinel') : true;\n\n if (getOPDWorksOnDom) {\n const res = attempt(nativeGOPD, toObject('abc'), 1);\n const worksWithStr = res.threw === false && res.value && res.value.value === 'b';\n\n if (worksWithStr) {\n const getOPDWorksOnObject = doesGOPDWork({}, 'sentinel');\n\n if (getOPDWorksOnObject) {\n const worksWithPrim = attempt(nativeGOPD, 42, 'name').threw === false;\n /* eslint-disable-next-line compat/compat */\n const worksWithObjSym = hasSymbolSupport && doesGOPDWork({}, toObject(Symbol(EMPTY_STRING)));\n\n if (worksWithObjSym) {\n if (worksWithPrim) {\n $getOwnPropertyDescriptor = nativeGOPD;\n } else {\n $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n return nativeGOPD(toObject(object), property);\n };\n }\n } else if (worksWithPrim) {\n $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n return nativeGOPD(object, toPropertyKey(property));\n };\n } else {\n $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {\n return nativeGOPD(toObject(object), toPropertyKey(property));\n };\n }\n } else {\n getOPDFallback1 = nativeGOPD;\n }\n } else {\n getOPDFallback2 = nativeGOPD;\n }\n }\n}\n\nif (toBoolean($getOwnPropertyDescriptor) === false || getOPDFallback1 || getOPDFallback2) {\n $getOwnPropertyDescriptor = implementation;\n}\n\nconst gOPS = $getOwnPropertyDescriptor;\n\nexport default gOPS;\n","import attempt from 'attempt-x';\nimport isObjectLike from 'is-object-like-x';\nimport gOPD from 'object-get-own-property-descriptor-x';\nimport call from 'simple-call-x';\n\nconst stubTrue = function stubTrue() {\n return true;\n};\n\n/**\n * @param {Function|!object} creator - A creator function or a created object.\n * @returns {!object} - An attempt object.\n */\nconst getResult = function getResult(creator) {\n return typeof creator === 'function'\n ? attempt(creator)\n : {\n threw: false,\n value: creator,\n };\n};\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * @param {!object} descriptor - A descriptor object.\n * @param {!object} context - A created object.\n * @param {Function} [validator] - A function to validate the result.\n * @returns {Function|null} - The getter function or null.\n */\n// eslint-enable jsdoc/check-param-names\nconst getter = function getter(descriptor, context) {\n /* eslint-disable-next-line prefer-rest-params */\n const validator = typeof arguments[2] === 'function' ? arguments[2] : stubTrue;\n const res = attempt(function attemptee() {\n return call(descriptor.get, context);\n });\n\n return res.threw === false && validator(res.value) ? descriptor.get : null;\n};\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * Get a getter.\n *\n * @param {Function|!object} creator - A creator function or a created object.\n * @param {string} getterName - The getter name.\n * @param {Function} [validator] - A function to validate the result.\n * @returns {Function|null} The target.\n */\n// eslint-enable jsdoc/check-param-names\nconst getGetter = function getGetter(creator, getterName) {\n const resTest1 = getResult(creator);\n\n if (resTest1.threw === false && isObjectLike(resTest1.value)) {\n const descriptor = gOPD(resTest1.value.constructor.prototype, getterName);\n\n if (descriptor && typeof descriptor.get === 'function') {\n /* eslint-disable-next-line prefer-rest-params */\n return getter(descriptor, resTest1.value, arguments[2]);\n }\n }\n\n return null;\n};\n\nexport default getGetter;\n","import attempt from 'attempt-x';\nimport isObjectLike from 'is-object-like-x';\nimport isLength from 'is-length-x';\nimport call from 'simple-call-x';\nimport getGetter from 'util-get-getter-x';\n\nconst creator = function creator() {\n /* eslint-disable-next-line compat/compat */\n return new Map();\n};\n\nconst getSize = getGetter(creator, 'size', isLength);\n\n/**\n * Determine if an `object` is a `Map`.\n *\n * @param {*} object - The object to test.\n * @returns {boolean} `true` if the `object` is a `Map`,\n * else `false`.\n */\nconst isMap = function isMap(object) {\n if (getSize === null || isObjectLike(object) === false) {\n return false;\n }\n\n const result = attempt(function attemptee() {\n return call(getSize, object);\n });\n\n return result.threw === false && isLength(result.value);\n};\n\nexport default isMap;\n","import safeToString from 'to-string-symbols-supported-x';\nimport isPrimitive from 'is-primitive-x';\n\n/**\n * Tests `value` to see if it is an object, throws a `TypeError` if it is\n * not. Otherwise returns the `value`.\n *\n * @param {*} value - The argument to be tested.\n * @param {string} [message] - An alternative user message.\n * @throws {TypeError} Throws if `value` is not an object.\n * @returns {*} Returns `value` if it is an object.\n */\nconst assertIsObject = function assertIsObject(value, message) {\n if (isPrimitive(value)) {\n const msg = arguments.length > 1 ? safeToString(message) : `${safeToString(value)} is not an object`;\n\n throw new TypeError(msg);\n }\n\n return value;\n};\n\nexport default assertIsObject;\n","import attempt from 'attempt-x';\nimport toObject from 'to-object-x';\nimport toPropertyKey from 'to-property-key-x';\nimport has from 'has-own-property-x';\nimport isFunction from 'is-function-x';\nimport assertIsObject from 'assert-is-object-x';\nimport toBoolean from 'to-boolean-x';\nimport methodize from 'simple-methodize-x';\n\nconst ObjectCtr = {}.constructor;\nconst nd = ObjectCtr.defineProperty;\nconst nativeDefProp = typeof nd === 'function' && nd;\nlet definePropertyFallback;\n\nconst toPropertyDescriptor = function toPropertyDescriptor(desc) {\n const object = toObject(desc);\n const descriptor = {};\n\n if (has(object, 'enumerable')) {\n descriptor.enumerable = toBoolean(object.enumerable);\n }\n\n if (has(object, 'configurable')) {\n descriptor.configurable = toBoolean(object.configurable);\n }\n\n if (has(object, 'value')) {\n descriptor.value = object.value;\n }\n\n if (has(object, 'writable')) {\n descriptor.writable = toBoolean(object.writable);\n }\n\n if (has(object, 'get')) {\n const getter = object.get;\n\n if (typeof getter !== 'undefined' && isFunction(getter) === false) {\n throw new TypeError('getter must be a function');\n }\n\n descriptor.get = getter;\n }\n\n if (has(object, 'set')) {\n const setter = object.set;\n\n if (typeof setter !== 'undefined' && isFunction(setter) === false) {\n throw new TypeError('setter must be a function');\n }\n\n descriptor.set = setter;\n }\n\n if ((has(descriptor, 'get') || has(descriptor, 'set')) && (has(descriptor, 'value') || has(descriptor, 'writable'))) {\n throw new TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n }\n\n return descriptor;\n};\n\n// ES5 15.2.3.6\n// http://es5.github.com/#x15.2.3.6\n\n// Patch for WebKit and IE8 standard mode\n// Designed by hax \n// related issue: https://github.com/es-shims/es5-shim/issues#issue/5\n// IE8 Reference:\n// http://msdn.microsoft.com/en-us/library/dd282900.aspx\n// http://msdn.microsoft.com/en-us/library/dd229916.aspx\n// WebKit Bugs:\n// https://bugs.webkit.org/show_bug.cgi?id=36423\n\nconst prototypeOfObject = ObjectCtr.prototype;\n// If JS engine supports accessors creating shortcuts.\nconst supportsAccessors = has(prototypeOfObject, '__defineGetter__');\n/* eslint-disable-next-line no-underscore-dangle,no-restricted-properties */\nconst defineGetter = supportsAccessors && methodize(prototypeOfObject.__defineGetter__);\n/* eslint-disable-next-line no-underscore-dangle,no-restricted-properties */\nconst defineSetter = supportsAccessors && methodize(prototypeOfObject.__defineSetter__);\n/* eslint-disable-next-line no-underscore-dangle */\nconst lookupGetter = supportsAccessors && methodize(prototypeOfObject.__lookupGetter__);\n/* eslint-disable-next-line no-underscore-dangle */\nconst lookupSetter = supportsAccessors && methodize(prototypeOfObject.__lookupSetter__);\n\nexport const implementation = function defineProperty(object, property, descriptor) {\n assertIsObject(object);\n const propKey = toPropertyKey(property);\n const propDesc = toPropertyDescriptor(descriptor);\n\n // make a valiant attempt to use the real defineProperty for IE8's DOM elements.\n if (definePropertyFallback) {\n const result = attempt(function attemptee() {\n return definePropertyFallback(ObjectCtr, object, propKey, propDesc);\n });\n\n if (result.threw === false) {\n return result.value;\n }\n // try the shim if the real one doesn't work\n }\n\n // If it's a data property.\n if (has(propDesc, 'value')) {\n // fail silently if 'writable', 'enumerable', or 'configurable' are requested but not supported\n if (supportsAccessors && (lookupGetter(object, propKey) || lookupSetter(object, propKey))) {\n // As accessors are supported only on engines implementing\n // `__proto__` we can safely override `__proto__` while defining\n // a property to make sure that we don't hit an inherited accessor.\n /* eslint-disable-next-line no-proto */\n const prototype = object.__proto__;\n /* eslint-disable-next-line no-proto */\n object.__proto__ = prototypeOfObject;\n // Deleting a property anyway since getter / setter may be defined on object itself.\n delete object[propKey];\n object[propKey] = propDesc.value;\n // Setting original `__proto__` back now.\n /* eslint-disable-next-line no-proto */\n object.__proto__ = prototype;\n } else {\n object[propKey] = propDesc.value;\n }\n } else {\n if (supportsAccessors === false && (propDesc.get || propDesc.set)) {\n throw new TypeError('getters & setters can not be defined on this javascript engine');\n }\n\n // If we got that far then getters and setters can be defined !!\n if (propDesc.get) {\n defineGetter(object, propKey, propDesc.get);\n }\n\n if (propDesc.set) {\n defineSetter(object, propKey, propDesc.set);\n }\n }\n\n return object;\n};\n\n/**\n * This method defines a new property directly on an object, or modifies an\n * existing property on an object, and returns the object.\n *\n * @param {object} object - The object on which to define the property.\n * @param {string} property - The name of the property to be defined or modified.\n * @param {object} descriptor - The descriptor for the property being defined or modified.\n * @returns {object} The object that was passed to the function.\n * });.\n */\nlet $defineProperty;\n\n// check whether defineProperty works if it's given. Otherwise, shim partially.\nif (nativeDefProp) {\n const testWorksWith = function testWorksWith(object) {\n const testResult = attempt(nativeDefProp, object, 'sentinel', {});\n\n return testResult.threw === false && testResult.value === object && 'sentinel' in object;\n };\n\n const doc = typeof document !== 'undefined' && document;\n\n if (testWorksWith({}) && (toBoolean(doc) === false || testWorksWith(doc.createElement('div')))) {\n $defineProperty = function defineProperty(object, property, descriptor) {\n return nativeDefProp(assertIsObject(object), toPropertyKey(property), toPropertyDescriptor(descriptor));\n };\n } else {\n definePropertyFallback = nativeDefProp;\n }\n}\n\nif (toBoolean(nativeDefProp) === false || definePropertyFallback) {\n $defineProperty = implementation;\n}\n\nconst defProp = $defineProperty;\n\nexport default defProp;\n","import isObjectLike from 'is-object-like-x';\nimport hasToStringTag from 'has-to-string-tag-x';\nimport has from 'has-own-property-x';\nimport gOPD from 'object-get-own-property-descriptor-x';\nimport defineProperty from 'object-define-property-x';\nimport toStringTag from 'to-string-tag-x';\nimport methodize from 'simple-methodize-x';\n\nconst regexExec = methodize(/none/.exec);\nconst regexClass = '[object RegExp]';\n\nconst tryRegexExecCall = function tryRegexExec(value, descriptor) {\n try {\n value.lastIndex = 0;\n regexExec(value);\n\n return true;\n } catch (e) {\n return false;\n } finally {\n defineProperty(value, 'lastIndex', descriptor);\n }\n};\n\n/**\n * This method tests if a value is a regex.\n *\n * @param {*} value - The value to test.\n * @returns {boolean} `true` if value is a regex; otherwise `false`.\n */\nconst isRegex = function isRegex(value) {\n if (isObjectLike(value) === false) {\n return false;\n }\n\n if (hasToStringTag === false) {\n return toStringTag(value) === regexClass;\n }\n\n const descriptor = gOPD(value, 'lastIndex');\n const hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\n if (hasLastIndexDataProperty !== true) {\n return false;\n }\n\n return tryRegexExecCall(value, descriptor);\n};\n\nexport default isRegex;\n","import attempt from 'attempt-x';\nimport isObjectLike from 'is-object-like-x';\nimport isLength from 'is-length-x';\nimport call from 'simple-call-x';\nimport getGetter from 'util-get-getter-x';\n\nconst creator = function creator() {\n /* eslint-disable-next-line compat/compat */\n return new Set();\n};\n\nconst getSize = getGetter(creator, 'size', isLength);\n\n/**\n * Determine if an `object` is a `Set`.\n *\n * @param {*} object - The object to test.\n * @returns {boolean} `true` if the `object` is a `Set`,\n * else `false`.\n */\nconst isSet = function isSet(object) {\n if (getSize === null || isObjectLike(object) === false) {\n return false;\n }\n\n const result = attempt(function attemptee() {\n return call(getSize, object);\n });\n\n return result.threw === false && isLength(result.value);\n};\n\nexport default isSet;\n","import attempt from 'attempt-x';\nimport isObjectLike from 'is-object-like-x';\nimport hasToStringTag from 'has-to-string-tag-x';\nimport toStringTag from 'to-string-tag-x';\nimport toBoolean from 'to-boolean-x';\nimport call from 'simple-call-x';\nimport getGetter from 'util-get-getter-x';\n\nconst hasABuf = typeof ArrayBuffer === 'function';\nconst aBufTag = '[object ArrayBuffer]';\n\nconst validator = function validator(value) {\n return typeof value === 'number';\n};\n\nconst creator = function creator() {\n /* eslint-disable-next-line compat/compat */\n return new ArrayBuffer(4);\n};\n\nconst byteLength = hasABuf && hasToStringTag ? getGetter(creator, 'byteLength', validator) : null;\n\n/**\n * Determine if an `object` is an `ArrayBuffer`.\n *\n * @param {*} object - The object to test.\n * @returns {boolean} `true` if the `object` is an `ArrayBuffer`,\n * else false`.\n */\nconst isArrayBuffer = function isArrayBuffer(object) {\n if (hasABuf === false || isObjectLike(object) === false) {\n return false;\n }\n\n if (toBoolean(byteLength) === false) {\n return toStringTag(object) === aBufTag;\n }\n\n const result = attempt(function attemptee() {\n return call(byteLength, object);\n });\n\n return result.threw === false && validator(result.value);\n};\n\nexport default isArrayBuffer;\n","import isFunction from 'is-function-x';\nimport toObject from 'to-object-x';\nimport toBoolean from 'to-boolean-x';\n\nconst ObjectCtr = {}.constructor;\nconst nativeGetPrototypeOf = ObjectCtr.getPrototypeOf;\n\nconst test1 = function test1() {\n const prototypeOfCtr = {};\n /* eslint-disable-next-line lodash/prefer-noop */\n const Ctr = function Ctr() {};\n\n Ctr.prototype = prototypeOfCtr;\n const ctr = new Ctr();\n\n try {\n return nativeGetPrototypeOf(ctr) === prototypeOfCtr;\n } catch (ignore) {\n return false;\n }\n};\n\nconst isWorking = toBoolean(nativeGetPrototypeOf) && test1();\n\nconst patchedGetPrototypeOf = function getPrototypeOf(obj) {\n return nativeGetPrototypeOf(toObject(obj));\n};\n\nexport const implementation = function getPrototypeOf(obj) {\n const object = toObject(obj);\n /* eslint-disable-next-line no-proto */\n const proto = object.__proto__;\n\n if (proto || proto === null) {\n return proto;\n }\n\n if (isFunction(object.constructor)) {\n return object.constructor.prototype;\n }\n\n if (object instanceof ObjectCtr) {\n return ObjectCtr.prototype;\n }\n\n return null;\n};\n\n/**\n * This method returns the prototype (i.e. The value of the internal [[Prototype]] property)\n * of the specified object.\n *\n * @function getPrototypeOf\n * @param {*} obj - The object whose prototype is to be returned.\n * @returns {object} The prototype of the given object. If there are no inherited properties, null is returned.\n */\nconst gpo = isWorking ? patchedGetPrototypeOf : implementation;\n\nexport default gpo;\n","import toStringTag from 'to-string-tag-x';\nimport isObjectLike from 'is-object-like-x';\nimport $getPrototypeOf from 'get-prototype-of-x';\n\nlet errorCheck = function checkIfError(value) {\n return toStringTag(value) === '[object Error]';\n};\n\nif (errorCheck(Error.prototype) === false) {\n const errorProto = Error.prototype;\n const testStringTag = errorCheck;\n errorCheck = function checkIfError(value) {\n return value === errorProto || testStringTag(value);\n };\n}\n\n/**\n * Determine whether or not a given `value` is an `Error` type.\n *\n * @param {*} value - The object to be tested.\n * @returns {boolean} Returns `true` if `value` is an `Error` type,\n * else `false`.\n */\nconst isError = function isError(value) {\n if (isObjectLike(value) === false) {\n return false;\n }\n\n let object = value;\n let maxLoop = 100;\n while (object && maxLoop > -1) {\n if (errorCheck(object)) {\n return true;\n }\n\n object = $getPrototypeOf(object);\n maxLoop -= 1;\n }\n\n return false;\n};\n\nexport default isError;\n","import numberIsNaN from 'is-nan-x';\n\n/**\n * This method is the comparison abstract operation SameValue(x, y), where x\n * and y are ECMAScript language values, produces true or false.\n *\n * @param {*} [value1] - The first value to compare.\n * @param {*} [value2] - The second value to compare.\n * @returns {boolean} A Boolean indicating whether or not the two arguments are\n * the same value.\n */\nconst sameValue = function sameValue(value1, value2) {\n if (value1 === 0 && value2 === 0) {\n return 1 / value1 === 1 / value2;\n }\n\n if (value1 === value2) {\n return true;\n }\n\n return numberIsNaN(value1) && numberIsNaN(value2);\n};\n\nexport default sameValue;\n","import attempt from 'attempt-x';\nimport toStringTag from 'to-string-tag-x';\n\nconst nia = [].isArray;\nconst nativeIsArray = typeof nia === 'function' && nia;\n\nconst testResult = attempt(function attemptee() {\n return nativeIsArray([]) === true && nativeIsArray({length: 0}) === false;\n});\n\nconst isWorking = testResult.threw === false && testResult.value === true;\n\nexport const implementation = function isArray(value) {\n return toStringTag(value) === '[object Array]';\n};\n\n/**\n * Determines whether the passed value is an Array.\n *\n * @param {*} value - The value to test.\n * @returns {boolean} - True if an array; otherwise false.\n */\nconst isArray = isWorking ? nativeIsArray : implementation;\n\nexport default isArray;\n","import toInteger from 'to-integer-x';\n\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object. (ES2019).\n *\n * @param {*} value - The value to convert.\n * @returns {number} Returns the converted integer.\n */\nconst toLength = function toLength(value) {\n const len = toInteger(value);\n\n // includes converting -0 to +0\n if (len <= 0) {\n return 0;\n }\n\n if (len > MAX_SAFE_INTEGER) {\n return MAX_SAFE_INTEGER;\n }\n\n return len;\n};\n\nexport default toLength;\n","import hasBoxed from 'has-boxed-string-x';\nimport isString from 'is-string';\nimport methodize from 'simple-methodize-x';\n\nconst EMPTY_STRING = '';\nconst strSplit = methodize(EMPTY_STRING.split);\n\nconst identity = function splitIfBoxedBug(value) {\n return value;\n};\n\nexport const implementation = function splitIfBoxedBug(value) {\n return isString(value) ? strSplit(value, EMPTY_STRING) : identity(value);\n};\n\n/**\n * This method tests if a value is a string with the boxed bug; splits to an\n * array for iteration; otherwise returns the original value.\n *\n * @param {*} [value] - The value to be tested.\n * @returns {*} An array or characters if value was a string with the boxed bug;\n * otherwise the value.\n */\nconst $splitIfBoxedBug = hasBoxed ? identity : implementation;\n\nexport default $splitIfBoxedBug;\n","import toObject from 'to-object-x';\nimport toInteger from 'to-integer-x';\nimport toLength from 'to-length-x';\nimport splitIfBoxedBug from 'split-if-boxed-bug-x';\n\nconst getMax = function getMax(a, b) {\n return a >= b ? a : b;\n};\n\nconst getMin = function getMin(a, b) {\n return a <= b ? a : b;\n};\n\nconst setRelative = function setRelative(value, length) {\n return value < 0 ? getMax(length + value, 0) : getMin(value, length);\n};\n\n/**\n * The slice() method returns a shallow copy of a portion of an array into a new\n * array object selected from begin to end (end not included). The original\n * array will not be modified.\n *\n * @param {!object} arrayLike - The array like object to slice.\n * @param {number} [start] - Zero-based index at which to begin extraction.\n * A negative index can be used, indicating an offset from the end of the\n * sequence. Running slice(-2) extracts the last two elements in the sequence.\n * If begin is undefined, slice begins from index 0.\n * @param {number} [end] - Zero-based index before which to end extraction.\n * Slice extracts up to but not including end. For example, slice([0,1,2,3,4],1,4)\n * extracts the second element through the fourth element (elements indexed\n * 1, 2, and 3).\n * A negative index can be used, indicating an offset from the end of the\n * sequence. Running slice(2,-1) extracts the third element through the second-to-last\n * element in the sequence.\n * If end is omitted, slice extracts through the end of the sequence (arr.length).\n * If end is greater than the length of the sequence, slice extracts through\n * the end of the sequence (arr.length).\n * @returns {Array} A new array containing the extracted elements.\n */\nconst slice = function slice(arrayLike, start, end) {\n const iterable = splitIfBoxedBug(toObject(arrayLike));\n const length = toLength(iterable.length);\n let k = setRelative(toInteger(start), length);\n const relativeEnd = typeof end === 'undefined' ? length : toInteger(end);\n const finalEnd = setRelative(relativeEnd, length);\n const val = [];\n val.length = getMax(finalEnd - k, 0);\n let next = 0;\n while (k < finalEnd) {\n if (k in iterable) {\n val[next] = iterable[k];\n }\n\n next += 1;\n k += 1;\n }\n\n return val;\n};\n\nexport default slice;\n","import toObject from 'to-object-x';\nimport attempt from 'attempt-x';\nimport isArray from 'is-array-x';\nimport isArguments from 'is-arguments';\nimport arraySlice from 'array-like-slice-x';\nimport splitIfBoxed from 'split-if-boxed-bug-x';\nimport isString from 'is-string';\nimport isRegexp from 'is-regexp-x';\nimport has from 'has-own-property-x';\nimport objKeys from 'object-keys';\n\nconst ObjectCtr = {}.constructor;\nconst nativeKeys = typeof ObjectCtr.keys === 'function' && ObjectCtr.keys;\n\nlet isWorking;\nlet throwsWithNull;\nlet worksWithPrim;\nlet worksWithRegex;\nlet worksWithArgs;\nlet worksWithStr;\n\nif (nativeKeys) {\n const isCorrectRes = function isCorrectRes(r, length) {\n return r.threw === false && isArray(r.value) && r.value.length === length;\n };\n\n const either = function either(r, a, b) {\n const x = r.value[0];\n const y = r.value[1];\n\n return (x === a && y === b) || (x === b && y === a);\n };\n\n let testObj = {a: 1, b: 2};\n let res = attempt(nativeKeys, testObj);\n isWorking = isCorrectRes(res, 2) && either(res, 'a', 'b');\n\n if (isWorking) {\n testObj = Object('a');\n testObj.y = 1;\n res = attempt(nativeKeys, testObj);\n isWorking = isCorrectRes(res, 2) && either(res, '0', 'y');\n }\n\n if (isWorking) {\n throwsWithNull = attempt(nativeKeys, null).threw;\n worksWithPrim = isCorrectRes(attempt(nativeKeys, 42), 0);\n worksWithRegex = attempt(nativeKeys, /a/g).threw === false;\n\n res = attempt(\n nativeKeys,\n (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })(1, 2),\n );\n\n worksWithArgs = isCorrectRes(res, 2) && either(res, '0', '1');\n\n res = attempt(nativeKeys, Object('ab'));\n worksWithStr = isCorrectRes(res, 2) && either(res, '0', '1');\n }\n}\n\nexport const patched = function keys(object) {\n let obj = toObject ? toObject(object) : object;\n\n if (worksWithArgs !== true && isArguments(obj)) {\n obj = arraySlice(obj);\n } else if (worksWithStr !== true && isString(obj)) {\n obj = splitIfBoxed(obj);\n } else if (worksWithRegex !== true && isRegexp(obj)) {\n const regexKeys = [];\n /* eslint-disable-next-line no-restricted-syntax */\n for (const key in obj) {\n // noinspection JSUnfilteredForInLoop\n if (has(obj, key)) {\n regexKeys[regexKeys.length] = key;\n }\n }\n\n return regexKeys;\n }\n\n return nativeKeys(obj);\n};\n\nexport const implementation = function keys(object) {\n return objKeys(toObject(object));\n};\n\nlet objectKeys;\n\nif (isWorking) {\n if (throwsWithNull && worksWithPrim && worksWithRegex && worksWithArgs && worksWithStr) {\n objectKeys = nativeKeys;\n } else {\n objectKeys = patched;\n }\n}\n\n/**\n * This method returns an array of a given object's own enumerable properties,\n * in the same order as that provided by a for...in loop (the difference being\n * that a for-in loop enumerates properties in the prototype chain as well).\n *\n * @param {*} obj - The object of which the enumerable own properties are to be returned.\n * @returns {Array} An array of strings that represent all the enumerable properties of the given object.\n */\nconst $objectKeys = isWorking ? objectKeys : implementation;\n\nexport default $objectKeys;\n","import toObject from 'to-object-x';\nimport hasSymbolSupport from 'has-symbol-support-x';\nimport attempt from 'attempt-x';\n\nconst nativeGOPS = {}.constructor.getOwnPropertySymbols;\nlet isWorking;\n\nif (hasSymbolSupport && nativeGOPS && typeof nativeGOPS === 'function') {\n /* eslint-disable-next-line compat/compat */\n const symbol = Symbol('');\n const testObj = {a: 1};\n testObj[symbol] = 2;\n const r = attempt(nativeGOPS, testObj);\n isWorking = r.threw === false && r.value && r.value.length === 1 && r.value[0] === symbol;\n}\n\n/**\n * This method creates an array of all symbol properties found directly upon a\n * given object.\n *\n * @param {object} obj - The object whose symbol properties are to be returned.\n * @throws {TypeError} If target is null or undefined.\n * @returns {Array} An array of all symbol properties found directly upon the\n * given object.\n */\nconst getOwnPropertySymbols = function getOwnPropertySymbols(obj) {\n const object = toObject(obj);\n\n return isWorking ? nativeGOPS(object) : [];\n};\n\nexport default getOwnPropertySymbols;\n","import toObject from 'to-object-x';\nimport isArguments from 'is-arguments';\nimport isArray from 'is-array-x';\nimport arrayLikeSlice from 'array-like-slice-x';\nimport attempt from 'attempt-x';\nimport isString from 'is-string';\nimport methodize from 'simple-methodize-x';\n\nconst methodizedSlice = methodize([].slice);\n\nconst testArray = function testArray() {\n const res = attempt(function attemptee() {\n return methodizedSlice([1, 2, 3], 1, 2);\n });\n\n return res.threw || isArray(res.value) === false || res.value.length !== 1 || res.value[0] !== 2;\n};\n\nconst testString = function testString() {\n const res = attempt(function attemptee() {\n return methodizedSlice('abc', 1, 2);\n });\n\n return res.threw || isArray(res.value) === false || res.value.length !== 1 || res.value[0] !== 'b';\n};\n\nconst testDOM = function testDOM() {\n const doc = typeof document !== 'undefined' && document;\n const resultDocElement = doc\n ? attempt(function attemptee() {\n return methodizedSlice(doc.documentElement);\n }).threw\n : false;\n\n return resultDocElement ? resultDocElement.threw : false;\n};\n\nconst failArray = testArray();\nconst failString = testString();\nconst failDOM = testDOM();\n\nconst useArrayLike = function useArrayLike(object) {\n return failArray || (failDOM && isArray(object) === false) || (failString && isString(object)) || isArguments(object);\n};\n\n/**\n * The slice() method returns a shallow copy of a portion of an array into a new\n * array object selected from begin to end (end not included). The original\n * array will not be modified.\n *\n * @param {Array|object} array - The array to slice.\n * @param {number} [start] - Zero-based index at which to begin extraction.\n * A negative index can be used, indicating an offset from the end of the\n * sequence. Running slice(-2) extracts the last two elements in the sequence.\n * If begin is undefined, slice begins from index 0.\n * @param {number} [end] - Zero-based index before which to end extraction.\n * Slice extracts up to but not including end. For example, slice(1,4)\n * extracts the second element through the fourth element (elements indexed\n * 1, 2, and 3).\n * A negative index can be used, indicating an offset from the end of the\n * sequence. Running slice(2,-1) extracts the third element through the second-to-last\n * element in the sequence.\n * If end is omitted, slice extracts through the end of the\n * sequence (arr.length).\n * If end is greater than the length of the sequence, slice extracts through\n * the end of the sequence (arr.length).\n * @returns {Array} A new array containing the extracted elements.\n */\nconst slice = function slice(array, start, end) {\n const object = toObject(array);\n\n return useArrayLike(object) ? arrayLikeSlice(object, start, end) : methodizedSlice(object, start, end);\n};\n\nexport default slice;\n","import toObject from 'to-object-x';\nimport attempt from 'attempt-x';\nimport isArray from 'is-array-x';\nimport toStringTag from 'to-string-tag-x';\nimport arraySlice from 'array-slice-x';\nimport objectKeys from 'object-keys-x';\n\nconst ObjectCtr = {}.constructor;\nconst nGOPN = ObjectCtr.getOwnPropertyNames;\nconst nativeGOPN = typeof nGOPN === 'function' && nGOPN;\n\nconst isCorrectRes = function isCorrectRes(r, length) {\n return r.threw === false && isArray(r.value) && r.value.length === length;\n};\n\nconst either = function either(args) {\n const [r, a, b] = args;\n const x = r.value[0];\n const y = r.value[1];\n\n return (x === a && y === b) || (x === b && y === a);\n};\n\nconst test1 = function test1() {\n const res = attempt(nativeGOPN, 'fo');\n\n return isCorrectRes(res, 3) && either([res, '0', '1']) && res.value[2] === 'length';\n};\n\nconst test2 = function test2() {\n const res = attempt(nativeGOPN, {a: 1, b: 2});\n\n return isCorrectRes(res, 2) && either([res, 'a', 'b']);\n};\n\nconst win = typeof window === 'object' && window;\nconst cachedWindowNames = win ? nativeGOPN(win) : [];\n\nexport const implementation1 = function getOwnPropertyNames(obj) {\n const val = toObject(obj);\n\n // IE bug where layout engine calls userland gOPN for cross-domain `window` objects\n if (win && win !== window && toStringTag(val) === '[object Window]') {\n const result = attempt(nativeGOPN, val);\n\n return result.threw ? arraySlice(cachedWindowNames) : result.value;\n }\n\n return nativeGOPN(val);\n};\n\nexport const implementation2 = function getOwnPropertyNames(obj) {\n return objectKeys(obj);\n};\n\nconst getImplementation = function getImplementation() {\n if (test1()) {\n return nativeGOPN;\n }\n\n return test2() ? implementation1 : implementation2;\n};\n\n/**\n * This method creates an array of all properties (enumerable or not) found\n * directly upon a given object.\n *\n * @param {object} obj - The object whose enumerable and non-enumerable own\n * properties are to be returned.\n * @throws {TypeError} If target is null or undefined.\n * @returns {Array} An array of strings that correspond to the properties found\n * directly upon the given object.\n */\nconst getOPN = getImplementation();\n\nexport default getOPN;\n","import isFunction from 'is-function-x';\nimport safeToString from 'to-string-symbols-supported-x';\nimport isPrimitive from 'is-primitive-x';\n\n/**\n * Tests `callback` to see if it is a function, throws a `TypeError` if it is\n * not. Otherwise returns the `callback`.\n *\n * @param {*} callback - The argument to be tested.\n * @param {string} [message] - An alternative user message.\n * @throws {TypeError} Throws if `callback` is not a function.\n * @returns {*} Returns `callback` if it is function.\n */\nconst assertIsFunction = function assertIsFunction(callback, message) {\n if (isFunction(callback) === false) {\n const msg =\n arguments.length > 1\n ? safeToString(message)\n : `${isPrimitive(callback) ? safeToString(callback) : '#'} is not a function`;\n\n throw new TypeError(msg);\n }\n\n return callback;\n};\n\nexport default assertIsFunction;\n","import toObject from 'to-object-x';\nimport toLength from 'to-length-x';\nimport splitIfBoxedBug from 'split-if-boxed-bug-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport call from 'simple-call-x';\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * This method tests whether some element in the array passes the test\n * implemented by the provided function.\n *\n * @function any\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function to test for each element.\n * @param {*} [thisArg] - Value to use as this when executing callback.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n * @returns {boolean} `true` if the callback function returns a truthy value for\n * any array element; otherwise, `false`.\n */\n// eslint-enable jsdoc/check-param-names\nconst any = function any(array, callBack /* , thisArg */) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n assertIsFunction(callBack);\n const iterable = splitIfBoxedBug(object);\n const length = toLength(iterable.length);\n\n if (length) {\n /* eslint-disable-next-line prefer-rest-params */\n const thisArg = arguments[2];\n for (let index = 0; index < length; index += 1) {\n if (call(callBack, thisArg, [iterable[index], index, object])) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport default any;\n","import any from 'array-any-x';\nimport call from 'simple-call-x';\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * This method executes a provided function once for each array element.\n *\n * @function all\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function to execute for each element.\n * @param {*} [thisArg] - Value to use as this when executing callback.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n */\n// eslint-enable jsdoc/check-param-names\nconst all = function all(array, callBack /* , thisArg */) {\n any(\n array,\n function iteratee() {\n /* eslint-disable-next-line prefer-rest-params,babel/no-invalid-this */\n call(callBack, this, arguments);\n },\n /* eslint-disable-next-line prefer-rest-params */\n arguments[2],\n );\n};\n\nexport default all;\n","import attempt from 'attempt-x';\nimport toObject from 'to-object-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport requireObjectCoercible from 'require-object-coercible-x';\nimport all from 'array-all-x';\nimport toBoolean from 'to-boolean-x';\nimport methodize from 'simple-methodize-x';\nimport call from 'simple-call-x';\n\nconst nf = [].filter;\nconst nativeFilter = typeof nf === 'function' && methodize(nf);\n\nconst test1 = function test1() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeFilter([1, 2], function spyAdd1(item) {\n spy += item;\n\n return false;\n });\n });\n\n return res.threw === false && res.value && res.value.length === 0 && spy === 3;\n};\n\nconst test2 = function test2() {\n let spy = '';\n const res = attempt(function attemptee() {\n return nativeFilter(toObject('abc'), function spyAdd2(item, index) {\n spy += item;\n\n return index === 1;\n });\n });\n\n return res.threw === false && res.value && res.value.length === 1 && res.value[0] === 'b' && spy === 'abc';\n};\n\nconst test3 = function test3() {\n let spy = 0;\n const res = attempt(function attemptee() {\n const args = (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })(1, 2, 3);\n\n return nativeFilter(args, function spyAdd3(item, index) {\n spy += item;\n\n return index === 2;\n });\n });\n\n return res.threw === false && res.value && res.value.length === 1 && res.value[0] === 3 && spy === 6;\n};\n\nconst test4 = function test4() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeFilter({0: 1, 1: 2, 3: 3, 4: 4, length: 4}, function spyAdd4(item) {\n spy += item;\n\n return false;\n });\n });\n\n return res.threw === false && res.value && res.value.length === 0 && spy === 6;\n};\n\nconst getTest5Result = function getTest5Result(args) {\n const [res, div, spy] = args;\n\n return res.threw === false && res.value && res.value.length === 1 && res.value[0] === div && spy === div;\n};\n\nconst doc = typeof document !== 'undefined' && document;\n\nconst test5 = function test5() {\n if (doc) {\n let spy = null;\n const fragment = doc.createDocumentFragment();\n const div = doc.createElement('div');\n fragment.appendChild(div);\n const res = attempt(function attemptee() {\n return nativeFilter(fragment.childNodes, function spyAssign(item) {\n spy = item;\n\n return item;\n });\n });\n\n return getTest5Result([res, div, spy]);\n }\n\n return true;\n};\n\nconst isStrict = (function returnIsStrict() {\n /* eslint-disable-next-line babel/no-invalid-this */\n return toBoolean(this) === false;\n})();\n\nconst test6 = function test6() {\n if (isStrict) {\n let spy = null;\n\n const testThis = function testThis() {\n /* eslint-disable-next-line babel/no-invalid-this */\n spy = typeof this === 'string';\n };\n\n const res = attempt(function attemptee() {\n return nativeFilter([1], testThis, 'x');\n });\n\n return res.threw === false && res.value && res.value.length === 0 && spy === true;\n }\n\n return true;\n};\n\nconst test7 = function test7() {\n const spy = {};\n const fn =\n 'return nativeFilter(\"foo\", function (_, __, context) {' +\n 'if (castBoolean(context) === false || typeof context !== \"object\") {' +\n 'spy.value = true;}});';\n\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line no-new-func */\n return Function('nativeFilter', 'spy', 'castBoolean', fn)(nativeFilter, spy, toBoolean);\n });\n\n return res.threw === false && res.value && res.value.length === 0 && spy.value !== true;\n};\n\nconst isWorking = toBoolean(nativeFilter) && test1() && test2() && test3() && test4() && test5() && test6() && test7();\n\nconst patchedFilter = function filter(array, callBack /* , thisArg */) {\n /* eslint-disable-next-line prefer-rest-params, */\n return nativeFilter(requireObjectCoercible(array), assertIsFunction(callBack), arguments[2]);\n};\n\nexport const implementation = function filter(array, callBack /* , thisArg */) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n assertIsFunction(callBack);\n\n const result = [];\n\n const predicate = function predicate() {\n /* eslint-disable-next-line prefer-rest-params */\n const i = arguments[1];\n\n /* eslint-disable-next-line prefer-rest-params */\n if (i in arguments[2]) {\n /* eslint-disable-next-line prefer-rest-params */\n const item = arguments[0];\n\n /* eslint-disable-next-line babel/no-invalid-this */\n if (call(callBack, this, [item, i, object])) {\n result[result.length] = item;\n }\n }\n };\n\n /* eslint-disable-next-line prefer-rest-params */\n all(object, predicate, arguments[2]);\n\n return result;\n};\n\n/**\n * This method creates a new array with all elements that pass the test\n * implemented by the provided function.\n *\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function is a predicate, to test each element.\n * @param {*} [thisArg] - Value to use as this when executing callback.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n * @returns {Array} A new array with the elements that pass the test.\n */\nconst $filter = isWorking ? patchedFilter : implementation;\n\nexport default $filter;\n","import attempt from 'attempt-x';\nimport toObject from 'to-object-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport requireObjectCoercible from 'require-object-coercible-x';\nimport toBoolean from 'to-boolean-x';\nimport all from 'array-all-x';\nimport methodize from 'simple-methodize-x';\nimport call from 'simple-call-x';\n\nconst nfe = [].forEach;\nconst nativeForEach = typeof nfe === 'function' && methodize(nfe);\n\nconst test1 = function test1() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeForEach([1, 2], function iteratee(item) {\n spy += item;\n });\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === 3;\n};\n\nconst test2 = function test2() {\n let spy = '';\n const res = attempt(function attemptee() {\n return nativeForEach(toObject('abc'), function iteratee(item) {\n spy += item;\n });\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === 'abc';\n};\n\nconst test3 = function test3() {\n let spy = 0;\n const res = attempt(function attemptee() {\n const args = (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })(1, 2, 3);\n\n return nativeForEach(args, function iteratee(item) {\n spy += item;\n });\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === 6;\n};\n\nconst test4 = function test4() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeForEach({0: 1, 1: 2, 3: 3, 4: 4, length: 4}, function iteratee(item) {\n spy += item;\n });\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === 6;\n};\n\nconst doc = typeof document !== 'undefined' && document;\n\nconst test5 = function test5() {\n if (doc) {\n let spy = null;\n const fragment = doc.createDocumentFragment();\n const div = doc.createElement('div');\n fragment.appendChild(div);\n const res = attempt(function attemptee() {\n return nativeForEach(fragment.childNodes, function iteratee(item) {\n spy = item;\n });\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === div;\n }\n\n return true;\n};\n\nconst isStrict = (function returnIsStrict() {\n /* eslint-disable-next-line babel/no-invalid-this */\n return toBoolean(this) === false;\n})();\n\nconst test6 = function test6() {\n if (isStrict) {\n let spy = null;\n\n const thisTest = function thisTest() {\n /* eslint-disable-next-line babel/no-invalid-this */\n spy = typeof this === 'string';\n };\n\n const res = attempt(function attemptee() {\n return nativeForEach([1], thisTest, 'x');\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy === true;\n }\n\n return true;\n};\n\nconst test7 = function test7() {\n const spy = {};\n const fn =\n 'return nativeForEach(\"foo\", function (_, __, context) {' +\n 'if (toBoolean(context) === false || typeof context !== \"object\") {' +\n 'spy.value = true;}});';\n\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line no-new-func */\n return Function('nativeForEach', 'spy', 'toBoolean', fn)(nativeForEach, spy, toBoolean);\n });\n\n return res.threw === false && typeof res.value === 'undefined' && spy.value !== true;\n};\n\nconst isWorking = toBoolean(nativeForEach) && test1() && test2() && test3() && test4() && test5() && test6() && test7();\n\nconst patchedNative = function forEach(array, callBack /* , thisArg */) {\n /* eslint-disable-next-line prefer-rest-params */\n return nativeForEach(requireObjectCoercible(array), assertIsFunction(callBack), arguments[2]);\n};\n\nexport const implementation = function forEach(array, callBack /* , thisArg */) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n assertIsFunction(callBack);\n const iteratee = function iteratee() {\n /* eslint-disable-next-line prefer-rest-params */\n const i = arguments[1];\n\n /* eslint-disable-next-line prefer-rest-params */\n if (i in arguments[2]) {\n /* eslint-disable-next-line prefer-rest-params,babel/no-invalid-this */\n call(callBack, this, [arguments[0], i, object]);\n }\n };\n\n /* eslint-disable-next-line prefer-rest-params */\n all(object, iteratee, arguments[2]);\n};\n\n/**\n * This method executes a provided function once for each array element.\n *\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function to execute for each element.\n * @param {*} [thisArg] - Value to use as this when executing callback.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n */\nconst $forEach = isWorking ? patchedNative : implementation;\n\nexport default $forEach;\n","import toObject from 'to-object-x';\nimport filter from 'array-filter-x';\nimport getOPS from 'get-own-property-symbols-x';\nimport propertyIsEnumerable from 'property-is-enumerable-x';\n\n/**\n * This method returns only the enumerable own property symbols of an object.\n *\n * @param {object} target - The target.\n * @throws {TypeError} - If target is null or undefined.\n * @returns {Array} The enumerable own property symbols.\n */\nconst getOwnEnumerablePropertySymbols = function getOwnEnumerablePropertySymbols(target) {\n const object = toObject(target);\n\n return filter(getOPS(object), function iteratee(symbol) {\n return propertyIsEnumerable(object, symbol);\n });\n};\n\nexport default getOwnEnumerablePropertySymbols;\n","import toObject from 'to-object-x';\nimport objectKeys from 'object-keys-x';\nimport getOEPS from 'get-own-enumerable-property-symbols-x';\nimport methodize from 'simple-methodize-x';\n\nconst concat = methodize([].concat);\n\n/**\n * This method returns only the enumerable own keys of an object.\n *\n * @param {object} target - The target.\n * @throws {TypeError} - If target is null or undefined.\n * @returns {Array} The enumerable own keys.\n */\nconst getOwnNonEnumerableKeys = function getOwnNonEnumerableKeys(target) {\n const object = toObject(target);\n\n return concat(objectKeys(object), getOEPS(object));\n};\n\nexport default getOwnNonEnumerableKeys;\n","import forEach from 'array-for-each-x';\nimport $defineProperty from 'object-define-property-x';\nimport toObject from 'to-object-x';\nimport assertIsObject from 'assert-is-object-x';\nimport getKeys from 'get-own-enumerable-keys-x';\n\nexport const defineProperty = $defineProperty;\n\n/**\n * This method defines new or modifies existing properties directly on an\n * object, returning the object.\n *\n * @param {object} object - The object on which to define or modify properties.\n * @param {object} properties - An object whose own enumerable properties\n * constitute descriptors for the\n * properties to be defined or modified.\n * @returns {object} The object that was passed to the function.\n */\nconst defineProperties = function defineProperties(object, properties) {\n assertIsObject(object);\n const props = toObject(properties);\n forEach(getKeys(props), function defineProp(property) {\n if (property !== '__proto__') {\n $defineProperty(object, property, props[property]);\n }\n });\n\n return object;\n};\n\nexport default defineProperties;\n","import isNil from 'is-nil-x';\nimport isFunction from 'is-function-x';\nimport isLength from 'is-length-x';\n\n/**\n * Checks if value is array-like. A value is considered array-like if it's\n * not a function and has a `length` that's an integer greater than or\n * equal to 0 and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @param {*} value - The object to be tested.\n */\nconst isArrayLike = function isArrayLike(value) {\n return isNil(value) === false && isFunction(value, true) === false && isLength(value.length);\n};\n\nexport default isArrayLike;\n","import isString from 'is-string';\nimport methodize from 'simple-methodize-x';\n\nconst methodizedCharCodeAt = methodize(''.charCodeAt);\n\nconst checkPair1 = function checkPair1(char1) {\n return isString(char1) && char1.length === 2;\n};\n\nconst checkPair2 = function checkPair2(char1, char2) {\n return isString(char1) && char1.length === 1 && isString(char2) && char2.length === 1;\n};\n\nconst getPair1 = function getPair1(char1) {\n if (checkPair1(char1)) {\n return {\n first: methodizedCharCodeAt(char1, 0),\n second: methodizedCharCodeAt(char1, 1),\n };\n }\n\n return false;\n};\n\nconst getPair2 = function getPair2(char1, char2) {\n if (checkPair2(char1, char2)) {\n return {\n first: methodizedCharCodeAt(char1, 0),\n second: methodizedCharCodeAt(char2, 0),\n };\n }\n\n return false;\n};\n\nconst isPair = function isPair(result) {\n if (result === false) {\n return false;\n }\n\n const {first, second} = result;\n\n return first >= 0xd800 && first <= 0xdbff && second >= 0xdc00 && second <= 0xdfff;\n};\n\n/**\n * Tests if the two character arguments combined are a valid UTF-16\n * surrogate pair.\n *\n * @param {*} char1 - The character combination, or if `char2` is supplied then\n * the first character of a suspected surrogate pair.\n * @param {*} [char2] - The second character of a suspected surrogate pair.\n * @returns {boolean} Returns true if the two characters create a valid\n * 'UTF-16' surrogate pair; otherwise false.\n */\nconst isSurrogatePair = function isSurrogatePair(char1, char2) {\n const argsLength = arguments.length;\n\n if (argsLength < 1) {\n return false;\n }\n\n let result;\n\n if (argsLength === 1) {\n result = getPair1(char1);\n } else if (argsLength > 1) {\n result = getPair2(char1, char2);\n }\n\n return isPair(result);\n};\n\nexport default isSurrogatePair;\n","import sameValue from 'same-value-x';\n\n/**\n * This method determines whether two values are the same value.\n * SameValueZero differs from SameValue (`Object.is`) only in its treatment\n * of +0 and -0.\n *\n * @param {*} [x] - The first value to compare.\n * @param {*} [y] - The second value to compare.\n * @returns {boolean} A Boolean indicating whether or not the two arguments\n * are the same value.\n */\nconst sameValueZero = function sameValueZero(x, y) {\n return x === y || sameValue(x, y);\n};\n\nexport default sameValueZero;\n","import attempt from 'attempt-x';\nimport toLength from 'to-length-x';\nimport toObject from 'to-object-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport splitIfBoxedBug from 'split-if-boxed-bug-x';\n\nconst pFindIndex = typeof Array.prototype.findIndex === 'function' && Array.prototype.findIndex;\n\nlet isWorking;\n\nif (pFindIndex) {\n const testArr = [];\n testArr.length = 2;\n testArr[1] = 1;\n let res = attempt.call(testArr, pFindIndex, (item, idx) => {\n return idx === 0;\n });\n\n isWorking = res.threw === false && res.value === 0;\n\n if (isWorking) {\n res = attempt.call(1, pFindIndex, (item, idx) => {\n return idx === 0;\n });\n\n isWorking = res.threw === false && res.value === -1;\n }\n\n if (isWorking) {\n isWorking = attempt.call([], pFindIndex).threw;\n }\n\n if (isWorking) {\n res = attempt.call('abc', pFindIndex, (item) => {\n return item === 'c';\n });\n\n isWorking = res.threw === false && res.value === 2;\n }\n\n if (isWorking) {\n res = attempt.call(\n (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })('a', 'b', 'c'),\n pFindIndex,\n (item) => {\n return item === 'c';\n },\n );\n\n isWorking = res.threw === false && res.value === 2;\n }\n}\n\n/**\n * Like `findIndex`, this method returns an index in the array, if an element\n * in the array satisfies the provided testing function. Otherwise -1 is returned.\n *\n * @param {Array} array - The array to search.\n * @throws {TypeError} If array is `null` or `undefined`-.\n * @param {Function} callback - Function to execute on each value in the array,\n * taking three arguments: `element`, `index` and `array`.\n * @throws {TypeError} If `callback` is not a function.\n * @param {*} [thisArg] - Object to use as `this` when executing `callback`.\n * @returns {number} Returns index of positively tested element, otherwise -1.\n */\nlet findIdx;\n\nif (isWorking) {\n findIdx = function findIndex(array, callback) {\n const args = [callback];\n\n if (arguments.length > 2) {\n /* eslint-disable-next-line prefer-rest-params,prefer-destructuring */\n args[1] = arguments[2];\n }\n\n return pFindIndex.apply(array, args);\n };\n} else {\n findIdx = function findIndex(array, callback) {\n const object = toObject(array);\n assertIsFunction(callback);\n const iterable = splitIfBoxedBug(object);\n const length = toLength(iterable.length);\n\n if (length < 1) {\n return -1;\n }\n\n let thisArg;\n\n if (arguments.length > 2) {\n /* eslint-disable-next-line prefer-rest-params,prefer-destructuring */\n thisArg = arguments[2];\n }\n\n let index = 0;\n while (index < length) {\n if (callback.call(thisArg, iterable[index], index, object)) {\n return index;\n }\n\n index += 1;\n }\n\n return -1;\n };\n}\n\nconst fi = findIdx;\n\nexport default fi;\n","import toObject from 'to-object-x';\nimport toLength from 'to-length-x';\nimport toInteger from 'to-integer-x';\nimport isArrayLike from 'is-array-like-x';\n\nconst getMax = function getMax(a, b) {\n return a >= b ? a : b;\n};\n\n/**\n * This method calculates a fromIndex of a given value for an array.\n *\n * @param {Array} array - * The array on which to calculate the starting index.\n * @throws {TypeError} If array is null or undefined.\n * @param {number} fromIndex - * The position in this array at which to begin. A\n * negative value gives the index of array.length + fromIndex by asc.\n * @returns {number} The calculated fromIndex. Default is 0.\n */\nconst calcFromIndex = function calcFromIndex(array, fromIndex) {\n const object = toObject(array);\n\n if (isArrayLike(object) === false) {\n return 0;\n }\n\n const index = toInteger(fromIndex);\n\n return index >= 0 ? index : getMax(0, toLength(object.length) + index);\n};\n\nexport default calcFromIndex;\n","import numberIsNaN from 'is-nan-x';\nimport isString from 'is-string';\nimport toObject from 'to-object-x';\nimport toLength from 'to-length-x';\nimport sameValueZero from 'same-value-zero-x';\nimport sameValue from 'same-value-x';\nimport findIndex from 'find-index-x';\nimport calcFromIndex from 'calculate-from-index-x';\nimport splitIfBoxedBug from 'split-if-boxed-bug-x';\nimport attempt from 'attempt-x';\nimport toBoolean from 'to-boolean-x';\nimport methodize from 'simple-methodize-x';\nimport toInteger from 'to-integer-x';\n\nconst nio = [].indexOf;\nconst nativeIndexOf = typeof nio === 'function' && methodize(nio);\nconst {max: mathMax} = Math;\n\nconst test1 = function test1() {\n const res = attempt(nativeIndexOf, [0, 1], 1, 2);\n\n return res.threw === false && res.value === -1;\n};\n\nconst test2 = function test2() {\n const res = attempt(nativeIndexOf, [0, 1], 1);\n\n return res.threw === false && res.value === 1;\n};\n\nconst test3 = function test3() {\n const res = attempt(nativeIndexOf, [0, -0], -0);\n\n return res.threw === false && res.value === 0;\n};\n\nconst test4 = function test4() {\n const testArr = [];\n testArr.length = 2;\n /* eslint-disable-next-line no-void */\n testArr[1] = void 0;\n /* eslint-disable-next-line no-void */\n const res = attempt(nativeIndexOf, testArr, void 0);\n\n return res.threw === false && res.value === 1;\n};\n\nconst test5 = function test5() {\n const res = attempt(nativeIndexOf, 'abc', 'c');\n\n return res.threw === false && res.value === 2;\n};\n\nconst test6 = function test6() {\n const args = (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })('a', 'b', 'c');\n\n const res = attempt(nativeIndexOf, args, 'c');\n\n return res.threw === false && res.value === 2;\n};\n\nconst isWorking = toBoolean(nativeIndexOf) && test1() && test2() && test3() && test4() && test5() && test6();\n\nexport const implementation = function indexOf(array, searchElement) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n const iterable = splitIfBoxedBug(object);\n const length = toLength(iterable.length);\n\n if (length === 0) {\n return -1;\n }\n\n let i = 0;\n\n if (arguments.length > 2) {\n /* eslint-disable-next-line prefer-rest-params */\n i = toInteger(arguments[2]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : mathMax(0, length + i);\n for (; i < length; i += 1) {\n if (i in iterable && iterable[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n};\n\nconst pIndexOf = isWorking ? nativeIndexOf : implementation;\n\n/**\n * This method returns an index in the array, if an element in the array\n * satisfies the provided testing function. Otherwise -1 is returned.\n *\n * @private\n * @param {Array} array - The array to search.\n * @param {*} searchElement - Element to locate in the array.\n * @param {number} fromIndex - The index to start the search at.\n * @param {Function} extendFn - The comparison function to use.\n * @returns {number} Returns index of found element, otherwise -1.\n */\nconst findIdxFrom = function findIndexFrom(array, searchElement, fromIndex, extendFn) {\n let fIdx = fromIndex;\n const length = toLength(array.length);\n while (fIdx < length) {\n if (fIdx in array && extendFn(array[fIdx], searchElement)) {\n return fIdx;\n }\n\n fIdx += 1;\n }\n\n return -1;\n};\n\n// eslint-disable jsdoc/check-param-names\n// noinspection JSCommentMatchesSignature\n/**\n * This method returns the first index at which a given element can be found\n * in the array, or -1 if it is not present.\n *\n * @param {Array} array - The array to search.\n * @throws {TypeError} If `array` is `null` or `undefined`.\n * @param {*} searchElement - Element to locate in the `array`.\n * @param {number} [fromIndex] - The index to start the search at. If the\n * index is greater than or equal to the array's length, -1 is returned,\n * which means the array will not be searched. If the provided index value is\n * a negative number, it is taken as the offset from the end of the array.\n * Note: if the provided index is negative, the array is still searched from\n * front to back. If the calculated index is less than 0, then the whole\n * array will be searched. Default: 0 (entire array is searched).\n * @param {string} [extend] - Extension type: `SameValue` or `SameValueZero`.\n * @returns {number} Returns index of found element, otherwise -1.\n */\n// eslint-enable jsdoc/check-param-names\nconst indexOf = function indexOf(array, searchElement) {\n const object = toObject(array);\n const iterable = splitIfBoxedBug(object);\n const length = toLength(iterable.length);\n\n if (length < 1) {\n return -1;\n }\n\n const argLength = arguments.length;\n /* eslint-disable-next-line prefer-rest-params */\n let extend = argLength > 2 && argLength > 3 ? arguments[3] : arguments[2];\n let extendFn;\n\n if (isString(extend)) {\n extend = extend.toLowerCase();\n\n if (extend === 'samevalue') {\n extendFn = sameValue;\n } else if (extend === 'samevaluezero') {\n extendFn = sameValueZero;\n }\n }\n\n let fromIndex = 0;\n\n if (extendFn && (searchElement === 0 || numberIsNaN(searchElement))) {\n if (argLength > 3) {\n /* eslint-disable-next-line prefer-rest-params */\n fromIndex = calcFromIndex(iterable, arguments[2]);\n\n if (fromIndex >= length) {\n return -1;\n }\n\n if (fromIndex < 0) {\n fromIndex = 0;\n }\n }\n\n if (fromIndex > 0) {\n return findIdxFrom(iterable, searchElement, fromIndex, extendFn);\n }\n\n return findIndex(iterable, (element, index) => {\n return index in iterable && extendFn(searchElement, element);\n });\n }\n\n if (argLength > 3 || (argLength > 2 && toBoolean(extendFn) === false)) {\n /* eslint-disable-next-line prefer-rest-params */\n fromIndex = calcFromIndex(iterable, arguments[2]);\n\n if (fromIndex >= length) {\n return -1;\n }\n\n if (fromIndex < 0) {\n fromIndex = 0;\n }\n }\n\n return pIndexOf(iterable, searchElement, fromIndex);\n};\n\nexport default indexOf;\n","import attempt from 'attempt-x';\nimport splitIfBoxedBug from 'split-if-boxed-bug-x';\nimport toLength from 'to-length-x';\nimport toObject from 'to-object-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport toBoolean from 'to-boolean-x';\nimport requireObjectCoercible from 'require-object-coercible-x';\nimport methodize from 'simple-methodize-x';\n\nconst rr = [].reduceRight;\nconst nativeReduceR = typeof rr === 'function' && methodize(rr);\n\nconst test1 = function test1() {\n return attempt(function attemptee() {\n return nativeReduceR([], function iteratee(acc) {\n return acc;\n });\n }).threw;\n};\n\nconst test2 = function test2() {\n const res = attempt(function attemptee() {\n return nativeReduceR(\n toObject('abc'),\n function iteratee(acc, c) {\n return acc + c;\n },\n 'x',\n );\n });\n\n return res.threw === false && res.value === 'xcba';\n};\n\nconst test3 = function test3() {\n const res = attempt(function attemptee() {\n const args = (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })(1, 2, 3);\n\n return nativeReduceR(\n args,\n function iteratee(acc, arg) {\n return acc + arg;\n },\n 1,\n );\n });\n\n return res.threw === false && res.value === 7;\n};\n\nconst test4 = function test4() {\n const res = attempt(function attemptee() {\n return nativeReduceR(\n {0: 1, 1: 2, 3: 3, 4: 4, length: 4},\n function iteratee(acc, arg) {\n return acc + arg;\n },\n 2,\n );\n });\n\n return res.threw === false && res.value === 8;\n};\n\nconst doc = typeof document !== 'undefined' && document;\n\nconst iteratee5 = function iteratee5(acc, node) {\n acc[acc.length] = node;\n\n return acc;\n};\n\nconst test5 = function test5() {\n if (doc) {\n const fragment = doc.createDocumentFragment();\n const div = doc.createElement('div');\n fragment.appendChild(div);\n\n const res = attempt(function attemptee() {\n return nativeReduceR(fragment.childNodes, iteratee5, []);\n });\n\n return res.threw === false && res.value.length === 1 && res.value[0] === div;\n }\n\n return true;\n};\n\nconst test6 = function test6() {\n const res = attempt(function attemptee() {\n return nativeReduceR('ab', function iteratee() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments[3];\n });\n });\n\n return res.threw === false && typeof res.value === 'object';\n};\n\n// ES5 15.4.4.22\n// http://es5.github.com/#x15.4.4.22\n// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight\nconst isWorking = toBoolean(nativeReduceR) && test1() && test2() && test3() && test4() && test5() && test6();\n\nconst patchedReduceRight = function reduceRight(array, callBack /* , initialValue */) {\n requireObjectCoercible(array);\n assertIsFunction(callBack);\n\n /* eslint-disable-next-line prefer-rest-params */\n return arguments.length > 2 ? nativeReduceR(array, callBack, arguments[2]) : nativeReduceR(array, callBack);\n};\n\nexport const implementation = function reduceRight(array, callBack /* , initialValue */) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n assertIsFunction(callBack);\n const iterable = splitIfBoxedBug(object);\n const length = toLength(iterable.length);\n const argsLength = arguments.length;\n\n // no value to return if no initial value, empty array\n if (length === 0 && argsLength < 3) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n let result;\n let i = length - 1;\n\n if (argsLength > 2) {\n /* eslint-disable-next-line prefer-rest-params,prefer-destructuring */\n result = arguments[2];\n } else {\n do {\n if (i in iterable) {\n result = iterable[i];\n i -= 1;\n break;\n }\n\n // if array contains no values, no initial value to return\n i -= 1;\n\n if (i < 0) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n } while (true); /* eslint-disable-line no-constant-condition */\n }\n\n while (i >= 0) {\n if (i in iterable) {\n result = callBack(result, iterable[i], i, object);\n }\n\n i -= 1;\n }\n\n return result;\n};\n\n/**\n * This method applies a function against an accumulator and each value of the\n * array (from right-to-left) to reduce it to a single value..\n *\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function to execute for each element.\n * @param {*} [initialValue] - Value to use as the first argument to the first\n * call of the callback. If no initial value is supplied, the first element in\n * the array will be used. Calling reduceRight on an empty array without an initial\n * value is an error.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n * @throws {TypeError} If called on an empty array without an initial value.\n * @returns {*} The value that results from the reduction.\n */\nconst $reduceRight = isWorking ? patchedReduceRight : implementation;\n\nexport default $reduceRight;\n","import defineProperties from 'object-define-properties-x';\nimport slice from 'array-slice-x';\nimport reduceRight from 'array-reduce-right-x';\nimport toBoolean from 'to-boolean-x';\n\nconst reducer = function _reducer(acc, digit) {\n return acc + digit;\n};\n\n/**\n * Serialise the counter´s current value.\n *\n * @private\n * @this BigCounter\n * @returns {string} A string representation of an integer.\n */\nconst counterToString = function ToString() {\n return reduceRight(this.count, reducer, '');\n};\n\n/**\n * Incremental integer counter. Counts from `0` to very big integers.\n * Javascript´s number type allows you to count in integer steps\n * from `0` to `9007199254740991`. As of ES5, Strings can contain\n * approximately 65000 characters and ES6 is supposed to handle\n * the `MAX_SAFE_INTEGER` (though I don´t believe any environments supports\n * this). This counter represents integer values as strings and can therefore\n * count in integer steps from `0` to the maximum string length (that´s some\n * 65000 digits). In the lower range, upto `9007199254740991`, the strings can\n * be converted to safe Javascript integers `Number(value)` or `+value`. This\n * counter is great for any applications that need a really big count\n * represented as a string, (an ID string).\n *\n * @class\n * @property {Array} count - A representation of a big number.\n */\nconst BigCounter = function BigCounter() {\n if (toBoolean(this) === false || !(this instanceof BigCounter)) {\n throw new TypeError('Constructor BigCounter requires \"new\"');\n }\n\n defineProperties(this, {\n count: {\n value: [0],\n },\n });\n};\n\ndefineProperties(BigCounter.prototype, {\n /**\n * Gets the counter´s current value.\n *\n * @function\n * @returns {string} A string representation of an integer.\n */\n get: {\n value: counterToString,\n },\n /**\n * Increments the counter´s value by `1`.\n *\n * @function\n * @returns {object} The counter object.\n */\n next: {\n value: function next() {\n const clone = slice(this.count);\n this.count.length = 0;\n const {length} = clone;\n const howMany = length > 0 ? length : 1;\n let carry = 0;\n let index = 0;\n while (index < howMany || carry) {\n const zi = carry + (clone[index] || 0) + (index === 0);\n this.count[this.count.length] = zi % 10;\n /* eslint-disable-next-line no-bitwise */\n carry = (zi / 10) >> 0; // floor\n index += 1;\n }\n\n return this;\n },\n },\n /**\n * Resets the counter back to `0`.\n *\n * @function\n * @returns {object} The counter object.\n */\n reset: {\n value: function reset() {\n this.count.length = 1;\n this.count[0] = 0;\n\n return this;\n },\n },\n /**\n * Gets the counter´s current value.\n *\n * @function\n * @returns {string} A string representation of an integer.\n */\n toJSON: {\n value: counterToString,\n },\n /**\n * Gets the counter´s current value.\n *\n * @function\n * @returns {string} A string representation of an integer.\n */\n toString: {\n value: counterToString,\n },\n /**\n * Gets the counter´s current value.\n *\n * @function\n * @returns {string} A string representation of an integer.\n */\n valueOf: {\n value: counterToString,\n },\n});\n\nexport default BigCounter;\n","import attempt from 'attempt-x';\nimport toObject from 'to-object-x';\nimport assertIsFunction from 'assert-is-function-x';\nimport requireObjectCoercible from 'require-object-coercible-x';\nimport any from 'array-any-x';\nimport toBoolean from 'to-boolean-x';\nimport methodize from 'simple-methodize-x';\nimport call from 'simple-call-x';\n\nconst ns = [].some;\nconst nativeSome = typeof ns === 'function' && methodize(ns);\n\nconst test1 = function test1() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeSome([1, 2], function spyAdd1(item) {\n spy += item;\n\n return false;\n });\n });\n\n return res.threw === false && res.value === false && spy === 3;\n};\n\nconst test2 = function test2() {\n let spy = '';\n const res = attempt(function attemptee() {\n return nativeSome(toObject('abc'), function spyAdd2(item, index) {\n spy += item;\n\n return index === 1;\n });\n });\n\n return res.threw === false && res.value === true && spy === 'ab';\n};\n\nconst test3 = function test3() {\n let spy = 0;\n const res = attempt(function attemptee() {\n const args = (function getArgs() {\n /* eslint-disable-next-line prefer-rest-params */\n return arguments;\n })(1, 2, 3);\n\n return nativeSome(args, function spyAdd3(item, index) {\n spy += item;\n\n return index === 2;\n });\n });\n\n return res.threw === false && res.value === true && spy === 6;\n};\n\nconst test4 = function test4() {\n let spy = 0;\n const res = attempt(function attemptee() {\n return nativeSome({0: 1, 1: 2, 3: 3, 4: 4, length: 4}, function spyAdd4(item) {\n spy += item;\n\n return false;\n });\n });\n\n return res.threw === false && res.value === false && spy === 6;\n};\n\nconst doc = typeof document !== 'undefined' && document;\n\nconst test5 = function test5() {\n if (doc) {\n let spy = null;\n const fragment = doc.createDocumentFragment();\n const div = doc.createElement('div');\n fragment.appendChild(div);\n const res = attempt(function attemptee() {\n return nativeSome(fragment.childNodes, function spyAssign(item) {\n spy = item;\n\n return item;\n });\n });\n\n return res.threw === false && res.value === true && spy === div;\n }\n\n return true;\n};\n\nconst isStrict = (function getIsStrict() {\n /* eslint-disable-next-line babel/no-invalid-this */\n return toBoolean(this) === false;\n})();\n\nconst test6 = function test6() {\n if (isStrict) {\n let spy = null;\n\n const thisTest = function thisTest() {\n /* eslint-disable-next-line babel/no-invalid-this */\n spy = typeof this === 'string';\n };\n\n const res = attempt(function attemptee() {\n return nativeSome([1], thisTest, 'x');\n });\n\n return res.threw === false && res.value === false && spy === true;\n }\n\n return true;\n};\n\nconst test7 = function test7() {\n const spy = {};\n const fn =\n 'return nativeSome(\"foo\", function (_, __, context) {' +\n 'if (castBoolean(context) === false || typeof context !== \"object\") {' +\n 'spy.value = true;}});';\n\n const res = attempt(function attemptee() {\n /* eslint-disable-next-line no-new-func */\n return Function('nativeSome', 'spy', 'castBoolean', fn)(nativeSome, spy, toBoolean);\n });\n\n return res.threw === false && res.value === false && spy.value !== true;\n};\n\nconst isWorking = toBoolean(nativeSome) && test1() && test2() && test3() && test4() && test5() && test6() && test7();\n\nconsole.log(isWorking);\n\nconst patchedSome = function some(array, callBack /* , thisArg */) {\n /* eslint-disable-next-line prefer-rest-params */\n return nativeSome(requireObjectCoercible(array), assertIsFunction(callBack), arguments[2]);\n};\n\n// ES5 15.4.4.17\n// http://es5.github.com/#x15.4.4.17\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some\nexport const implementation = function some(array, callBack /* , thisArg */) {\n const object = toObject(array);\n // If no callback function or if callback is not a callable function\n assertIsFunction(callBack);\n\n const iteratee = function iteratee() {\n /* eslint-disable-next-line prefer-rest-params */\n const i = arguments[1];\n\n /* eslint-disable-next-line prefer-rest-params */\n if (i in arguments[2]) {\n /* eslint-disable-next-line prefer-rest-params,babel/no-invalid-this */\n if (call(callBack, this, [arguments[0], i, object])) {\n return true;\n }\n }\n\n return false;\n };\n\n /* eslint-disable-next-line prefer-rest-params */\n return any(object, iteratee, arguments[2]);\n};\n\n/**\n * This method tests whether some element in the array passes the test\n * implemented by the provided function.\n *\n * @param {Array} array - The array to iterate over.\n * @param {Function} callBack - Function to test for each element.\n * @param {*} [thisArg] - Value to use as this when executing callback.\n * @throws {TypeError} If array is null or undefined.\n * @throws {TypeError} If callBack is not a function.\n * @returns {boolean} `true` if the callback function returns a truthy value for\n * any array element; otherwise, `false`.\n */\nconst $some = isWorking ? patchedSome : implementation;\n\nexport default $some;\n","import hasSymbolSupport from 'has-symbol-support-x';\nimport isNil from 'is-nil-x';\n\nconst ES6_SHIM_ITERATOR = '_es6-shim iterator_';\nconst AT_AT_ITERATOR = '@@iterator';\n/* eslint-disable-next-line compat/compat */\nconst hasRealSymbolIterator = hasSymbolSupport && typeof Symbol.iterator === 'symbol';\n/* eslint-disable-next-line compat/compat */\nconst hasFakeSymbolIterator = typeof Symbol === 'object' && Symbol !== null && typeof Symbol.iterator === 'string';\nconst hasSymbolIterator = hasRealSymbolIterator || hasFakeSymbolIterator;\n\nconst getOtherSymbolIterator = function getOtherSymbolIterator(iterable) {\n if (iterable[ES6_SHIM_ITERATOR]) {\n return ES6_SHIM_ITERATOR;\n }\n\n if (iterable[AT_AT_ITERATOR]) {\n return AT_AT_ITERATOR;\n }\n\n return null;\n};\n\nconst getSymIt = function getSymIt() {\n if (hasSymbolIterator) {\n /* eslint-disable-next-line compat/compat */\n return Symbol.iterator;\n }\n\n const result = getOtherSymbolIterator([]);\n\n if (typeof result === 'string' && typeof [][result] === 'function') {\n return result;\n }\n\n return AT_AT_ITERATOR;\n};\n\n/**\n * Whenever an object needs to be iterated (such as at the beginning of a for..of loop),\n * its @@iterator method is called with no arguments, and the returned iterator is used\n * to obtain the values to be iterated.\n *\n * Possible values are.\n *\n * Symbol.iterator\n * '_es6-shim iterator_'\n * '@@iterator'.\n *\n * @type {symbol|string}\n */\nconst $iterator$ = getSymIt();\n\n/**\n * Detect an iterator function.\n *\n * @private\n * @param {*} iterable - Value to detect iterator function.\n * @returns {symbol|string|undefined} The iterator property identifier.\n */\nexport const getSymbolIterator = function getSymbolIterator(iterable) {\n if (isNil(iterable) === false) {\n if (hasSymbolIterator && iterable[$iterator$]) {\n return $iterator$;\n }\n\n const result = getOtherSymbolIterator(iterable);\n\n if (typeof result === 'string') {\n return result;\n }\n }\n\n /* eslint-disable-next-line no-void */\n return void 0;\n};\n\nexport default $iterator$;\n","import hasSymbolSupport from 'has-symbol-support-x';\n\n/**\n * The species accessor property allows subclasses to override the default constructor for objects.\n *\n * Possible values are.\n *\n * Symbol.species\n * '@@species'.\n *\n * @type {symbol|string}\n */\nconst symbolSpecies = (hasSymbolSupport && Symbol.species) || '@@species'; /* eslint-disable-line compat/compat */\n\nexport default symbolSpecies;\n","import attempt from 'attempt-x';\nimport isPrimitive from 'is-primitive-x';\nimport defineProperties from 'object-define-properties-x';\nimport toBoolean from 'to-boolean-x';\n\nconst ObjectCtr = {}.constructor;\nconst nCreate = ObjectCtr.create;\nconst nativeCreate = typeof nCreate === 'function' && nCreate;\n\nconst test1 = function test1() {\n const res = attempt(nativeCreate, null);\n\n return res.threw === false && res.value && typeof res.value === 'object';\n};\n\nconst test2 = function test2() {\n const res = attempt(nativeCreate, null);\n\n // noinspection LoopStatementThatDoesntLoopJS\n for (const _ in res.value) /* eslint-disable-line guard-for-in,no-restricted-syntax */ {\n return false;\n }\n\n return true;\n};\n\nconst test3 = function test3() {\n const res = attempt(nativeCreate, null, {test: {value: true}});\n\n return res.threw === false && res.value && typeof res.value === 'object' && res.value.test === true;\n};\n\nconst getShapes = function getShapes() {\n // Shape - superclass\n const Shape = function Shape() {\n // noinspection JSUnusedGlobalSymbols\n this.x = 0;\n // noinspection JSUnusedGlobalSymbols\n this.y = 0;\n };\n\n // superclass method\n Shape.prototype.move = function move(x, y) {\n // noinspection JSUnusedGlobalSymbols\n this.x += x;\n // noinspection JSUnusedGlobalSymbols\n this.y += y;\n\n return 'Shape moved.';\n };\n\n // Rectangle - subclass\n const Rectangle = function Rectangle() {\n Shape.call(this); // call super constructor.\n };\n\n return {Shape, Rectangle};\n};\n\nconst test4 = function test4() {\n const {Shape} = getShapes();\n const res = attempt(nativeCreate, Shape.prototype);\n\n return res.threw === false && res.value && typeof res.value === 'object';\n};\n\nconst test5 = function test5() {\n const {Shape, Rectangle} = getShapes();\n const res = attempt(nativeCreate, Shape.prototype);\n // subclass extends superclass\n Rectangle.prototype = res.value;\n Rectangle.prototype.constructor = Rectangle;\n\n const rect = new Rectangle();\n\n return rect instanceof Rectangle;\n};\n\nconst test6 = function test6() {\n const {Shape, Rectangle} = getShapes();\n const res = attempt(nativeCreate, Shape.prototype);\n // subclass extends superclass\n Rectangle.prototype = res.value;\n Rectangle.prototype.constructor = Rectangle;\n\n const rect = new Rectangle();\n\n return rect instanceof Shape;\n};\n\nconst test7 = function test7() {\n const {Shape, Rectangle} = getShapes();\n const res = attempt(nativeCreate, Shape.prototype);\n // subclass extends superclass\n Rectangle.prototype = res.value;\n Rectangle.prototype.constructor = Rectangle;\n\n const rect = new Rectangle();\n\n return rect.move(1, 1) === 'Shape moved.';\n};\n\nconst isWorking = toBoolean(nativeCreate) && test1() && test2() && test3() && test4() && test5() && test6() && test7();\n\n/**\n * This method method creates a new object with the specified prototype object and properties.\n *\n * @param {*} prototype - The object which should be the prototype of the newly-created object.\n * @param {*} [properties] - If specified and not undefined, an object whose enumerable own properties\n * (that is, those properties defined upon itself and not enumerable properties along its prototype chain)\n * specify property descriptors to be added to the newly-created object, with the corresponding property names.\n * @throws {TypeError} If the properties parameter isn't null or an object.\n * @returns {boolean} A new object with the specified prototype object and properties.\n */\nconst doc = typeof document !== 'undefined' && document;\nconst supportsProto = toBoolean({__proto__: null} instanceof ObjectCtr) === false;\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\nconst shouldUseActiveX = function shouldUseActiveX() {\n // return early if document.domain not set\n if (toBoolean(doc.domain) === false) {\n return false;\n }\n\n const result = attempt(function attemptee() {\n /* eslint-disable-next-line no-undef */\n return new ActiveXObject('htmlfile');\n });\n\n return result.threw === false && Boolean(result.value);\n};\n\n// This supports IE8 when document.domain is used\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\nconst getEmptyViaActiveX = function getEmptyViaActiveX() {\n /* eslint-disable-next-line no-undef */\n let xDoc = new ActiveXObject('htmlfile');\n /* eslint-disable-next-line no-useless-escape,prettier/prettier */\n xDoc.write('