diff --git a/doric-cli/assets-lib/example/package.json b/doric-cli/assets-lib/example/package.json index 9a00b351..ddc5046d 100644 --- a/doric-cli/assets-lib/example/package.json +++ b/doric-cli/assets-lib/example/package.json @@ -12,11 +12,19 @@ }, "license": "Apache-2.0", "dependencies": { - "reflect-metadata": "^0.1.13", "rollup": "^2.24.0", "typescript": "^4.2.2", "__$__": "file:../" }, + "devDependencies": { + "typescript": "^4.2.2", + "rollup": "^2.24.0", + "@rollup/plugin-buble": "^0.21.3", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-image": "^2.0.5", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^8.4.0" + }, "optionalDependencies": { "ios-deploy": "^1.11.4" } diff --git a/doric-cli/assets-lib/package.json b/doric-cli/assets-lib/package.json index 422fe4d4..ab6b9640 100644 --- a/doric-cli/assets-lib/package.json +++ b/doric-cli/assets-lib/package.json @@ -13,12 +13,11 @@ "license": "Apache-2.0", "dependencies": { "doric": ">=__$Version__", - "doric-cli": ">=__$Version__", - "reflect-metadata": "^0.1.13", - "rollup": "^2.24.0", - "typescript": "^4.2.2" + "doric-cli": ">=__$Version__" }, "devDependencies": { + "typescript": "^4.2.2", + "rollup": "^2.24.0", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-image": "^2.0.5", diff --git a/doric-cli/assets/_package.json b/doric-cli/assets/_package.json index 3ea3cb81..2d417ce5 100644 --- a/doric-cli/assets/_package.json +++ b/doric-cli/assets/_package.json @@ -13,12 +13,11 @@ "license": "Apache-2.0", "dependencies": { "doric": "__$Version__", - "doric-cli": "__$Version__", - "reflect-metadata": "^0.1.13", - "rollup": "^2.24.0", - "typescript": "^4.2.2" + "doric-cli": "__$Version__" }, "devDependencies": { + "typescript": "^4.2.2", + "rollup": "^2.40.0", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-image": "^2.0.5", diff --git a/doric-cli/package.json b/doric-cli/package.json index 05fb066c..cadef926 100644 --- a/doric-cli/package.json +++ b/doric-cli/package.json @@ -33,10 +33,9 @@ "inquirer": "^8.0.0", "keypress": "^0.2.1", "qrcode-terminal": "^0.12.0", - "rollup": "^2.24.0", + "rollup": "^2.40.0", "shelljs": "^0.8.4", "source-map-merger": "^0.2.0", - "typescript": "^4.2.2", "ws": "^7.4.3", "xml-js": "^1.6.11" }, @@ -44,6 +43,7 @@ "registry": "https://registry.npmjs.org" }, "devDependencies": { + "typescript": "^4.2.2", "@types/glob": "^7.1.3", "@types/inquirer": "^7.3.1", "@types/node": "^14.14.25", diff --git a/doric-demo/package.json b/doric-demo/package.json index 4303b5d1..5a3d6b50 100644 --- a/doric-demo/package.json +++ b/doric-demo/package.json @@ -11,13 +11,11 @@ "license": "Apache-2.0", "dependencies": { "doric": "file:../doric-js", - "doric-cli": "file:../doric-cli", - "reflect-metadata": "^0.1.13", - "rollup": "^2.24.0", - "tslib": "^2.1.0", - "typescript": "^4.2.2" + "doric-cli": "file:../doric-cli" }, "devDependencies": { + "typescript": "^4.2.2", + "rollup": "^2.40.0", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-commonjs": "^14.0.0", "@rollup/plugin-image": "^2.0.5", diff --git a/doric-js/bundle/doric-lib.es5.js b/doric-js/bundle/doric-lib.es5.js index a12f0523..52fa40d7 100644 --- a/doric-js/bundle/doric-lib.es5.js +++ b/doric-js/bundle/doric-lib.es5.js @@ -1115,10 +1115,14 @@ var __read$2 = (undefined && undefined.__read) || function (o, n) { } return ar; }; -var __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from) { - for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) - { to[j] = from[i]; } - return to; +var __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) { for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) { ar = Array.prototype.slice.call(from, 0, i); } + ar[i] = from[i]; + } + } } + return to.concat(ar || Array.prototype.slice.call(from)); }; function NativeCall(target, propertyKey, descriptor) { var originVal = descriptor.value; @@ -1263,7 +1267,7 @@ var Panel = /** @class */ (function () { return this.renderSnapshots.length; }; Panel.prototype.__restoreRenderSnapshot__ = function (idx) { - return __spreadArray$2([], __read$2(this.renderSnapshots)).slice(0, idx); + return __spreadArray$2([], __read$2(this.renderSnapshots), false).slice(0, idx); }; Panel.prototype.__enableSnapshot__ = function () { this.snapshotEnabled = true; @@ -2391,10 +2395,14 @@ var __read$1 = (undefined && undefined.__read) || function (o, n) { } return ar; }; -var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from) { - for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) - { to[j] = from[i]; } - return to; +var __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) { for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) { ar = Array.prototype.slice.call(from, 0, i); } + ar[i] = from[i]; + } + } } + return to.concat(ar || Array.prototype.slice.call(from)); }; var ListItem = /** @class */ (function (_super) { __extends$c(ListItem, _super); @@ -2421,7 +2429,7 @@ var List = /** @class */ (function (_super) { return _this; } List.prototype.allSubviews = function () { - var ret = __spreadArray$1([], __read$1(this.cachedViews.values())); + var ret = __spreadArray$1([], __read$1(this.cachedViews.values()), false); if (this.loadMoreView) { ret.push(this.loadMoreView); } @@ -3006,10 +3014,14 @@ var __read = (undefined && undefined.__read) || function (o, n) { } return ar; }; -var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) { - for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) - { to[j] = from[i]; } - return to; +var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) { for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) { ar = Array.prototype.slice.call(from, 0, i); } + ar[i] = from[i]; + } + } } + return to.concat(ar || Array.prototype.slice.call(from)); }; var FlowLayoutItem = /** @class */ (function (_super) { __extends$7(FlowLayoutItem, _super); @@ -3037,7 +3049,7 @@ var FlowLayout = /** @class */ (function (_super) { return _this; } FlowLayout.prototype.allSubviews = function () { - var ret = __spreadArray([], __read(this.cachedViews.values())); + var ret = __spreadArray([], __read(this.cachedViews.values()), false); if (this.loadMoreView) { ret.push(this.loadMoreView); } @@ -3671,7 +3683,8 @@ function navigator(context) { config.extra = JSON.stringify(config.extra); } return context.callNative(moduleName, 'push', { - source: source, config: config + source: source, + config: config }); }, pop: function (animated) { diff --git a/doric-js/bundle/doric-sandbox.es5.js b/doric-js/bundle/doric-sandbox.es5.js index f8e9e0e9..7b40ac7a 100644 --- a/doric-js/bundle/doric-sandbox.es5.js +++ b/doric-js/bundle/doric-sandbox.es5.js @@ -1592,19 +1592,25 @@ var doric = (function (exports) { return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); - var $propertyIsEnumerable$1 = {}.propertyIsEnumerable; + var call$2 = Function.prototype.call; + + var functionCall = call$2.bind ? call$2.bind(call$2) : function () { + return call$2.apply(call$2, arguments); + }; + + var $propertyIsEnumerable$2 = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor$8 = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug - var NASHORN_BUG = getOwnPropertyDescriptor$8 && !$propertyIsEnumerable$1.call({ 1: 2 }, 1); + var NASHORN_BUG = getOwnPropertyDescriptor$8 && !$propertyIsEnumerable$2.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable var f$7 = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor$8(this, V); return !!descriptor && descriptor.enumerable; - } : $propertyIsEnumerable$1; + } : $propertyIsEnumerable$2; var objectPropertyIsEnumerable = { f: f$7 @@ -1619,27 +1625,44 @@ var doric = (function (exports) { }; }; - var toString$1 = {}.toString; + var FunctionPrototype$4 = Function.prototype; + var bind$3 = FunctionPrototype$4.bind; + var call$1 = FunctionPrototype$4.call; + var callBind = bind$3 && bind$3.bind(call$1); - var classofRaw = function (it) { - return toString$1.call(it).slice(8, -1); + var functionUncurryThis = bind$3 ? function (fn) { + return fn && callBind(call$1, fn); + } : function (fn) { + return fn && function () { + return call$1.apply(fn, arguments); + }; }; - var split = ''.split; + var toString$1 = functionUncurryThis({}.toString); + var stringSlice$g = functionUncurryThis(''.slice); + + var classofRaw = function (it) { + return stringSlice$g(toString$1(it), 8, -1); + }; + + var Object$7 = global_1.Object; + var split$4 = functionUncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings var indexedObject = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe - return !Object('z').propertyIsEnumerable(0); + return !Object$7('z').propertyIsEnumerable(0); }) ? function (it) { - return classofRaw(it) == 'String' ? split.call(it, '') : Object(it); - } : Object; + return classofRaw(it) == 'String' ? split$4(it, '') : Object$7(it); + } : Object$7; + + var TypeError$F = global_1.TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible var requireObjectCoercible = function (it) { - if (it == undefined) { throw TypeError("Can't call method on " + it); } + if (it == undefined) { throw TypeError$F("Can't call method on " + it); } return it; }; @@ -1651,41 +1674,222 @@ var doric = (function (exports) { return indexedObject(requireObjectCoercible(it)); }; - var isObject = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + var isCallable = function (argument) { + return typeof argument == 'function'; }; - // `ToPrimitive` abstract operation - // https://tc39.es/ecma262/#sec-toprimitive - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - var toPrimitive = function (input, PREFERRED_STRING) { - if (!isObject(input)) { return input; } - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) { return val; } - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) { return val; } - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) { return val; } - throw TypeError("Can't convert object to primitive value"); + var isObject = function (it) { + return typeof it == 'object' ? it !== null : isCallable(it); }; + var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; + }; + + var getBuiltIn = function (namespace, method) { + return arguments.length < 2 ? aFunction(global_1[namespace]) : global_1[namespace] && global_1[namespace][method]; + }; + + var objectIsPrototypeOf = functionUncurryThis({}.isPrototypeOf); + + var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; + + var process$5 = global_1.process; + var Deno = global_1.Deno; + var versions = process$5 && process$5.versions || Deno && Deno.version; + var v8 = versions && versions.v8; + var match, version; + + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } + + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version && engineUserAgent) { + match = engineUserAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = engineUserAgent.match(/Chrome\/(\d+)/); + if (match) { version = +match[1]; } + } + } + + var engineV8Version = version; + + /* eslint-disable es/no-symbol -- required for testing */ + + + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { + var symbol = Symbol(); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + return !String(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && engineV8Version && engineV8Version < 41; + }); + + /* eslint-disable es/no-symbol -- required for testing */ + + + var useSymbolAsUid = nativeSymbol + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; + + var Object$6 = global_1.Object; + + var isSymbol = useSymbolAsUid ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn('Symbol'); + return isCallable($Symbol) && objectIsPrototypeOf($Symbol.prototype, Object$6(it)); + }; + + var String$6 = global_1.String; + + var tryToString = function (argument) { + try { + return String$6(argument); + } catch (error) { + return 'Object'; + } + }; + + var TypeError$E = global_1.TypeError; + + // `Assert: IsCallable(argument) is true` + var aCallable = function (argument) { + if (isCallable(argument)) { return argument; } + throw TypeError$E(tryToString(argument) + ' is not a function'); + }; + + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod = function (V, P) { + var func = V[P]; + return func == null ? undefined : aCallable(func); + }; + + var TypeError$D = global_1.TypeError; + + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = functionCall(fn, input))) { return val; } + if (isCallable(fn = input.valueOf) && !isObject(val = functionCall(fn, input))) { return val; } + if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = functionCall(fn, input))) { return val; } + throw TypeError$D("Can't convert object to primitive value"); + }; + + var isPure = false; + + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$f = Object.defineProperty; + + var setGlobal = function (key, value) { + try { + defineProperty$f(global_1, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global_1[key] = value; + } return value; + }; + + var SHARED = '__core-js_shared__'; + var store$3 = global_1[SHARED] || setGlobal(SHARED, {}); + + var sharedStore = store$3; + + var shared = createCommonjsModule(function (module) { + (module.exports = function (key, value) { + return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: '3.19.0', + mode: 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' + }); + }); + + var Object$5 = global_1.Object; + // `ToObject` abstract operation // https://tc39.es/ecma262/#sec-toobject var toObject = function (argument) { - return Object(requireObjectCoercible(argument)); + return Object$5(requireObjectCoercible(argument)); }; - var hasOwnProperty = {}.hasOwnProperty; + var hasOwnProperty = functionUncurryThis({}.hasOwnProperty); - var has$1 = Object.hasOwn || function hasOwn(it, key) { - return hasOwnProperty.call(toObject(it), key); + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty(toObject(it), key); + }; + + var id$1 = 0; + var postfix = Math.random(); + var toString = functionUncurryThis(1.0.toString); + + var uid = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id$1 + postfix, 36); + }; + + var WellKnownSymbolsStore$1 = shared('wks'); + var Symbol$3 = global_1.Symbol; + var symbolFor = Symbol$3 && Symbol$3['for']; + var createWellKnownSymbol = useSymbolAsUid ? Symbol$3 : Symbol$3 && Symbol$3.withoutSetter || uid; + + var wellKnownSymbol = function (name) { + if (!hasOwnProperty_1(WellKnownSymbolsStore$1, name) || !(nativeSymbol || typeof WellKnownSymbolsStore$1[name] == 'string')) { + var description = 'Symbol.' + name; + if (nativeSymbol && hasOwnProperty_1(Symbol$3, name)) { + WellKnownSymbolsStore$1[name] = Symbol$3[name]; + } else if (useSymbolAsUid && symbolFor) { + WellKnownSymbolsStore$1[name] = symbolFor(description); + } else { + WellKnownSymbolsStore$1[name] = createWellKnownSymbol(description); + } + } return WellKnownSymbolsStore$1[name]; + }; + + var TypeError$C = global_1.TypeError; + var TO_PRIMITIVE$2 = wellKnownSymbol('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive = function (input, pref) { + if (!isObject(input) || isSymbol(input)) { return input; } + var exoticToPrim = getMethod(input, TO_PRIMITIVE$2); + var result; + if (exoticToPrim) { + if (pref === undefined) { pref = 'default'; } + result = functionCall(exoticToPrim, input, pref); + if (!isObject(result) || isSymbol(result)) { return result; } + throw TypeError$C("Can't convert object to primitive value"); + } + if (pref === undefined) { pref = 'number'; } + return ordinaryToPrimitive(input, pref); + }; + + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey = function (argument) { + var key = toPrimitive(argument, 'string'); + return isSymbol(key) ? key : key + ''; }; var document$3 = global_1.document; // typeof document.createElement is 'object' in old IE - var EXISTS = isObject(document$3) && isObject(document$3.createElement); + var EXISTS$1 = isObject(document$3) && isObject(document$3.createElement); var documentCreateElement = function (it) { - return EXISTS ? document$3.createElement(it) : {}; + return EXISTS$1 ? document$3.createElement(it) : {}; }; // Thank's IE8 for his funny defineProperty @@ -1703,23 +1907,27 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor var f$6 = descriptors ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); - P = toPrimitive(P, true); + P = toPropertyKey(P); if (ie8DomDefine) { try { return $getOwnPropertyDescriptor$1(O, P); } catch (error) { /* empty */ } } - if (has$1(O, P)) { return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]); } + if (hasOwnProperty_1(O, P)) { return createPropertyDescriptor(!functionCall(objectPropertyIsEnumerable.f, O, P), O[P]); } }; var objectGetOwnPropertyDescriptor = { f: f$6 }; - var anObject = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } return it; + var String$5 = global_1.String; + var TypeError$B = global_1.TypeError; + + // `Assert: Type(argument) is Object` + var anObject = function (argument) { + if (isObject(argument)) { return argument; } + throw TypeError$B(String$5(argument) + ' is not an object'); }; + var TypeError$A = global_1.TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty$1 = Object.defineProperty; @@ -1727,12 +1935,12 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-object.defineproperty var f$5 = descriptors ? $defineProperty$1 : function defineProperty(O, P, Attributes) { anObject(O); - P = toPrimitive(P, true); + P = toPropertyKey(P); anObject(Attributes); if (ie8DomDefine) { try { return $defineProperty$1(O, P, Attributes); } catch (error) { /* empty */ } } - if ('get' in Attributes || 'set' in Attributes) { throw TypeError('Accessors not supported'); } + if ('get' in Attributes || 'set' in Attributes) { throw TypeError$A('Accessors not supported'); } if ('value' in Attributes) { O[P] = Attributes.value; } return O; }; @@ -1748,52 +1956,20 @@ var doric = (function (exports) { return object; }; - var setGlobal = function (key, value) { - try { - createNonEnumerableProperty(global_1, key, value); - } catch (error) { - global_1[key] = value; - } return value; - }; - - var SHARED = '__core-js_shared__'; - var store$3 = global_1[SHARED] || setGlobal(SHARED, {}); - - var sharedStore = store$3; - - var functionToString = Function.toString; + var functionToString$1 = functionUncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper - if (typeof sharedStore.inspectSource != 'function') { + if (!isCallable(sharedStore.inspectSource)) { sharedStore.inspectSource = function (it) { - return functionToString.call(it); + return functionToString$1(it); }; } var inspectSource = sharedStore.inspectSource; - var WeakMap$2 = global_1.WeakMap; + var WeakMap$4 = global_1.WeakMap; - var nativeWeakMap = typeof WeakMap$2 === 'function' && /native code/.test(inspectSource(WeakMap$2)); - - var isPure = false; - - var shared = createCommonjsModule(function (module) { - (module.exports = function (key, value) { - return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {}); - })('versions', []).push({ - version: '3.14.0', - mode: 'global', - copyright: '© 2021 Denis Pushkarev (zloirock.ru)' - }); - }); - - var id$1 = 0; - var postfix = Math.random(); - - var uid = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id$1 + postfix).toString(36); - }; + var nativeWeakMap = isCallable(WeakMap$4) && /native code/.test(inspectSource(WeakMap$4)); var keys$3 = shared('keys'); @@ -1804,7 +1980,8 @@ var doric = (function (exports) { var hiddenKeys$1 = {}; var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; - var WeakMap$1 = global_1.WeakMap; + var TypeError$z = global_1.TypeError; + var WeakMap$3 = global_1.WeakMap; var set$3, get$2, has; var enforce = function (it) { @@ -1815,42 +1992,42 @@ var doric = (function (exports) { return function (it) { var state; if (!isObject(it) || (state = get$2(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + throw TypeError$z('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (nativeWeakMap || sharedStore.state) { - var store$2 = sharedStore.state || (sharedStore.state = new WeakMap$1()); - var wmget = store$2.get; - var wmhas = store$2.has; - var wmset = store$2.set; + var store$2 = sharedStore.state || (sharedStore.state = new WeakMap$3()); + var wmget = functionUncurryThis(store$2.get); + var wmhas = functionUncurryThis(store$2.has); + var wmset = functionUncurryThis(store$2.set); set$3 = function (it, metadata) { - if (wmhas.call(store$2, it)) { throw new TypeError(OBJECT_ALREADY_INITIALIZED); } + if (wmhas(store$2, it)) { throw new TypeError$z(OBJECT_ALREADY_INITIALIZED); } metadata.facade = it; - wmset.call(store$2, it, metadata); + wmset(store$2, it, metadata); return metadata; }; get$2 = function (it) { - return wmget.call(store$2, it) || {}; + return wmget(store$2, it) || {}; }; has = function (it) { - return wmhas.call(store$2, it); + return wmhas(store$2, it); }; } else { var STATE = sharedKey('state'); hiddenKeys$1[STATE] = true; set$3 = function (it, metadata) { - if (has$1(it, STATE)) { throw new TypeError(OBJECT_ALREADY_INITIALIZED); } + if (hasOwnProperty_1(it, STATE)) { throw new TypeError$z(OBJECT_ALREADY_INITIALIZED); } metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get$2 = function (it) { - return has$1(it, STATE) ? it[STATE] : {}; + return hasOwnProperty_1(it, STATE) ? it[STATE] : {}; }; has = function (it) { - return has$1(it, STATE); + return hasOwnProperty_1(it, STATE); }; } @@ -1862,7 +2039,24 @@ var doric = (function (exports) { getterFor: getterFor }; + var FunctionPrototype$3 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = descriptors && Object.getOwnPropertyDescriptor; + + var EXISTS = hasOwnProperty_1(FunctionPrototype$3, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!descriptors || (descriptors && getDescriptor(FunctionPrototype$3, 'name').configurable)); + + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; + var redefine = createCommonjsModule(function (module) { + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var getInternalState = internalState.get; var enforceInternalState = internalState.enforce; var TEMPLATE = String(String).split('String'); @@ -1871,14 +2065,18 @@ var doric = (function (exports) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; + var name = options && options.name !== undefined ? options.name : key; var state; - if (typeof value == 'function') { - if (typeof key == 'string' && !has$1(value, 'name')) { - createNonEnumerableProperty(value, 'name', key); + if (isCallable(value)) { + if (String(name).slice(0, 7) === 'Symbol(') { + name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; + } + if (!hasOwnProperty_1(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { + createNonEnumerableProperty(value, 'name', name); } state = enforceInternalState(value); if (!state.source) { - state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); } } if (O === global_1) { @@ -1894,28 +2092,30 @@ var doric = (function (exports) { else { createNonEnumerableProperty(O, key, value); } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); + return isCallable(this) && getInternalState(this).source || inspectSource(this); }); }); - var path = global_1; - - var aFunction$1 = function (variable) { - return typeof variable == 'function' ? variable : undefined; - }; - - var getBuiltIn = function (namespace, method) { - return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global_1[namespace]) - : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method]; - }; - var ceil$2 = Math.ceil; var floor$a = Math.floor; - // `ToInteger` abstract operation - // https://tc39.es/ecma262/#sec-tointeger - var toInteger = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$a : ceil$2)(argument); + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- safe + return number !== number || number === 0 ? 0 : (number > 0 ? floor$a : ceil$2)(number); + }; + + var max$6 = Math.max; + var min$a = Math.min; + + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex = function (index, length) { + var integer = toIntegerOrInfinity(index); + return integer < 0 ? max$6(integer + length, 0) : min$a(integer, length); }; var min$9 = Math.min; @@ -1923,25 +2123,20 @@ var doric = (function (exports) { // `ToLength` abstract operation // https://tc39.es/ecma262/#sec-tolength var toLength = function (argument) { - return argument > 0 ? min$9(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + return argument > 0 ? min$9(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; - var max$5 = Math.max; - var min$8 = Math.min; - - // Helper for a popular repeating case of the spec: - // Let integer be ? ToInteger(index). - // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). - var toAbsoluteIndex = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max$5(integer + length, 0) : min$8(integer, length); + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike = function (obj) { + return toLength(obj.length); }; // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod$8 = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); - var length = toLength(O.length); + var length = lengthOfArrayLike(O); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm @@ -1966,18 +2161,20 @@ var doric = (function (exports) { indexOf: createMethod$8(false) }; - var indexOf = arrayIncludes.indexOf; + var indexOf$2 = arrayIncludes.indexOf; + var push$j = functionUncurryThis([].push); + var objectKeysInternal = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; - for (key in O) { !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key); } + for (key in O) { !hasOwnProperty_1(hiddenKeys$1, key) && hasOwnProperty_1(O, key) && push$j(result, key); } // Don't enum bug & hidden keys - while (names.length > i) { if (has$1(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); + while (names.length > i) { if (hasOwnProperty_1(O, key = names[i++])) { + ~indexOf$2(result, key) || push$j(result, key); } } return result; }; @@ -2013,11 +2210,13 @@ var doric = (function (exports) { f: f$3 }; + var concat$4 = functionUncurryThis([].concat); + // all object keys, includes non-enumerable and symbols var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = objectGetOwnPropertyNames.f(anObject(it)); var getOwnPropertySymbols = objectGetOwnPropertySymbols.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + return getOwnPropertySymbols ? concat$4(keys, getOwnPropertySymbols(it)) : keys; }; var copyConstructorProperties = function (target, source) { @@ -2026,7 +2225,7 @@ var doric = (function (exports) { var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; - if (!has$1(target, key)) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } + if (!hasOwnProperty_1(target, key)) { defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } } }; @@ -2036,7 +2235,7 @@ var doric = (function (exports) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false - : typeof detection == 'function' ? fails(detection) + : isCallable(detection) ? fails(detection) : !!detection; }; @@ -2070,6 +2269,7 @@ var doric = (function (exports) { options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key */ var _export = function (options, source) { var TARGET = options.target; @@ -2092,7 +2292,7 @@ var doric = (function (exports) { FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) { continue; } + if (typeof sourceProperty == typeof targetProperty) { continue; } copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills @@ -2104,52 +2304,60 @@ var doric = (function (exports) { } } }; - var engineUserAgent = getBuiltIn('navigator', 'userAgent') || ''; + var FunctionPrototype$2 = Function.prototype; + var apply = FunctionPrototype$2.apply; + var bind$2 = FunctionPrototype$2.bind; + var call = FunctionPrototype$2.call; - var process$5 = global_1.process; - var versions = process$5 && process$5.versions; - var v8 = versions && versions.v8; - var match, version; - - if (v8) { - match = v8.split('.'); - version = match[0] < 4 ? 1 : match[0] + match[1]; - } else if (engineUserAgent) { - match = engineUserAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = engineUserAgent.match(/Chrome\/(\d+)/); - if (match) { version = match[1]; } - } - } - - var engineV8Version = version && +version; - - /* eslint-disable es/no-symbol -- required for testing */ - - - - // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing - var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { - var symbol = Symbol(); - // Chrome 38 Symbol has incorrect toString conversion - // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances - return !String(symbol) || !(Object(symbol) instanceof Symbol) || - // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances - !Symbol.sham && engineV8Version && engineV8Version < 41; + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (bind$2 ? call.bind(apply) : function () { + return call.apply(apply, arguments); }); - /* eslint-disable es/no-symbol -- required for testing */ - - - var useSymbolAsUid = nativeSymbol - && !Symbol.sham - && typeof Symbol.iterator == 'symbol'; - // `IsArray` abstract operation // https://tc39.es/ecma262/#sec-isarray // eslint-disable-next-line es/no-array-isarray -- safe - var isArray = Array.isArray || function isArray(arg) { - return classofRaw(arg) == 'Array'; + var isArray = Array.isArray || function isArray(argument) { + return classofRaw(argument) == 'Array'; + }; + + var TO_STRING_TAG$8 = wellKnownSymbol('toStringTag'); + var test$2 = {}; + + test$2[TO_STRING_TAG$8] = 'z'; + + var toStringTagSupport = String(test$2) === '[object z]'; + + var TO_STRING_TAG$7 = wellKnownSymbol('toStringTag'); + var Object$4 = global_1.Object; + + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; + + // getting tag from ES6+ `Object.prototype.toString` + var classof = toStringTagSupport ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = Object$4(it), TO_STRING_TAG$7)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; + }; + + var String$4 = global_1.String; + + var toString_1 = function (argument) { + if (classof(argument) === 'Symbol') { throw TypeError('Cannot convert a Symbol value to a string'); } + return String$4(argument); }; // `Object.keys` method @@ -2164,16 +2372,26 @@ var doric = (function (exports) { // eslint-disable-next-line es/no-object-defineproperties -- safe var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); + var props = toIndexedObject(Properties); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; - while (length > index) { objectDefineProperty.f(O, key = keys[index++], Properties[key]); } + while (length > index) { objectDefineProperty.f(O, key = keys[index++], props[key]); } return O; }; var html = getBuiltIn('document', 'documentElement'); + /* global ActiveXObject -- old IE, WSH */ + + + + + + + + var GT = '>'; var LT = '<'; var PROTOTYPE$2 = 'prototype'; @@ -2220,10 +2438,13 @@ var doric = (function (exports) { var activeXDocument; var NullProtoObject = function () { try { - /* global ActiveXObject -- old IE */ - activeXDocument = document.domain && new ActiveXObject('htmlfile'); + activeXDocument = new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH var length = enumBugKeys.length; while (length--) { delete NullProtoObject[PROTOTYPE$2][enumBugKeys[length]]; } return NullProtoObject(); @@ -2245,11 +2466,13 @@ var doric = (function (exports) { return Properties === undefined ? result : objectDefineProperties(result, Properties); }; + var arraySlice$1 = functionUncurryThis([].slice); + /* eslint-disable es/no-object-getownpropertynames -- safe */ + var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f; - var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; @@ -2258,13 +2481,13 @@ var doric = (function (exports) { try { return $getOwnPropertyNames$1(it); } catch (error) { - return windowNames.slice(); + return arraySlice$1(windowNames); } }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var f$2 = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' + return windowNames && classofRaw(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames$1(toIndexedObject(it)); }; @@ -2273,112 +2496,125 @@ var doric = (function (exports) { f: f$2 }; - var WellKnownSymbolsStore$1 = shared('wks'); - var Symbol$1 = global_1.Symbol; - var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid; - - var wellKnownSymbol = function (name) { - if (!has$1(WellKnownSymbolsStore$1, name) || !(nativeSymbol || typeof WellKnownSymbolsStore$1[name] == 'string')) { - if (nativeSymbol && has$1(Symbol$1, name)) { - WellKnownSymbolsStore$1[name] = Symbol$1[name]; - } else { - WellKnownSymbolsStore$1[name] = createWellKnownSymbol('Symbol.' + name); - } - } return WellKnownSymbolsStore$1[name]; - }; - var f$1 = wellKnownSymbol; var wellKnownSymbolWrapped = { f: f$1 }; - var defineProperty$d = objectDefineProperty.f; + var path = global_1; + + var defineProperty$e = objectDefineProperty.f; var defineWellKnownSymbol = function (NAME) { var Symbol = path.Symbol || (path.Symbol = {}); - if (!has$1(Symbol, NAME)) { defineProperty$d(Symbol, NAME, { + if (!hasOwnProperty_1(Symbol, NAME)) { defineProperty$e(Symbol, NAME, { value: wellKnownSymbolWrapped.f(NAME) }); } }; - var defineProperty$c = objectDefineProperty.f; + var defineProperty$d = objectDefineProperty.f; - var TO_STRING_TAG$8 = wellKnownSymbol('toStringTag'); + var TO_STRING_TAG$6 = wellKnownSymbol('toStringTag'); var setToStringTag = function (it, TAG, STATIC) { - if (it && !has$1(it = STATIC ? it : it.prototype, TO_STRING_TAG$8)) { - defineProperty$c(it, TO_STRING_TAG$8, { configurable: true, value: TAG }); + if (it && !hasOwnProperty_1(it = STATIC ? it : it.prototype, TO_STRING_TAG$6)) { + defineProperty$d(it, TO_STRING_TAG$6, { configurable: true, value: TAG }); } }; - var aFunction = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } return it; - }; + var bind$1 = functionUncurryThis(functionUncurryThis.bind); // optional / simple context binding - var functionBindContext = function (fn, that, length) { - aFunction(fn); - if (that === undefined) { return fn; } - switch (length) { - case 0: return function () { - return fn.call(that); - }; - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { + var functionBindContext = function (fn, that) { + aCallable(fn); + return that === undefined ? fn : bind$1 ? bind$1(fn, that) : function (/* ...args */) { return fn.apply(that, arguments); }; }; - var SPECIES$6 = wellKnownSymbol('species'); + var noop = function () { /* empty */ }; + var empty = []; + var construct$1 = getBuiltIn('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$9 = functionUncurryThis(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); - // `ArraySpeciesCreate` abstract operation + var isConstructorModern = function (argument) { + if (!isCallable(argument)) { return false; } + try { + construct$1(noop, empty, argument); + return true; + } catch (error) { + return false; + } + }; + + var isConstructorLegacy = function (argument) { + if (!isCallable(argument)) { return false; } + switch (classof(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + // we can't check .prototype since constructors produced by .bind haven't it + } return INCORRECT_TO_STRING || !!exec$9(constructorRegExp, inspectSource(argument)); + }; + + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor = !construct$1 || fails(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; + + var SPECIES$6 = wellKnownSymbol('species'); + var Array$a = global_1.Array; + + // a part of `ArraySpeciesCreate` abstract operation // https://tc39.es/ecma262/#sec-arrayspeciescreate - var arraySpeciesCreate = function (originalArray, length) { + var arraySpeciesConstructor = function (originalArray) { var C; if (isArray(originalArray)) { C = originalArray.constructor; // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) { C = undefined; } + if (isConstructor(C) && (C === Array$a || isArray(C.prototype))) { C = undefined; } else if (isObject(C)) { C = C[SPECIES$6]; if (C === null) { C = undefined; } } - } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); + } return C === undefined ? Array$a : C; }; - var push$3 = [].push; + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; - // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation + var push$i = functionUncurryThis([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation var createMethod$7 = function (TYPE) { var IS_MAP = TYPE == 1; var IS_FILTER = TYPE == 2; var IS_SOME = TYPE == 3; var IS_EVERY = TYPE == 4; var IS_FIND_INDEX = TYPE == 6; - var IS_FILTER_OUT = TYPE == 7; + var IS_FILTER_REJECT = TYPE == 7; var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; return function ($this, callbackfn, that, specificCreate) { var O = toObject($this); var self = indexedObject(O); - var boundFunction = functionBindContext(callbackfn, that, 3); - var length = toLength(self.length); + var boundFunction = functionBindContext(callbackfn, that); + var length = lengthOfArrayLike(self); var index = 0; var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; var value, result; for (;length > index; index++) { if (NO_HOLES || index in self) { value = self[index]; @@ -2389,10 +2625,10 @@ var doric = (function (exports) { case 3: return true; // some case 5: return value; // find case 6: return index; // findIndex - case 2: push$3.call(target, value); // filter + case 2: push$i(target, value); // filter } } else { switch (TYPE) { case 4: return false; // every - case 7: push$3.call(target, value); // filterOut + case 7: push$i(target, value); // filterReject } } } } } @@ -2422,9 +2658,9 @@ var doric = (function (exports) { // `Array.prototype.findIndex` method // https://tc39.es/ecma262/#sec-array.prototype.findIndex findIndex: createMethod$7(6), - // `Array.prototype.filterOut` method + // `Array.prototype.filterReject` method // https://github.com/tc39/proposal-array-filtering - filterOut: createMethod$7(7) + filterReject: createMethod$7(7) }; var $forEach$3 = arrayIteration.forEach; @@ -2433,21 +2669,28 @@ var doric = (function (exports) { var SYMBOL = 'Symbol'; var PROTOTYPE$1 = 'prototype'; var TO_PRIMITIVE$1 = wellKnownSymbol('toPrimitive'); - var setInternalState$g = internalState.set; - var getInternalState$d = internalState.getterFor(SYMBOL); - var ObjectPrototype$3 = Object[PROTOTYPE$1]; + + var setInternalState$h = internalState.set; + var getInternalState$g = internalState.getterFor(SYMBOL); + + var ObjectPrototype$4 = Object[PROTOTYPE$1]; var $Symbol = global_1.Symbol; + var SymbolPrototype$1 = $Symbol && $Symbol[PROTOTYPE$1]; + var TypeError$y = global_1.TypeError; + var QObject = global_1.QObject; var $stringify$1 = getBuiltIn('JSON', 'stringify'); var nativeGetOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f; var nativeDefineProperty = objectDefineProperty.f; var nativeGetOwnPropertyNames = objectGetOwnPropertyNamesExternal.f; var nativePropertyIsEnumerable = objectPropertyIsEnumerable.f; + var push$h = functionUncurryThis([].push); + var AllSymbols = shared('symbols'); var ObjectPrototypeSymbols = shared('op-symbols'); var StringToSymbolRegistry = shared('string-to-symbol-registry'); var SymbolToStringRegistry = shared('symbol-to-string-registry'); var WellKnownSymbolsStore = shared('wks'); - var QObject = global_1.QObject; + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var USE_SETTER = !QObject || !QObject[PROTOTYPE$1] || !QObject[PROTOTYPE$1].findChild; @@ -2457,17 +2700,17 @@ var doric = (function (exports) { get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype$3, P); - if (ObjectPrototypeDescriptor) { delete ObjectPrototype$3[P]; } + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype$4, P); + if (ObjectPrototypeDescriptor) { delete ObjectPrototype$4[P]; } nativeDefineProperty(O, P, Attributes); - if (ObjectPrototypeDescriptor && O !== ObjectPrototype$3) { - nativeDefineProperty(ObjectPrototype$3, P, ObjectPrototypeDescriptor); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype$4) { + nativeDefineProperty(ObjectPrototype$4, P, ObjectPrototypeDescriptor); } } : nativeDefineProperty; var wrap$1 = function (tag, description) { - var symbol = AllSymbols[tag] = objectCreate($Symbol[PROTOTYPE$1]); - setInternalState$g(symbol, { + var symbol = AllSymbols[tag] = objectCreate(SymbolPrototype$1); + setInternalState$h(symbol, { type: SYMBOL, tag: tag, description: description @@ -2476,23 +2719,17 @@ var doric = (function (exports) { return symbol; }; - var isSymbol = useSymbolAsUid ? function (it) { - return typeof it == 'symbol'; - } : function (it) { - return Object(it) instanceof $Symbol; - }; - var $defineProperty = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype$3) { $defineProperty(ObjectPrototypeSymbols, P, Attributes); } + if (O === ObjectPrototype$4) { $defineProperty(ObjectPrototypeSymbols, P, Attributes); } anObject(O); - var key = toPrimitive(P, true); + var key = toPropertyKey(P); anObject(Attributes); - if (has$1(AllSymbols, key)) { + if (hasOwnProperty_1(AllSymbols, key)) { if (!Attributes.enumerable) { - if (!has$1(O, HIDDEN)) { nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); } + if (!hasOwnProperty_1(O, HIDDEN)) { nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); } O[HIDDEN][key] = true; } else { - if (has$1(O, HIDDEN) && O[HIDDEN][key]) { O[HIDDEN][key] = false; } + if (hasOwnProperty_1(O, HIDDEN) && O[HIDDEN][key]) { O[HIDDEN][key] = false; } Attributes = objectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); } return setSymbolDescriptor(O, key, Attributes); } return nativeDefineProperty(O, key, Attributes); @@ -2503,7 +2740,7 @@ var doric = (function (exports) { var properties = toIndexedObject(Properties); var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); $forEach$3(keys, function (key) { - if (!descriptors || $propertyIsEnumerable.call(properties, key)) { $defineProperty(O, key, properties[key]); } + if (!descriptors || functionCall($propertyIsEnumerable$1, properties, key)) { $defineProperty(O, key, properties[key]); } }); return O; }; @@ -2512,19 +2749,20 @@ var doric = (function (exports) { return Properties === undefined ? objectCreate(O) : $defineProperties(objectCreate(O), Properties); }; - var $propertyIsEnumerable = function propertyIsEnumerable(V) { - var P = toPrimitive(V, true); - var enumerable = nativePropertyIsEnumerable.call(this, P); - if (this === ObjectPrototype$3 && has$1(AllSymbols, P) && !has$1(ObjectPrototypeSymbols, P)) { return false; } - return enumerable || !has$1(this, P) || !has$1(AllSymbols, P) || has$1(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; + var $propertyIsEnumerable$1 = function propertyIsEnumerable(V) { + var P = toPropertyKey(V); + var enumerable = functionCall(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype$4 && hasOwnProperty_1(AllSymbols, P) && !hasOwnProperty_1(ObjectPrototypeSymbols, P)) { return false; } + return enumerable || !hasOwnProperty_1(this, P) || !hasOwnProperty_1(AllSymbols, P) || hasOwnProperty_1(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { var it = toIndexedObject(O); - var key = toPrimitive(P, true); - if (it === ObjectPrototype$3 && has$1(AllSymbols, key) && !has$1(ObjectPrototypeSymbols, key)) { return; } + var key = toPropertyKey(P); + if (it === ObjectPrototype$4 && hasOwnProperty_1(AllSymbols, key) && !hasOwnProperty_1(ObjectPrototypeSymbols, key)) { return; } var descriptor = nativeGetOwnPropertyDescriptor$1(it, key); - if (descriptor && has$1(AllSymbols, key) && !(has$1(it, HIDDEN) && it[HIDDEN][key])) { + if (descriptor && hasOwnProperty_1(AllSymbols, key) && !(hasOwnProperty_1(it, HIDDEN) && it[HIDDEN][key])) { descriptor.enumerable = true; } return descriptor; @@ -2534,18 +2772,18 @@ var doric = (function (exports) { var names = nativeGetOwnPropertyNames(toIndexedObject(O)); var result = []; $forEach$3(names, function (key) { - if (!has$1(AllSymbols, key) && !has$1(hiddenKeys$1, key)) { result.push(key); } + if (!hasOwnProperty_1(AllSymbols, key) && !hasOwnProperty_1(hiddenKeys$1, key)) { push$h(result, key); } }); return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$3; + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$4; var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); var result = []; $forEach$3(names, function (key) { - if (has$1(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has$1(ObjectPrototype$3, key))) { - result.push(AllSymbols[key]); + if (hasOwnProperty_1(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwnProperty_1(ObjectPrototype$4, key))) { + push$h(result, AllSymbols[key]); } }); return result; @@ -2555,27 +2793,29 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-symbol-constructor if (!nativeSymbol) { $Symbol = function Symbol() { - if (this instanceof $Symbol) { throw TypeError('Symbol is not a constructor'); } - var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); + if (objectIsPrototypeOf(SymbolPrototype$1, this)) { throw TypeError$y('Symbol is not a constructor'); } + var description = !arguments.length || arguments[0] === undefined ? undefined : toString_1(arguments[0]); var tag = uid(description); var setter = function (value) { - if (this === ObjectPrototype$3) { setter.call(ObjectPrototypeSymbols, value); } - if (has$1(this, HIDDEN) && has$1(this[HIDDEN], tag)) { this[HIDDEN][tag] = false; } + if (this === ObjectPrototype$4) { functionCall(setter, ObjectPrototypeSymbols, value); } + if (hasOwnProperty_1(this, HIDDEN) && hasOwnProperty_1(this[HIDDEN], tag)) { this[HIDDEN][tag] = false; } setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); }; - if (descriptors && USE_SETTER) { setSymbolDescriptor(ObjectPrototype$3, tag, { configurable: true, set: setter }); } + if (descriptors && USE_SETTER) { setSymbolDescriptor(ObjectPrototype$4, tag, { configurable: true, set: setter }); } return wrap$1(tag, description); }; - redefine($Symbol[PROTOTYPE$1], 'toString', function toString() { - return getInternalState$d(this).tag; + SymbolPrototype$1 = $Symbol[PROTOTYPE$1]; + + redefine(SymbolPrototype$1, 'toString', function toString() { + return getInternalState$g(this).tag; }); redefine($Symbol, 'withoutSetter', function (description) { return wrap$1(uid(description), description); }); - objectPropertyIsEnumerable.f = $propertyIsEnumerable; + objectPropertyIsEnumerable.f = $propertyIsEnumerable$1; objectDefineProperty.f = $defineProperty; objectGetOwnPropertyDescriptor.f = $getOwnPropertyDescriptor; objectGetOwnPropertyNames.f = objectGetOwnPropertyNamesExternal.f = $getOwnPropertyNames; @@ -2587,14 +2827,14 @@ var doric = (function (exports) { if (descriptors) { // https://github.com/tc39/proposal-Symbol-description - nativeDefineProperty($Symbol[PROTOTYPE$1], 'description', { + nativeDefineProperty(SymbolPrototype$1, 'description', { configurable: true, get: function description() { - return getInternalState$d(this).description; + return getInternalState$g(this).description; } }); { - redefine(ObjectPrototype$3, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); + redefine(ObjectPrototype$4, 'propertyIsEnumerable', $propertyIsEnumerable$1, { unsafe: true }); } } } @@ -2611,8 +2851,8 @@ var doric = (function (exports) { // `Symbol.for` method // https://tc39.es/ecma262/#sec-symbol.for 'for': function (key) { - var string = String(key); - if (has$1(StringToSymbolRegistry, string)) { return StringToSymbolRegistry[string]; } + var string = toString_1(key); + if (hasOwnProperty_1(StringToSymbolRegistry, string)) { return StringToSymbolRegistry[string]; } var symbol = $Symbol(string); StringToSymbolRegistry[string] = symbol; SymbolToStringRegistry[symbol] = string; @@ -2621,8 +2861,8 @@ var doric = (function (exports) { // `Symbol.keyFor` method // https://tc39.es/ecma262/#sec-symbol.keyfor keyFor: function keyFor(sym) { - if (!isSymbol(sym)) { throw TypeError(sym + ' is not a symbol'); } - if (has$1(SymbolToStringRegistry, sym)) { return SymbolToStringRegistry[sym]; } + if (!isSymbol(sym)) { throw TypeError$y(sym + ' is not a symbol'); } + if (hasOwnProperty_1(SymbolToStringRegistry, sym)) { return SymbolToStringRegistry[sym]; } }, useSetter: function () { USE_SETTER = true; }, useSimple: function () { USE_SETTER = false; } @@ -2676,28 +2916,28 @@ var doric = (function (exports) { _export({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, { // eslint-disable-next-line no-unused-vars -- required for `.length` stringify: function stringify(it, replacer, space) { - var arguments$1 = arguments; - - var args = [it]; - var index = 1; - var $replacer; - while (arguments.length > index) { args.push(arguments$1[index++]); } - $replacer = replacer; + var args = arraySlice$1(arguments); + var $replacer = replacer; if (!isObject(replacer) && it === undefined || isSymbol(it)) { return; } // IE8 returns string on undefined if (!isArray(replacer)) { replacer = function (key, value) { - if (typeof $replacer == 'function') { value = $replacer.call(this, key, value); } + if (isCallable($replacer)) { value = functionCall($replacer, this, key, value); } if (!isSymbol(value)) { return value; } }; } args[1] = replacer; - return $stringify$1.apply(null, args); + return functionApply($stringify$1, null, args); } }); } // `Symbol.prototype[@@toPrimitive]` method // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive - if (!$Symbol[PROTOTYPE$1][TO_PRIMITIVE$1]) { - createNonEnumerableProperty($Symbol[PROTOTYPE$1], TO_PRIMITIVE$1, $Symbol[PROTOTYPE$1].valueOf); + if (!SymbolPrototype$1[TO_PRIMITIVE$1]) { + var valueOf = SymbolPrototype$1.valueOf; + // eslint-disable-next-line no-unused-vars -- required for .length + redefine(SymbolPrototype$1, TO_PRIMITIVE$1, function (hint) { + // TODO: improve hint logic + return functionCall(valueOf, this); + }); } // `Symbol.prototype[@@toStringTag]` property // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag @@ -2705,40 +2945,46 @@ var doric = (function (exports) { hiddenKeys$1[HIDDEN] = true; - var defineProperty$b = objectDefineProperty.f; + var defineProperty$c = objectDefineProperty.f; var NativeSymbol = global_1.Symbol; + var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; - if (descriptors && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || + if (descriptors && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || // Safari 12 bug NativeSymbol().description !== undefined )) { var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description var SymbolWrapper = function Symbol() { - var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]); - var result = this instanceof SymbolWrapper + var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString_1(arguments[0]); + var result = objectIsPrototypeOf(SymbolPrototype, this) ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' : description === undefined ? NativeSymbol() : NativeSymbol(description); if (description === '') { EmptyStringDescriptionStore[result] = true; } return result; }; - copyConstructorProperties(SymbolWrapper, NativeSymbol); - var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype; - symbolPrototype.constructor = SymbolWrapper; - var symbolToString = symbolPrototype.toString; - var native = String(NativeSymbol('test')) == 'Symbol(test)'; + copyConstructorProperties(SymbolWrapper, NativeSymbol); + SymbolWrapper.prototype = SymbolPrototype; + SymbolPrototype.constructor = SymbolWrapper; + + var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)'; + var symbolToString = functionUncurryThis(SymbolPrototype.toString); + var symbolValueOf = functionUncurryThis(SymbolPrototype.valueOf); var regexp = /^Symbol\((.*)\)[^)]+$/; - defineProperty$b(symbolPrototype, 'description', { + var replace$a = functionUncurryThis(''.replace); + var stringSlice$f = functionUncurryThis(''.slice); + + defineProperty$c(SymbolPrototype, 'description', { configurable: true, get: function description() { - var symbol = isObject(this) ? this.valueOf() : this; - var string = symbolToString.call(symbol); - if (has$1(EmptyStringDescriptionStore, symbol)) { return ''; } - var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1'); + var symbol = symbolValueOf(this); + var string = symbolToString(symbol); + if (hasOwnProperty_1(EmptyStringDescriptionStore, symbol)) { return ''; } + var desc = NATIVE_SYMBOL ? stringSlice$f(string, 7, -1) : replace$a(string, regexp, '$1'); return desc === '' ? undefined : desc; } }); @@ -2808,29 +3054,33 @@ var doric = (function (exports) { }); var IE_PROTO = sharedKey('IE_PROTO'); - var ObjectPrototype$2 = Object.prototype; + var Object$3 = global_1.Object; + var ObjectPrototype$3 = Object$3.prototype; // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof - // eslint-disable-next-line es/no-object-getprototypeof -- safe - var objectGetPrototypeOf = correctPrototypeGetter ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has$1(O, IE_PROTO)) { return O[IE_PROTO]; } - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectPrototype$2 : null; + var objectGetPrototypeOf = correctPrototypeGetter ? Object$3.getPrototypeOf : function (O) { + var object = toObject(O); + if (hasOwnProperty_1(object, IE_PROTO)) { return object[IE_PROTO]; } + var constructor = object.constructor; + if (isCallable(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof Object$3 ? ObjectPrototype$3 : null; }; - var aPossiblePrototype = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } return it; + var String$3 = global_1.String; + var TypeError$x = global_1.TypeError; + + var aPossiblePrototype = function (argument) { + if (typeof argument == 'object' || isCallable(argument)) { return argument; } + throw TypeError$x("Can't set " + String$3(argument) + ' as a prototype'); }; /* eslint-disable no-proto -- safe */ + // `Object.setPrototypeOf` method // https://tc39.es/ecma262/#sec-object.setprototypeof // Works with __proto__ only. Old v8 can't work with null proto objects. @@ -2841,89 +3091,110 @@ var doric = (function (exports) { var setter; try { // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); + setter = functionUncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); + setter(test, []); CORRECT_SETTER = test instanceof Array; } catch (error) { /* empty */ } return function setPrototypeOf(O, proto) { anObject(O); aPossiblePrototype(proto); - if (CORRECT_SETTER) { setter.call(O, proto); } + if (CORRECT_SETTER) { setter(O, proto); } else { O.__proto__ = proto; } return O; }; }() : undefined); + var replace$9 = functionUncurryThis(''.replace); + var split$3 = functionUncurryThis(''.split); + var join$7 = functionUncurryThis([].join); + + var TEST = (function (arg) { return String(Error(arg).stack); })('zxcasd'); + var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; + var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + var IS_FIREFOX_OR_SAFARI_STACK = /@[^\n]*\n/.test(TEST) && !/zxcasd/.test(TEST); + + var clearErrorStack = function (stack, dropEntries) { + if (typeof stack != 'string') { return stack; } + if (IS_V8_OR_CHAKRA_STACK) { + while (dropEntries--) { stack = replace$9(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); } + } else if (IS_FIREFOX_OR_SAFARI_STACK) { + return join$7(arraySlice$1(split$3(stack, '\n'), dropEntries), '\n'); + } return stack; + }; + + // `InstallErrorCause` abstract operation + // https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause + var installErrorCause = function (O, options) { + if (isObject(options) && 'cause' in options) { + createNonEnumerableProperty(O, 'cause', options.cause); + } + }; + var iterators = {}; - var ITERATOR$8 = wellKnownSymbol('iterator'); + var ITERATOR$a = wellKnownSymbol('iterator'); var ArrayPrototype$1 = Array.prototype; // check on default Array iterator var isArrayIteratorMethod = function (it) { - return it !== undefined && (iterators.Array === it || ArrayPrototype$1[ITERATOR$8] === it); + return it !== undefined && (iterators.Array === it || ArrayPrototype$1[ITERATOR$a] === it); }; - var TO_STRING_TAG$7 = wellKnownSymbol('toStringTag'); - var test$2 = {}; - - test$2[TO_STRING_TAG$7] = 'z'; - - var toStringTagSupport = String(test$2) === '[object z]'; - - var TO_STRING_TAG$6 = wellKnownSymbol('toStringTag'); - // ES3 wrong here - var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; - - // fallback for IE11 Script Access Denied error - var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { /* empty */ } - }; - - // getting tag from ES6+ `Object.prototype.toString` - var classof = toStringTagSupport ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG$6)) == 'string' ? tag - // builtinTag case - : CORRECT_ARGUMENTS ? classofRaw(O) - // ES3 arguments fallback - : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; - }; - - var ITERATOR$7 = wellKnownSymbol('iterator'); + var ITERATOR$9 = wellKnownSymbol('iterator'); var getIteratorMethod = function (it) { - if (it != undefined) { return it[ITERATOR$7] - || it['@@iterator'] + if (it != undefined) { return getMethod(it, ITERATOR$9) + || getMethod(it, '@@iterator') || iterators[classof(it)]; } }; - var iteratorClose = function (iterator) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return anObject(returnMethod.call(iterator)).value; - } + var TypeError$w = global_1.TypeError; + + var getIterator = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; + if (aCallable(iteratorMethod)) { return anObject(functionCall(iteratorMethod, argument)); } + throw TypeError$w(tryToString(argument) + ' is not iterable'); }; + var iteratorClose = function (iterator, kind, value) { + var innerResult, innerError; + anObject(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') { throw value; } + return value; + } + innerResult = functionCall(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') { throw value; } + if (innerError) { throw innerResult; } + anObject(innerResult); + return value; + }; + + var TypeError$v = global_1.TypeError; + var Result = function (stopped, result) { this.stopped = stopped; this.result = result; }; + var ResultPrototype = Result.prototype; + var iterate = function (iterable, unboundFunction, options) { var that = options && options.that; var AS_ENTRIES = !!(options && options.AS_ENTRIES); var IS_ITERATOR = !!(options && options.IS_ITERATOR); var INTERRUPTED = !!(options && options.INTERRUPTED); - var fn = functionBindContext(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED); + var fn = functionBindContext(unboundFunction, that); var iterator, iterFn, index, length, result, next, step; var stop = function (condition) { - if (iterator) { iteratorClose(iterator); } + if (iterator) { iteratorClose(iterator, 'normal', condition); } return new Result(true, condition); }; @@ -2938,47 +3209,65 @@ var doric = (function (exports) { iterator = iterable; } else { iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') { throw TypeError('Target is not iterable'); } + if (!iterFn) { throw TypeError$v(tryToString(iterable) + ' is not iterable'); } // optimisation for array iterators if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { + for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { result = callFn(iterable[index]); - if (result && result instanceof Result) { return result; } + if (result && objectIsPrototypeOf(ResultPrototype, result)) { return result; } } return new Result(false); } - iterator = iterFn.call(iterable); + iterator = getIterator(iterable, iterFn); } next = iterator.next; - while (!(step = next.call(iterator)).done) { + while (!(step = functionCall(next, iterator)).done) { try { result = callFn(step.value); } catch (error) { - iteratorClose(iterator); - throw error; + iteratorClose(iterator, 'throw', error); } - if (typeof result == 'object' && result && result instanceof Result) { return result; } + if (typeof result == 'object' && result && objectIsPrototypeOf(ResultPrototype, result)) { return result; } } return new Result(false); }; - var $AggregateError = function AggregateError(errors, message) { - var that = this; - if (!(that instanceof $AggregateError)) { return new $AggregateError(errors, message); } + var normalizeStringArgument = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString_1(argument); + }; + + var errorStackInstallable = !fails(function () { + var error = Error('a'); + if (!('stack' in error)) { return true; } + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7)); + return error.stack !== 7; + }); + + var Error$2 = global_1.Error; + var push$g = [].push; + + var $AggregateError = function AggregateError(errors, message /* , options */) { + var that = objectIsPrototypeOf(AggregateErrorPrototype, this) ? this : objectCreate(AggregateErrorPrototype); + var options = arguments.length > 2 ? arguments[2] : undefined; if (objectSetPrototypeOf) { - // eslint-disable-next-line unicorn/error-message -- expected - that = objectSetPrototypeOf(new Error(undefined), objectGetPrototypeOf(that)); + that = objectSetPrototypeOf(new Error$2(undefined), objectGetPrototypeOf(that)); } - if (message !== undefined) { createNonEnumerableProperty(that, 'message', String(message)); } + createNonEnumerableProperty(that, 'message', normalizeStringArgument(message, '')); + if (errorStackInstallable) { createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1)); } + installErrorCause(that, options); var errorsArray = []; - iterate(errors, errorsArray.push, { that: errorsArray }); + iterate(errors, push$g, { that: errorsArray }); createNonEnumerableProperty(that, 'errors', errorsArray); return that; }; - $AggregateError.prototype = objectCreate(Error.prototype, { - constructor: createPropertyDescriptor(5, $AggregateError), - message: createPropertyDescriptor(5, ''), - name: createPropertyDescriptor(5, 'AggregateError') + if (objectSetPrototypeOf) { objectSetPrototypeOf($AggregateError, Error$2); } + else { copyConstructorProperties($AggregateError, Error$2); } + + var AggregateErrorPrototype = $AggregateError.prototype = objectCreate(Error$2.prototype, { + constructor: createPropertyDescriptor(1, $AggregateError), + message: createPropertyDescriptor(1, ''), + name: createPropertyDescriptor(1, 'AggregateError') }); // `AggregateError` constructor @@ -2987,8 +3276,39 @@ var doric = (function (exports) { AggregateError: $AggregateError }); + var UNSCOPABLES = wellKnownSymbol('unscopables'); + var ArrayPrototype = Array.prototype; + + // Array.prototype[@@unscopables] + // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables + if (ArrayPrototype[UNSCOPABLES] == undefined) { + objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: objectCreate(null) + }); + } + + // add a key to Array.prototype[@@unscopables] + var addToUnscopables = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; + }; + + // `Array.prototype.at` method + // https://github.com/tc39/proposal-relative-indexing-method + _export({ target: 'Array', proto: true }, { + at: function at(index) { + var O = toObject(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + } + }); + + addToUnscopables('at'); + var createProperty = function (object, key, value) { - var propertyKey = toPrimitive(key); + var propertyKey = toPropertyKey(key); if (propertyKey in object) { objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value)); } else { object[propertyKey] = value; } }; @@ -3010,8 +3330,9 @@ var doric = (function (exports) { }; var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); - var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF; + var MAX_SAFE_INTEGER$2 = 0x1FFFFFFFFFFFFF; var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; + var TypeError$u = global_1.TypeError; // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation @@ -3030,12 +3351,12 @@ var doric = (function (exports) { return spreadable !== undefined ? !!spreadable : isArray(O); }; - var FORCED$n = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; + var FORCED$q = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method // https://tc39.es/ecma262/#sec-array.prototype.concat // with adding support of @@isConcatSpreadable and @@species - _export({ target: 'Array', proto: true, forced: FORCED$n }, { + _export({ target: 'Array', proto: true, forced: FORCED$q }, { // eslint-disable-next-line no-unused-vars -- required for `.length` concat: function concat(arg) { var arguments$1 = arguments; @@ -3047,11 +3368,11 @@ var doric = (function (exports) { for (i = -1, length = arguments.length; i < length; i++) { E = i === -1 ? O : arguments$1[i]; if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER$1) { throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); } + len = lengthOfArrayLike(E); + if (n + len > MAX_SAFE_INTEGER$2) { throw TypeError$u(MAXIMUM_ALLOWED_INDEX_EXCEEDED); } for (k = 0; k < len; k++, n++) { if (k in E) { createProperty(A, n, E[k]); } } } else { - if (n >= MAX_SAFE_INTEGER$1) { throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); } + if (n >= MAX_SAFE_INTEGER$2) { throw TypeError$u(MAXIMUM_ALLOWED_INDEX_EXCEEDED); } createProperty(A, n++, E); } } @@ -3060,18 +3381,18 @@ var doric = (function (exports) { } }); - var min$7 = Math.min; + var min$8 = Math.min; // `Array.prototype.copyWithin` method implementation // https://tc39.es/ecma262/#sec-array.prototype.copywithin // eslint-disable-next-line es/no-array-prototype-copywithin -- safe var arrayCopyWithin = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { var O = toObject(this); - var len = toLength(O.length); + var len = lengthOfArrayLike(O); var to = toAbsoluteIndex(target, len); var from = toAbsoluteIndex(start, len); var end = arguments.length > 2 ? arguments[2] : undefined; - var count = min$7((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var count = min$8((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); var inc = 1; if (from < to && to < from + count) { inc = -1; @@ -3086,23 +3407,6 @@ var doric = (function (exports) { } return O; }; - var UNSCOPABLES = wellKnownSymbol('unscopables'); - var ArrayPrototype = Array.prototype; - - // Array.prototype[@@unscopables] - // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables - if (ArrayPrototype[UNSCOPABLES] == undefined) { - objectDefineProperty.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: objectCreate(null) - }); - } - - // add a key to Array.prototype[@@unscopables] - var addToUnscopables = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; - }; - // `Array.prototype.copyWithin` method // https://tc39.es/ecma262/#sec-array.prototype.copywithin _export({ target: 'Array', proto: true }, { @@ -3137,7 +3441,7 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-array.prototype.fill var arrayFill = function fill(value /* , start = 0, end = @length */) { var O = toObject(this); - var length = toLength(O.length); + var length = lengthOfArrayLike(O); var argumentsLength = arguments.length; var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); var end = argumentsLength > 2 ? arguments[2] : undefined; @@ -3209,22 +3513,25 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables(FIND_INDEX); + var TypeError$t = global_1.TypeError; + // `FlattenIntoArray` abstract operation // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { var targetIndex = start; var sourceIndex = 0; - var mapFn = mapper ? functionBindContext(mapper, thisArg, 3) : false; - var element; + var mapFn = mapper ? functionBindContext(mapper, thisArg) : false; + var element, elementLen; while (sourceIndex < sourceLen) { if (sourceIndex in source) { element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; if (depth > 0 && isArray(element)) { - targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + elementLen = lengthOfArrayLike(element); + targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; } else { - if (targetIndex >= 0x1FFFFFFFFFFFFF) { throw TypeError('Exceed the acceptable array length'); } + if (targetIndex >= 0x1FFFFFFFFFFFFF) { throw TypeError$t('Exceed the acceptable array length'); } target[targetIndex] = element; } @@ -3243,9 +3550,9 @@ var doric = (function (exports) { flat: function flat(/* depthArg = 1 */) { var depthArg = arguments.length ? arguments[0] : undefined; var O = toObject(this); - var sourceLen = toLength(O.length); + var sourceLen = lengthOfArrayLike(O); var A = arraySpeciesCreate(O, 0); - A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); return A; } }); @@ -3255,9 +3562,9 @@ var doric = (function (exports) { _export({ target: 'Array', proto: true }, { flatMap: function flatMap(callbackfn /* , thisArg */) { var O = toObject(this); - var sourceLen = toLength(O.length); + var sourceLen = lengthOfArrayLike(O); var A; - aFunction(callbackfn); + aCallable(callbackfn); A = arraySpeciesCreate(O, 0); A.length = flattenIntoArray_1(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); return A; @@ -3288,35 +3595,36 @@ var doric = (function (exports) { try { return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); } catch (error) { - iteratorClose(iterator); - throw error; + iteratorClose(iterator, 'throw', error); } }; + var Array$9 = global_1.Array; + // `Array.from` method implementation // https://tc39.es/ecma262/#sec-array.from var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; + var IS_CONSTRUCTOR = isConstructor(this); var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; + if (mapping) { mapfn = functionBindContext(mapfn, argumentsLength > 2 ? arguments[2] : undefined); } var iteratorMethod = getIteratorMethod(O); var index = 0; var length, result, step, iterator, next, value; - if (mapping) { mapfn = functionBindContext(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); } // if the target is not iterable or it's an array with the default iterator - use a simple case - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); + if (iteratorMethod && !(this == Array$9 && isArrayIteratorMethod(iteratorMethod))) { + iterator = getIterator(O, iteratorMethod); next = iterator.next; - result = new C(); - for (;!(step = next.call(iterator)).done; index++) { + result = IS_CONSTRUCTOR ? new this() : []; + for (;!(step = functionCall(next, iterator)).done; index++) { value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; createProperty(result, index, value); } } else { - length = toLength(O.length); - result = new C(length); + length = lengthOfArrayLike(O); + result = IS_CONSTRUCTOR ? new this(length) : Array$9(length); for (;length > index; index++) { value = mapping ? mapfn(O[index], index) : O[index]; createProperty(result, index, value); @@ -3326,7 +3634,7 @@ var doric = (function (exports) { return result; }; - var ITERATOR$6 = wellKnownSymbol('iterator'); + var ITERATOR$8 = wellKnownSymbol('iterator'); var SAFE_CLOSING = false; try { @@ -3339,7 +3647,7 @@ var doric = (function (exports) { SAFE_CLOSING = true; } }; - iteratorWithReturn[ITERATOR$6] = function () { + iteratorWithReturn[ITERATOR$8] = function () { return this; }; // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing @@ -3351,7 +3659,7 @@ var doric = (function (exports) { var ITERATION_SUPPORT = false; try { var object = {}; - object[ITERATOR$6] = function () { + object[ITERATOR$8] = function () { return { next: function () { return { done: ITERATION_SUPPORT = true }; @@ -3390,22 +3698,24 @@ var doric = (function (exports) { /* eslint-disable es/no-array-prototype-indexof -- required for testing */ - var $indexOf$1 = arrayIncludes.indexOf; + + var $IndexOf = arrayIncludes.indexOf; - var nativeIndexOf = [].indexOf; + var un$IndexOf = functionUncurryThis([].indexOf); - var NEGATIVE_ZERO$1 = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0; + var NEGATIVE_ZERO$1 = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0; var STRICT_METHOD$6 = arrayMethodIsStrict('indexOf'); // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof _export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO$1 || !STRICT_METHOD$6 }, { indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; return NEGATIVE_ZERO$1 // convert -0 to +0 - ? nativeIndexOf.apply(this, arguments) || 0 - : $indexOf$1(this, searchElement, arguments.length > 1 ? arguments[1] : undefined); + ? un$IndexOf(this, searchElement, fromIndex) || 0 + : $IndexOf(this, searchElement, fromIndex); } }); @@ -3415,46 +3725,46 @@ var doric = (function (exports) { isArray: isArray }); - var ITERATOR$5 = wellKnownSymbol('iterator'); + var ITERATOR$7 = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS$1 = false; - var returnThis$2 = function () { return this; }; - // `%IteratorPrototype%` object // https://tc39.es/ecma262/#sec-%iteratorprototype%-object - var IteratorPrototype$3, PrototypeOfArrayIteratorPrototype, arrayIterator; + var IteratorPrototype$5, PrototypeOfArrayIteratorPrototype, arrayIterator$1; /* eslint-disable es/no-array-prototype-keys -- safe */ if ([].keys) { - arrayIterator = [].keys(); + arrayIterator$1 = [].keys(); // Safari 8 has buggy iterators w/o `next` - if (!('next' in arrayIterator)) { BUGGY_SAFARI_ITERATORS$1 = true; } + if (!('next' in arrayIterator$1)) { BUGGY_SAFARI_ITERATORS$1 = true; } else { - PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) { IteratorPrototype$3 = PrototypeOfArrayIteratorPrototype; } + PrototypeOfArrayIteratorPrototype = objectGetPrototypeOf(objectGetPrototypeOf(arrayIterator$1)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) { IteratorPrototype$5 = PrototypeOfArrayIteratorPrototype; } } } - var NEW_ITERATOR_PROTOTYPE = IteratorPrototype$3 == undefined || fails(function () { + var NEW_ITERATOR_PROTOTYPE = IteratorPrototype$5 == undefined || fails(function () { var test = {}; // FF44- legacy iterators case - return IteratorPrototype$3[ITERATOR$5].call(test) !== test; + return IteratorPrototype$5[ITERATOR$7].call(test) !== test; }); - if (NEW_ITERATOR_PROTOTYPE) { IteratorPrototype$3 = {}; } + if (NEW_ITERATOR_PROTOTYPE) { IteratorPrototype$5 = {}; } // `%IteratorPrototype%[@@iterator]()` method // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator - if (!has$1(IteratorPrototype$3, ITERATOR$5)) { - createNonEnumerableProperty(IteratorPrototype$3, ITERATOR$5, returnThis$2); + if (!isCallable(IteratorPrototype$5[ITERATOR$7])) { + redefine(IteratorPrototype$5, ITERATOR$7, function () { + return this; + }); } var iteratorsCore = { - IteratorPrototype: IteratorPrototype$3, + IteratorPrototype: IteratorPrototype$5, BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 }; - var IteratorPrototype$2 = iteratorsCore.IteratorPrototype; + var IteratorPrototype$4 = iteratorsCore.IteratorPrototype; @@ -3464,15 +3774,17 @@ var doric = (function (exports) { var createIteratorConstructor = function (IteratorConstructor, NAME, next) { var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = objectCreate(IteratorPrototype$2, { next: createPropertyDescriptor(1, next) }); + IteratorConstructor.prototype = objectCreate(IteratorPrototype$4, { next: createPropertyDescriptor(1, next) }); setToStringTag(IteratorConstructor, TO_STRING_TAG, false); iterators[TO_STRING_TAG] = returnThis$1; return IteratorConstructor; }; - var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var PROPER_FUNCTION_NAME$4 = functionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME$1 = functionName.CONFIGURABLE; + var IteratorPrototype$3 = iteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = iteratorsCore.BUGGY_SAFARI_ITERATORS; - var ITERATOR$4 = wellKnownSymbol('iterator'); + var ITERATOR$6 = wellKnownSymbol('iterator'); var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; @@ -3495,7 +3807,7 @@ var doric = (function (exports) { var TO_STRING_TAG = NAME + ' Iterator'; var INCORRECT_VALUES_NAME = false; var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR$4] + var nativeIterator = IterablePrototype[ITERATOR$6] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); @@ -3505,12 +3817,12 @@ var doric = (function (exports) { // fix native if (anyNativeIterator) { CurrentIteratorPrototype = objectGetPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype$1 !== Object.prototype && CurrentIteratorPrototype.next) { - if (objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$1) { + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (objectGetPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype$3) { if (objectSetPrototypeOf) { - objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$1); - } else if (typeof CurrentIteratorPrototype[ITERATOR$4] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR$4, returnThis); + objectSetPrototypeOf(CurrentIteratorPrototype, IteratorPrototype$3); + } else if (!isCallable(CurrentIteratorPrototype[ITERATOR$6])) { + redefine(CurrentIteratorPrototype, ITERATOR$6, returnThis); } } // Set @@toStringTag to native iterators @@ -3519,17 +3831,15 @@ var doric = (function (exports) { } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { return nativeIterator.call(this); }; + if (PROPER_FUNCTION_NAME$4 && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + if (CONFIGURABLE_FUNCTION_NAME$1) { + createNonEnumerableProperty(IterablePrototype, 'name', VALUES); + } else { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return functionCall(nativeIterator, this); }; + } } - // define iterator - if (IterablePrototype[ITERATOR$4] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR$4, defaultIterator); - } - iterators[NAME] = defaultIterator; - // export additional methods if (DEFAULT) { methods = { @@ -3544,12 +3854,18 @@ var doric = (function (exports) { } } else { _export({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } } + // define iterator + if (IterablePrototype[ITERATOR$6] !== defaultIterator) { + redefine(IterablePrototype, ITERATOR$6, defaultIterator, { name: DEFAULT }); + } + iterators[NAME] = defaultIterator; + return methods; }; var ARRAY_ITERATOR = 'Array Iterator'; - var setInternalState$f = internalState.set; - var getInternalState$c = internalState.getterFor(ARRAY_ITERATOR); + var setInternalState$g = internalState.set; + var getInternalState$f = internalState.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method // https://tc39.es/ecma262/#sec-array.prototype.entries @@ -3562,7 +3878,7 @@ var doric = (function (exports) { // `CreateArrayIterator` internal method // https://tc39.es/ecma262/#sec-createarrayiterator var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState$f(this, { + setInternalState$g(this, { type: ARRAY_ITERATOR, target: toIndexedObject(iterated), // target index: 0, // next index @@ -3571,7 +3887,7 @@ var doric = (function (exports) { // `%ArrayIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next }, function () { - var state = getInternalState$c(this); + var state = getInternalState$f(this); var target = state.target; var kind = state.kind; var index = state.index++; @@ -3594,7 +3910,7 @@ var doric = (function (exports) { addToUnscopables('values'); addToUnscopables('entries'); - var nativeJoin = [].join; + var un$Join = functionUncurryThis([].join); var ES3_STRINGS = indexedObject != Object; var STRICT_METHOD$5 = arrayMethodIsStrict('join', ','); @@ -3603,7 +3919,7 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-array.prototype.join _export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$5 }, { join: function join(separator) { - return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator); + return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator); } }); @@ -3613,21 +3929,22 @@ var doric = (function (exports) { - var min$6 = Math.min; + + var min$7 = Math.min; var $lastIndexOf = [].lastIndexOf; var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; var STRICT_METHOD$4 = arrayMethodIsStrict('lastIndexOf'); - var FORCED$m = NEGATIVE_ZERO || !STRICT_METHOD$4; + var FORCED$p = NEGATIVE_ZERO || !STRICT_METHOD$4; // `Array.prototype.lastIndexOf` method implementation // https://tc39.es/ecma262/#sec-array.prototype.lastindexof - var arrayLastIndexOf = FORCED$m ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + var arrayLastIndexOf = FORCED$p ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { // convert -0 to +0 - if (NEGATIVE_ZERO) { return $lastIndexOf.apply(this, arguments) || 0; } + if (NEGATIVE_ZERO) { return functionApply($lastIndexOf, this, arguments) || 0; } var O = toIndexedObject(this); - var length = toLength(O.length); + var length = lengthOfArrayLike(O); var index = length - 1; - if (arguments.length > 1) { index = min$6(index, toInteger(arguments[1])); } + if (arguments.length > 1) { index = min$7(index, toIntegerOrInfinity(arguments[1])); } if (index < 0) { index = length + index; } for (;index >= 0; index--) { if (index in O && O[index] === searchElement) { return index || 0; } } return -1; @@ -3654,10 +3971,11 @@ var doric = (function (exports) { } }); + var Array$8 = global_1.Array; + var ISNT_GENERIC = fails(function () { function F() { /* empty */ } - // eslint-disable-next-line es/no-array-of -- required for testing - return !(Array.of.call(F) instanceof F); + return !(Array$8.of.call(F) instanceof F); }); // `Array.of` method @@ -3669,20 +3987,22 @@ var doric = (function (exports) { var index = 0; var argumentsLength = arguments.length; - var result = new (typeof this == 'function' ? this : Array)(argumentsLength); + var result = new (isConstructor(this) ? this : Array$8)(argumentsLength); while (argumentsLength > index) { createProperty(result, index, arguments$1[index++]); } result.length = argumentsLength; return result; } }); + var TypeError$s = global_1.TypeError; + // `Array.prototype.{ reduce, reduceRight }` methods implementation var createMethod$6 = function (IS_RIGHT) { return function (that, callbackfn, argumentsLength, memo) { - aFunction(callbackfn); + aCallable(callbackfn); var O = toObject(that); var self = indexedObject(O); - var length = toLength(O.length); + var length = lengthOfArrayLike(O); var index = IS_RIGHT ? length - 1 : 0; var i = IS_RIGHT ? -1 : 1; if (argumentsLength < 2) { while (true) { @@ -3693,7 +4013,7 @@ var doric = (function (exports) { } index += i; if (IS_RIGHT ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); + throw TypeError$s('Reduce of empty array with no initial value'); } } } for (;IS_RIGHT ? index >= 0 : length > index; index += i) { if (index in self) { @@ -3728,7 +4048,8 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-array.prototype.reduce _export({ target: 'Array', proto: true, forced: !STRICT_METHOD$3 || CHROME_BUG$1 }, { reduce: function reduce(callbackfn /* , initialValue */) { - return $reduce$1(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + var length = arguments.length; + return $reduce$1(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } }); @@ -3750,7 +4071,7 @@ var doric = (function (exports) { } }); - var nativeReverse = [].reverse; + var un$Reverse = functionUncurryThis([].reverse); var test$1 = [1, 2]; // `Array.prototype.reverse` method @@ -3761,15 +4082,15 @@ var doric = (function (exports) { reverse: function reverse() { // eslint-disable-next-line no-self-assign -- dirty hack if (isArray(this)) { this.length = this.length; } - return nativeReverse.call(this); + return un$Reverse(this); } }); var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport('slice'); var SPECIES$4 = wellKnownSymbol('species'); - var nativeSlice = [].slice; - var max$4 = Math.max; + var Array$7 = global_1.Array; + var max$5 = Math.max; // `Array.prototype.slice` method // https://tc39.es/ecma262/#sec-array.prototype.slice @@ -3777,7 +4098,7 @@ var doric = (function (exports) { _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { slice: function slice(start, end) { var O = toIndexedObject(this); - var length = toLength(O.length); + var length = lengthOfArrayLike(O); var k = toAbsoluteIndex(start, length); var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible @@ -3785,17 +4106,17 @@ var doric = (function (exports) { if (isArray(O)) { Constructor = O.constructor; // cross-realm fallback - if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) { + if (isConstructor(Constructor) && (Constructor === Array$7 || isArray(Constructor.prototype))) { Constructor = undefined; } else if (isObject(Constructor)) { Constructor = Constructor[SPECIES$4]; if (Constructor === null) { Constructor = undefined; } } - if (Constructor === Array || Constructor === undefined) { - return nativeSlice.call(O, k, fin); + if (Constructor === Array$7 || Constructor === undefined) { + return arraySlice$1(O, k, fin); } } - result = new (Constructor === undefined ? Array : Constructor)(max$4(fin - k, 0)); + result = new (Constructor === undefined ? Array$7 : Constructor)(max$5(fin - k, 0)); for (n = 0; k < fin; k++, n++) { if (k in O) { createProperty(result, n, O[k]); } } result.length = n; return result; @@ -3815,15 +4136,15 @@ var doric = (function (exports) { } }); - // TODO: use something more complex like timsort? var floor$9 = Math.floor; var mergeSort = function (array, comparefn) { var length = array.length; var middle = floor$9(length / 2); return length < 8 ? insertionSort(array, comparefn) : merge( - mergeSort(array.slice(0, middle), comparefn), - mergeSort(array.slice(middle), comparefn), + array, + mergeSort(arraySlice$1(array, 0, middle), comparefn), + mergeSort(arraySlice$1(array, middle), comparefn), comparefn ); }; @@ -3843,20 +4164,17 @@ var doric = (function (exports) { } return array; }; - var merge = function (left, right, comparefn) { + var merge = function (array, left, right, comparefn) { var llength = left.length; var rlength = right.length; var lindex = 0; var rindex = 0; - var result = []; while (lindex < llength || rindex < rlength) { - if (lindex < llength && rindex < rlength) { - result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]); - } else { - result.push(lindex < llength ? left[lindex++] : right[rindex++]); - } - } return result; + array[lindex + rindex] = (lindex < llength && rindex < rlength) + ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] + : lindex < llength ? left[lindex++] : right[rindex++]; + } return array; }; var arraySort = mergeSort; @@ -3872,7 +4190,8 @@ var doric = (function (exports) { var engineWebkitVersion = !!webkit && +webkit[1]; var test = []; - var nativeSort$1 = test.sort; + var un$Sort$1 = functionUncurryThis(test.sort); + var push$f = functionUncurryThis(test.push); // IE8- var FAILS_ON_UNDEFINED = fails(function () { @@ -3920,36 +4239,37 @@ var doric = (function (exports) { return result !== 'DGBEFHACIJK'; }); - var FORCED$l = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT$1; + var FORCED$o = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT$1; var getSortCompare$1 = function (comparefn) { return function (x, y) { if (y === undefined) { return -1; } if (x === undefined) { return 1; } if (comparefn !== undefined) { return +comparefn(x, y) || 0; } - return String(x) > String(y) ? 1 : -1; + return toString_1(x) > toString_1(y) ? 1 : -1; }; }; // `Array.prototype.sort` method // https://tc39.es/ecma262/#sec-array.prototype.sort - _export({ target: 'Array', proto: true, forced: FORCED$l }, { + _export({ target: 'Array', proto: true, forced: FORCED$o }, { sort: function sort(comparefn) { - if (comparefn !== undefined) { aFunction(comparefn); } + if (comparefn !== undefined) { aCallable(comparefn); } var array = toObject(this); - if (STABLE_SORT$1) { return comparefn === undefined ? nativeSort$1.call(array) : nativeSort$1.call(array, comparefn); } + if (STABLE_SORT$1) { return comparefn === undefined ? un$Sort$1(array) : un$Sort$1(array, comparefn); } var items = []; - var arrayLength = toLength(array.length); + var arrayLength = lengthOfArrayLike(array); var itemsLength, index; for (index = 0; index < arrayLength; index++) { - if (index in array) { items.push(array[index]); } + if (index in array) { push$f(items, array[index]); } } - items = arraySort(items, getSortCompare$1(comparefn)); + arraySort(items, getSortCompare$1(comparefn)); + itemsLength = items.length; index = 0; @@ -3980,9 +4300,10 @@ var doric = (function (exports) { var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); - var max$3 = Math.max; - var min$5 = Math.min; - var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; + var TypeError$r = global_1.TypeError; + var max$4 = Math.max; + var min$6 = Math.min; + var MAX_SAFE_INTEGER$1 = 0x1FFFFFFFFFFFFF; var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method @@ -3993,7 +4314,7 @@ var doric = (function (exports) { var arguments$1 = arguments; var O = toObject(this); - var len = toLength(O.length); + var len = lengthOfArrayLike(O); var actualStart = toAbsoluteIndex(start, len); var argumentsLength = arguments.length; var insertCount, actualDeleteCount, A, k, from, to; @@ -4004,10 +4325,10 @@ var doric = (function (exports) { actualDeleteCount = len - actualStart; } else { insertCount = argumentsLength - 2; - actualDeleteCount = min$5(max$3(toInteger(deleteCount), 0), len - actualStart); + actualDeleteCount = min$6(max$4(toIntegerOrInfinity(deleteCount), 0), len - actualStart); } - if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) { - throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); + if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER$1) { + throw TypeError$r(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); } A = arraySpeciesCreate(O, actualDeleteCount); for (k = 0; k < actualDeleteCount; k++) { @@ -4054,30 +4375,36 @@ var doric = (function (exports) { addToUnscopables('flatMap'); // eslint-disable-next-line es/no-typed-arrays -- safe - var arrayBufferNative = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined'; + var arrayBufferNative = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined'; var redefineAll = function (target, src, options) { for (var key in src) { redefine(target, key, src[key], options); } return target; }; - var anInstance = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } return it; + var TypeError$q = global_1.TypeError; + + var anInstance = function (it, Prototype) { + if (objectIsPrototypeOf(Prototype, it)) { return it; } + throw TypeError$q('Incorrect invocation'); }; + var RangeError$b = global_1.RangeError; + // `ToIndex` abstract operation // https://tc39.es/ecma262/#sec-toindex var toIndex = function (it) { if (it === undefined) { return 0; } - var number = toInteger(it); + var number = toIntegerOrInfinity(it); var length = toLength(number); - if (number !== length) { throw RangeError('Wrong length or index'); } + if (number !== length) { throw RangeError$b('Wrong length or index'); } return length; }; // IEEE754 conversions based on https://github.com/feross/ieee754 + + + var Array$6 = global_1.Array; var abs$7 = Math.abs; var pow$4 = Math.pow; var floor$8 = Math.floor; @@ -4085,7 +4412,7 @@ var doric = (function (exports) { var LN2$2 = Math.LN2; var pack = function (number, mantissaLength, bytes) { - var buffer = new Array(bytes); + var buffer = Array$6(bytes); var exponentLength = bytes * 8 - mantissaLength - 1; var eMax = (1 << exponentLength) - 1; var eBias = eMax >> 1; @@ -4165,13 +4492,16 @@ var doric = (function (exports) { }; var getOwnPropertyNames$3 = objectGetOwnPropertyNames.f; - var defineProperty$a = objectDefineProperty.f; + var defineProperty$b = objectDefineProperty.f; - var getInternalState$b = internalState.get; - var setInternalState$e = internalState.set; + + var PROPER_FUNCTION_NAME$3 = functionName.PROPER; + var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE; + var getInternalState$e = internalState.get; + var setInternalState$f = internalState.set; var ARRAY_BUFFER$1 = 'ArrayBuffer'; var DATA_VIEW = 'DataView'; var PROTOTYPE = 'prototype'; @@ -4179,10 +4509,14 @@ var doric = (function (exports) { var WRONG_INDEX = 'Wrong index'; var NativeArrayBuffer$1 = global_1[ARRAY_BUFFER$1]; var $ArrayBuffer = NativeArrayBuffer$1; + var ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE]; var $DataView = global_1[DATA_VIEW]; - var $DataViewPrototype = $DataView && $DataView[PROTOTYPE]; - var ObjectPrototype$1 = Object.prototype; - var RangeError$1 = global_1.RangeError; + var DataViewPrototype$1 = $DataView && $DataView[PROTOTYPE]; + var ObjectPrototype$2 = Object.prototype; + var Array$5 = global_1.Array; + var RangeError$a = global_1.RangeError; + var fill = functionUncurryThis(arrayFill); + var reverse = functionUncurryThis([].reverse); var packIEEE754 = ieee754.pack; var unpackIEEE754 = ieee754.unpack; @@ -4212,24 +4546,24 @@ var doric = (function (exports) { }; var addGetter = function (Constructor, key) { - defineProperty$a(Constructor[PROTOTYPE], key, { get: function () { return getInternalState$b(this)[key]; } }); + defineProperty$b(Constructor[PROTOTYPE], key, { get: function () { return getInternalState$e(this)[key]; } }); }; var get$1 = function (view, count, index, isLittleEndian) { var intIndex = toIndex(index); - var store = getInternalState$b(view); - if (intIndex + count > store.byteLength) { throw RangeError$1(WRONG_INDEX); } - var bytes = getInternalState$b(store.buffer).bytes; + var store = getInternalState$e(view); + if (intIndex + count > store.byteLength) { throw RangeError$a(WRONG_INDEX); } + var bytes = getInternalState$e(store.buffer).bytes; var start = intIndex + store.byteOffset; - var pack = bytes.slice(start, start + count); - return isLittleEndian ? pack : pack.reverse(); + var pack = arraySlice$1(bytes, start, start + count); + return isLittleEndian ? pack : reverse(pack); }; var set$2 = function (view, count, index, conversion, value, isLittleEndian) { var intIndex = toIndex(index); - var store = getInternalState$b(view); - if (intIndex + count > store.byteLength) { throw RangeError$1(WRONG_INDEX); } - var bytes = getInternalState$b(store.buffer).bytes; + var store = getInternalState$e(view); + if (intIndex + count > store.byteLength) { throw RangeError$a(WRONG_INDEX); } + var bytes = getInternalState$e(store.buffer).bytes; var start = intIndex + store.byteOffset; var pack = conversion(+value); for (var i = 0; i < count; i++) { bytes[start + i] = pack[isLittleEndian ? i : count - i - 1]; } @@ -4237,24 +4571,26 @@ var doric = (function (exports) { if (!arrayBufferNative) { $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER$1); + anInstance(this, ArrayBufferPrototype); var byteLength = toIndex(length); - setInternalState$e(this, { - bytes: arrayFill.call(new Array(byteLength), 0), + setInternalState$f(this, { + bytes: fill(Array$5(byteLength), 0), byteLength: byteLength }); if (!descriptors) { this.byteLength = byteLength; } }; + ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE]; + $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = getInternalState$b(buffer).byteLength; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) { throw RangeError$1('Wrong offset'); } + anInstance(this, DataViewPrototype$1); + anInstance(buffer, ArrayBufferPrototype); + var bufferLength = getInternalState$e(buffer).byteLength; + var offset = toIntegerOrInfinity(byteOffset); + if (offset < 0 || offset > bufferLength) { throw RangeError$a('Wrong offset'); } byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) { throw RangeError$1(WRONG_LENGTH); } - setInternalState$e(this, { + if (offset + byteLength > bufferLength) { throw RangeError$a(WRONG_LENGTH); } + setInternalState$f(this, { buffer: buffer, byteLength: byteLength, byteOffset: offset @@ -4266,6 +4602,8 @@ var doric = (function (exports) { } }; + DataViewPrototype$1 = $DataView[PROTOTYPE]; + if (descriptors) { addGetter($ArrayBuffer, 'byteLength'); addGetter($DataView, 'buffer'); @@ -4273,7 +4611,7 @@ var doric = (function (exports) { addGetter($DataView, 'byteOffset'); } - redefineAll($DataView[PROTOTYPE], { + redefineAll(DataViewPrototype$1, { getInt8: function getInt8(byteOffset) { return get$1(this, 1, byteOffset)[0] << 24 >> 24; }, @@ -4326,6 +4664,7 @@ var doric = (function (exports) { } }); } else { + var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME$3 && NativeArrayBuffer$1.name !== ARRAY_BUFFER$1; /* eslint-disable no-new -- required for testing */ if (!fails(function () { NativeArrayBuffer$1(1); @@ -4335,38 +4674,43 @@ var doric = (function (exports) { new NativeArrayBuffer$1(); new NativeArrayBuffer$1(1.5); new NativeArrayBuffer$1(NaN); - return NativeArrayBuffer$1.name != ARRAY_BUFFER$1; + return INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME; })) { /* eslint-enable no-new -- required for testing */ $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); + anInstance(this, ArrayBufferPrototype); return new NativeArrayBuffer$1(toIndex(length)); }; - var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer$1[PROTOTYPE]; + + $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype; + for (var keys$2 = getOwnPropertyNames$3(NativeArrayBuffer$1), j$1 = 0, key$1; keys$2.length > j$1;) { if (!((key$1 = keys$2[j$1++]) in $ArrayBuffer)) { createNonEnumerableProperty($ArrayBuffer, key$1, NativeArrayBuffer$1[key$1]); } } + ArrayBufferPrototype.constructor = $ArrayBuffer; + } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) { + createNonEnumerableProperty(NativeArrayBuffer$1, 'name', ARRAY_BUFFER$1); } // WebKit bug - the same parent prototype for typed arrays and data view - if (objectSetPrototypeOf && objectGetPrototypeOf($DataViewPrototype) !== ObjectPrototype$1) { - objectSetPrototypeOf($DataViewPrototype, ObjectPrototype$1); + if (objectSetPrototypeOf && objectGetPrototypeOf(DataViewPrototype$1) !== ObjectPrototype$2) { + objectSetPrototypeOf(DataViewPrototype$1, ObjectPrototype$2); } // iOS Safari 7.x bug var testView = new $DataView(new $ArrayBuffer(2)); - var $setInt8 = $DataViewPrototype.setInt8; + var $setInt8 = functionUncurryThis(DataViewPrototype$1.setInt8); testView.setInt8(0, 2147483648); testView.setInt8(1, 2147483649); - if (testView.getInt8(0) || !testView.getInt8(1)) { redefineAll($DataViewPrototype, { + if (testView.getInt8(0) || !testView.getInt8(1)) { redefineAll(DataViewPrototype$1, { setInt8: function setInt8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); + $setInt8(this, byteOffset, value << 24 >> 24); }, setUint8: function setUint8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); + $setInt8(this, byteOffset, value << 24 >> 24); } }, { unsafe: true }); } } @@ -4391,7 +4735,8 @@ var doric = (function (exports) { setSpecies(ARRAY_BUFFER); - var defineProperty$9 = objectDefineProperty.f; + var defineProperty$a = objectDefineProperty.f; + @@ -4403,15 +4748,16 @@ var doric = (function (exports) { var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; var TypedArray = Int8Array$3 && objectGetPrototypeOf(Int8Array$3); var TypedArrayPrototype = Int8ArrayPrototype && objectGetPrototypeOf(Int8ArrayPrototype); - var ObjectPrototype = Object.prototype; - var isPrototypeOf = ObjectPrototype.isPrototypeOf; + var ObjectPrototype$1 = Object.prototype; + var TypeError$p = global_1.TypeError; var TO_STRING_TAG$5 = wellKnownSymbol('toStringTag'); var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG'); + var TYPED_ARRAY_CONSTRUCTOR$1 = uid('TYPED_ARRAY_CONSTRUCTOR'); // Fixing native typed arrays in Opera Presto crashes the browser, see #595 var NATIVE_ARRAY_BUFFER_VIEWS$2 = arrayBufferNative && !!objectSetPrototypeOf && classof(global_1.opera) !== 'Opera'; var TYPED_ARRAY_TAG_REQIRED = false; - var NAME$1; + var NAME$1, Constructor, Prototype; var TypedArrayConstructorsList = { Int8Array: 1, @@ -4434,38 +4780,32 @@ var doric = (function (exports) { if (!isObject(it)) { return false; } var klass = classof(it); return klass === 'DataView' - || has$1(TypedArrayConstructorsList, klass) - || has$1(BigIntArrayConstructorsList, klass); + || hasOwnProperty_1(TypedArrayConstructorsList, klass) + || hasOwnProperty_1(BigIntArrayConstructorsList, klass); }; var isTypedArray = function (it) { if (!isObject(it)) { return false; } var klass = classof(it); - return has$1(TypedArrayConstructorsList, klass) - || has$1(BigIntArrayConstructorsList, klass); + return hasOwnProperty_1(TypedArrayConstructorsList, klass) + || hasOwnProperty_1(BigIntArrayConstructorsList, klass); }; - var aTypedArray$r = function (it) { + var aTypedArray$t = function (it) { if (isTypedArray(it)) { return it; } - throw TypeError('Target is not a typed array'); + throw TypeError$p('Target is not a typed array'); }; - var aTypedArrayConstructor$5 = function (C) { - if (objectSetPrototypeOf) { - if (isPrototypeOf.call(TypedArray, C)) { return C; } - } else { for (var ARRAY in TypedArrayConstructorsList) { if (has$1(TypedArrayConstructorsList, NAME$1)) { - var TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) { - return C; - } - } } } throw TypeError('Target is not a typed array constructor'); + var aTypedArrayConstructor$4 = function (C) { + if (isCallable(C) && (!objectSetPrototypeOf || objectIsPrototypeOf(TypedArray, C))) { return C; } + throw TypeError$p(tryToString(C) + ' is not a typed array constructor'); }; - var exportTypedArrayMethod$s = function (KEY, property, forced) { + var exportTypedArrayMethod$u = function (KEY, property, forced) { if (!descriptors) { return; } if (forced) { for (var ARRAY in TypedArrayConstructorsList) { var TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && has$1(TypedArrayConstructor.prototype, KEY)) { try { + if (TypedArrayConstructor && hasOwnProperty_1(TypedArrayConstructor.prototype, KEY)) { try { delete TypedArrayConstructor.prototype[KEY]; } catch (error) { /* empty */ } } } } @@ -4475,13 +4815,13 @@ var doric = (function (exports) { } }; - var exportTypedArrayStaticMethod$2 = function (KEY, property, forced) { + var exportTypedArrayStaticMethod$3 = function (KEY, property, forced) { var ARRAY, TypedArrayConstructor; if (!descriptors) { return; } if (objectSetPrototypeOf) { if (forced) { for (ARRAY in TypedArrayConstructorsList) { TypedArrayConstructor = global_1[ARRAY]; - if (TypedArrayConstructor && has$1(TypedArrayConstructor, KEY)) { try { + if (TypedArrayConstructor && hasOwnProperty_1(TypedArrayConstructor, KEY)) { try { delete TypedArrayConstructor[KEY]; } catch (error) { /* empty */ } } } } @@ -4501,21 +4841,30 @@ var doric = (function (exports) { }; for (NAME$1 in TypedArrayConstructorsList) { - if (!global_1[NAME$1]) { NATIVE_ARRAY_BUFFER_VIEWS$2 = false; } + Constructor = global_1[NAME$1]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) { createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR$1, Constructor); } + else { NATIVE_ARRAY_BUFFER_VIEWS$2 = false; } + } + + for (NAME$1 in BigIntArrayConstructorsList) { + Constructor = global_1[NAME$1]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) { createNonEnumerableProperty(Prototype, TYPED_ARRAY_CONSTRUCTOR$1, Constructor); } } // WebKit bug - typed arrays constructors prototype is Object.prototype - if (!NATIVE_ARRAY_BUFFER_VIEWS$2 || typeof TypedArray != 'function' || TypedArray === Function.prototype) { + if (!NATIVE_ARRAY_BUFFER_VIEWS$2 || !isCallable(TypedArray) || TypedArray === Function.prototype) { // eslint-disable-next-line no-shadow -- safe TypedArray = function TypedArray() { - throw TypeError('Incorrect invocation'); + throw TypeError$p('Incorrect invocation'); }; if (NATIVE_ARRAY_BUFFER_VIEWS$2) { for (NAME$1 in TypedArrayConstructorsList) { if (global_1[NAME$1]) { objectSetPrototypeOf(global_1[NAME$1], TypedArray); } } } } - if (!NATIVE_ARRAY_BUFFER_VIEWS$2 || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + if (!NATIVE_ARRAY_BUFFER_VIEWS$2 || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype$1) { TypedArrayPrototype = TypedArray.prototype; if (NATIVE_ARRAY_BUFFER_VIEWS$2) { for (NAME$1 in TypedArrayConstructorsList) { if (global_1[NAME$1]) { objectSetPrototypeOf(global_1[NAME$1].prototype, TypedArrayPrototype); } @@ -4527,9 +4876,9 @@ var doric = (function (exports) { objectSetPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype); } - if (descriptors && !has$1(TypedArrayPrototype, TO_STRING_TAG$5)) { + if (descriptors && !hasOwnProperty_1(TypedArrayPrototype, TO_STRING_TAG$5)) { TYPED_ARRAY_TAG_REQIRED = true; - defineProperty$9(TypedArrayPrototype, TO_STRING_TAG$5, { get: function () { + defineProperty$a(TypedArrayPrototype, TO_STRING_TAG$5, { get: function () { return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined; } }); for (NAME$1 in TypedArrayConstructorsList) { if (global_1[NAME$1]) { @@ -4539,11 +4888,12 @@ var doric = (function (exports) { var arrayBufferViewCore = { NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS$2, + TYPED_ARRAY_CONSTRUCTOR: TYPED_ARRAY_CONSTRUCTOR$1, TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG, - aTypedArray: aTypedArray$r, - aTypedArrayConstructor: aTypedArrayConstructor$5, - exportTypedArrayMethod: exportTypedArrayMethod$s, - exportTypedArrayStaticMethod: exportTypedArrayStaticMethod$2, + aTypedArray: aTypedArray$t, + aTypedArrayConstructor: aTypedArrayConstructor$4, + exportTypedArrayMethod: exportTypedArrayMethod$u, + exportTypedArrayStaticMethod: exportTypedArrayStaticMethod$3, isView: isView, isTypedArray: isTypedArray, TypedArray: TypedArray, @@ -4558,6 +4908,14 @@ var doric = (function (exports) { isView: arrayBufferViewCore.isView }); + var TypeError$o = global_1.TypeError; + + // `Assert: IsConstructor(argument) is true` + var aConstructor = function (argument) { + if (isConstructor(argument)) { return argument; } + throw TypeError$o(tryToString(argument) + ' is not a constructor'); + }; + var SPECIES$2 = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation @@ -4565,12 +4923,15 @@ var doric = (function (exports) { var speciesConstructor = function (O, defaultConstructor) { var C = anObject(O).constructor; var S; - return C === undefined || (S = anObject(C)[SPECIES$2]) == undefined ? defaultConstructor : aFunction(S); + return C === undefined || (S = anObject(C)[SPECIES$2]) == undefined ? defaultConstructor : aConstructor(S); }; var ArrayBuffer$2 = arrayBuffer.ArrayBuffer; var DataView$1 = arrayBuffer.DataView; - var nativeArrayBufferSlice = ArrayBuffer$2.prototype.slice; + var DataViewPrototype = DataView$1.prototype; + var un$ArrayBufferSlice = functionUncurryThis(ArrayBuffer$2.prototype.slice); + var getUint8 = functionUncurryThis(DataViewPrototype.getUint8); + var setUint8 = functionUncurryThis(DataViewPrototype.setUint8); var INCORRECT_SLICE = fails(function () { return !new ArrayBuffer$2(2).slice(1, undefined).byteLength; @@ -4580,8 +4941,8 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice _export({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, { slice: function slice(start, end) { - if (nativeArrayBufferSlice !== undefined && end === undefined) { - return nativeArrayBufferSlice.call(anObject(this), start); // FF fix + if (un$ArrayBufferSlice && end === undefined) { + return un$ArrayBufferSlice(anObject(this), start); // FF fix } var length = anObject(this).byteLength; var first = toAbsoluteIndex(start, length); @@ -4591,7 +4952,7 @@ var doric = (function (exports) { var viewTarget = new DataView$1(result); var index = 0; while (first < fin) { - viewTarget.setUint8(index++, viewSource.getUint8(first++)); + setUint8(viewTarget, index++, getUint8(viewSource, first++)); } return result; } }); @@ -4602,21 +4963,62 @@ var doric = (function (exports) { DataView: arrayBuffer.DataView }); + var FORCED$n = fails(function () { + return new Date(16e11).getYear() !== 120; + }); + + var getFullYear = functionUncurryThis(Date.prototype.getFullYear); + + // `Date.prototype.getYear` method + // https://tc39.es/ecma262/#sec-date.prototype.getyear + _export({ target: 'Date', proto: true, forced: FORCED$n }, { + getYear: function getYear() { + return getFullYear(this) - 1900; + } + }); + + var Date$1 = global_1.Date; + var getTime$3 = functionUncurryThis(Date$1.prototype.getTime); + // `Date.now` method // https://tc39.es/ecma262/#sec-date.now _export({ target: 'Date', stat: true }, { now: function now() { - return new Date().getTime(); + return getTime$3(new Date$1()); } }); + var DatePrototype$3 = Date.prototype; + var getTime$2 = functionUncurryThis(DatePrototype$3.getTime); + var setFullYear = functionUncurryThis(DatePrototype$3.setFullYear); + + // `Date.prototype.setYear` method + // https://tc39.es/ecma262/#sec-date.prototype.setyear + _export({ target: 'Date', proto: true }, { + setYear: function setYear(year) { + // validate + getTime$2(this); + var yi = toIntegerOrInfinity(year); + var yyyy = 0 <= yi && yi <= 99 ? yi + 1900 : yi; + return setFullYear(this, yyyy); + } + }); + + // `Date.prototype.toGMTString` method + // https://tc39.es/ecma262/#sec-date.prototype.togmtstring + _export({ target: 'Date', proto: true }, { + toGMTString: Date.prototype.toUTCString + }); + + var RangeError$9 = global_1.RangeError; + // `String.prototype.repeat` method implementation // https://tc39.es/ecma262/#sec-string.prototype.repeat var stringRepeat = function repeat(count) { - var str = String(requireObjectCoercible(this)); + var str = toString_1(requireObjectCoercible(this)); var result = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) { throw RangeError('Wrong number of repetitions'); } + var n = toIntegerOrInfinity(count); + if (n < 0 || n == Infinity) { throw RangeError$9('Wrong number of repetitions'); } for (;n > 0; (n >>>= 1) && (str += str)) { if (n & 1) { result += str; } } return result; }; @@ -4626,20 +5028,24 @@ var doric = (function (exports) { + + + var repeat$1 = functionUncurryThis(stringRepeat); + var stringSlice$e = functionUncurryThis(''.slice); var ceil$1 = Math.ceil; // `String.prototype.{ padStart, padEnd }` methods implementation var createMethod$5 = function (IS_END) { return function ($this, maxLength, fillString) { - var S = String(requireObjectCoercible($this)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); + var S = toString_1(requireObjectCoercible($this)); var intMaxLength = toLength(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString_1(fillString); var fillLen, stringFiller; if (intMaxLength <= stringLength || fillStr == '') { return S; } fillLen = intMaxLength - stringLength; - stringFiller = stringRepeat.call(fillStr, ceil$1(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) { stringFiller = stringFiller.slice(0, fillLen); } + stringFiller = repeat$1(fillStr, ceil$1(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) { stringFiller = stringSlice$e(stringFiller, 0, fillLen); } return IS_END ? S + stringFiller : stringFiller + S; }; }; @@ -4655,33 +5061,41 @@ var doric = (function (exports) { var padStart = stringPad.start; + var RangeError$8 = global_1.RangeError; var abs$6 = Math.abs; var DatePrototype$2 = Date.prototype; - var getTime$1 = DatePrototype$2.getTime; - var nativeDateToISOString = DatePrototype$2.toISOString; + var n$DateToISOString = DatePrototype$2.toISOString; + var getTime$1 = functionUncurryThis(DatePrototype$2.getTime); + var getUTCDate = functionUncurryThis(DatePrototype$2.getUTCDate); + var getUTCFullYear = functionUncurryThis(DatePrototype$2.getUTCFullYear); + var getUTCHours = functionUncurryThis(DatePrototype$2.getUTCHours); + var getUTCMilliseconds = functionUncurryThis(DatePrototype$2.getUTCMilliseconds); + var getUTCMinutes = functionUncurryThis(DatePrototype$2.getUTCMinutes); + var getUTCMonth = functionUncurryThis(DatePrototype$2.getUTCMonth); + var getUTCSeconds = functionUncurryThis(DatePrototype$2.getUTCSeconds); // `Date.prototype.toISOString` method implementation // https://tc39.es/ecma262/#sec-date.prototype.toisostring // PhantomJS / old WebKit fails here: var dateToIsoString = (fails(function () { - return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; + return n$DateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; }) || !fails(function () { - nativeDateToISOString.call(new Date(NaN)); + n$DateToISOString.call(new Date(NaN)); })) ? function toISOString() { - if (!isFinite(getTime$1.call(this))) { throw RangeError('Invalid time value'); } + if (!isFinite(getTime$1(this))) { throw RangeError$8('Invalid time value'); } var date = this; - var year = date.getUTCFullYear(); - var milliseconds = date.getUTCMilliseconds(); + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; return sign + padStart(abs$6(year), sign ? 6 : 4, 0) + - '-' + padStart(date.getUTCMonth() + 1, 2, 0) + - '-' + padStart(date.getUTCDate(), 2, 0) + - 'T' + padStart(date.getUTCHours(), 2, 0) + - ':' + padStart(date.getUTCMinutes(), 2, 0) + - ':' + padStart(date.getUTCSeconds(), 2, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + '.' + padStart(milliseconds, 3, 0) + 'Z'; - } : nativeDateToISOString; + } : n$DateToISOString; // `Date.prototype.toISOString` method // https://tc39.es/ecma262/#sec-date.prototype.toisostring @@ -4690,28 +5104,31 @@ var doric = (function (exports) { toISOString: dateToIsoString }); - var FORCED$k = fails(function () { + var FORCED$m = fails(function () { return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; }); // `Date.prototype.toJSON` method // https://tc39.es/ecma262/#sec-date.prototype.tojson - _export({ target: 'Date', proto: true, forced: FORCED$k }, { + _export({ target: 'Date', proto: true, forced: FORCED$m }, { // eslint-disable-next-line no-unused-vars -- required for `.length` toJSON: function toJSON(key) { var O = toObject(this); - var pv = toPrimitive(O); + var pv = toPrimitive(O, 'number'); return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); } }); + var TypeError$n = global_1.TypeError; + // `Date.prototype[@@toPrimitive](hint)` method implementation // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive var dateToPrimitive = function (hint) { - if (hint !== 'string' && hint !== 'number' && hint !== 'default') { - throw TypeError('Incorrect hint'); - } return toPrimitive(anObject(this), hint !== 'number'); + anObject(this); + if (hint === 'string' || hint === 'default') { hint = 'string'; } + else if (hint !== 'number') { throw TypeError$n('Incorrect hint'); } + return ordinaryToPrimitive(this, hint); }; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); @@ -4719,47 +5136,88 @@ var doric = (function (exports) { // `Date.prototype[@@toPrimitive]` method // https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive - if (!(TO_PRIMITIVE in DatePrototype$1)) { - createNonEnumerableProperty(DatePrototype$1, TO_PRIMITIVE, dateToPrimitive); + if (!hasOwnProperty_1(DatePrototype$1, TO_PRIMITIVE)) { + redefine(DatePrototype$1, TO_PRIMITIVE, dateToPrimitive); } var DatePrototype = Date.prototype; var INVALID_DATE = 'Invalid Date'; var TO_STRING$1 = 'toString'; - var nativeDateToString = DatePrototype[TO_STRING$1]; - var getTime = DatePrototype.getTime; + var un$DateToString = functionUncurryThis(DatePrototype[TO_STRING$1]); + var getTime = functionUncurryThis(DatePrototype.getTime); // `Date.prototype.toString` method // https://tc39.es/ecma262/#sec-date.prototype.tostring - if (new Date(NaN) + '' != INVALID_DATE) { + if (String(new Date(NaN)) != INVALID_DATE) { redefine(DatePrototype, TO_STRING$1, function toString() { - var value = getTime.call(this); + var value = getTime(this); // eslint-disable-next-line no-self-compare -- NaN check - return value === value ? nativeDateToString.call(this) : INVALID_DATE; + return value === value ? un$DateToString(this) : INVALID_DATE; }); } - var slice$1 = [].slice; + var charAt$f = functionUncurryThis(''.charAt); + var charCodeAt$4 = functionUncurryThis(''.charCodeAt); + var exec$8 = functionUncurryThis(/./.exec); + var numberToString$3 = functionUncurryThis(1.0.toString); + var toUpperCase = functionUncurryThis(''.toUpperCase); + + var raw = /[\w*+\-./@]/; + + var hex$1 = function (code, length) { + var result = numberToString$3(code, 16); + while (result.length < length) { result = '0' + result; } + return result; + }; + + // `escape` method + // https://tc39.es/ecma262/#sec-escape-string + _export({ global: true }, { + escape: function escape(string) { + var str = toString_1(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, code; + while (index < length) { + chr = charAt$f(str, index++); + if (exec$8(raw, chr)) { + result += chr; + } else { + code = charCodeAt$4(chr, 0); + if (code < 256) { + result += '%' + hex$1(code, 2); + } else { + result += '%u' + toUpperCase(hex$1(code, 4)); + } + } + } return result; + } + }); + + var Function$3 = global_1.Function; + var concat$3 = functionUncurryThis([].concat); + var join$6 = functionUncurryThis([].join); var factories = {}; var construct = function (C, argsLength, args) { - if (!(argsLength in factories)) { + if (!hasOwnProperty_1(factories, argsLength)) { for (var list = [], i = 0; i < argsLength; i++) { list[i] = 'a[' + i + ']'; } - // eslint-disable-next-line no-new-func -- we have no proper alternatives, IE8- only - factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')'); + factories[argsLength] = Function$3('C,a', 'return new C(' + join$6(list, ',') + ')'); } return factories[argsLength](C, args); }; // `Function.prototype.bind` method implementation // https://tc39.es/ecma262/#sec-function.prototype.bind - var functionBind = Function.bind || function bind(that /* , ...args */) { - var fn = aFunction(this); - var partArgs = slice$1.call(arguments, 1); + var functionBind = Function$3.bind || function bind(that /* , ...args */) { + var F = aCallable(this); + var Prototype = F.prototype; + var partArgs = arraySlice$1(arguments, 1); var boundFunction = function bound(/* args... */) { - var args = partArgs.concat(slice$1.call(arguments)); - return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args); + var args = concat$3(partArgs, arraySlice$1(arguments)); + return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args); }; - if (isObject(fn.prototype)) { boundFunction.prototype = fn.prototype; } + if (isObject(Prototype)) { boundFunction.prototype = Prototype; } return boundFunction; }; @@ -4776,29 +5234,33 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-function.prototype-@@hasinstance if (!(HAS_INSTANCE in FunctionPrototype$1)) { objectDefineProperty.f(FunctionPrototype$1, HAS_INSTANCE, { value: function (O) { - if (typeof this != 'function' || !isObject(O)) { return false; } - if (!isObject(this.prototype)) { return O instanceof this; } + if (!isCallable(this) || !isObject(O)) { return false; } + var P = this.prototype; + if (!isObject(P)) { return O instanceof this; } // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: - while (O = objectGetPrototypeOf(O)) { if (this.prototype === O) { return true; } } + while (O = objectGetPrototypeOf(O)) { if (P === O) { return true; } } return false; } }); } - var defineProperty$8 = objectDefineProperty.f; + var FUNCTION_NAME_EXISTS = functionName.EXISTS; + + var defineProperty$9 = objectDefineProperty.f; var FunctionPrototype = Function.prototype; - var FunctionPrototypeToString = FunctionPrototype.toString; + var functionToString = functionUncurryThis(FunctionPrototype.toString); var nameRE = /^\s*function ([^ (]*)/; + var regExpExec = functionUncurryThis(nameRE.exec); var NAME = 'name'; // Function instances `.name` property // https://tc39.es/ecma262/#sec-function-instances-name - if (descriptors && !(NAME in FunctionPrototype)) { - defineProperty$8(FunctionPrototype, NAME, { + if (descriptors && !FUNCTION_NAME_EXISTS) { + defineProperty$9(FunctionPrototype, NAME, { configurable: true, get: function () { try { - return FunctionPrototypeToString.call(this).match(nameRE)[1]; + return regExpExec(nameRE, functionToString(this))[1]; } catch (error) { return ''; } @@ -4812,20 +5274,27 @@ var doric = (function (exports) { globalThis: global_1 }); + var Array$4 = global_1.Array; var $stringify = getBuiltIn('JSON', 'stringify'); - var re = /[\uD800-\uDFFF]/g; + var exec$7 = functionUncurryThis(/./.exec); + var charAt$e = functionUncurryThis(''.charAt); + var charCodeAt$3 = functionUncurryThis(''.charCodeAt); + var replace$8 = functionUncurryThis(''.replace); + var numberToString$2 = functionUncurryThis(1.0.toString); + + var tester = /[\uD800-\uDFFF]/g; var low = /^[\uD800-\uDBFF]$/; var hi = /^[\uDC00-\uDFFF]$/; var fix = function (match, offset, string) { - var prev = string.charAt(offset - 1); - var next = string.charAt(offset + 1); - if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) { - return '\\u' + match.charCodeAt(0).toString(16); + var prev = charAt$e(string, offset - 1); + var next = charAt$e(string, offset + 1); + if ((exec$7(low, match) && !exec$7(hi, next)) || (exec$7(hi, match) && !exec$7(low, prev))) { + return '\\u' + numberToString$2(charCodeAt$3(match, 0), 16); } return match; }; - var FORCED$j = fails(function () { + var FORCED$l = fails(function () { return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || $stringify('\uDEAD') !== '"\\udead"'; }); @@ -4834,11 +5303,14 @@ var doric = (function (exports) { // `JSON.stringify` method // https://tc39.es/ecma262/#sec-json.stringify // https://github.com/tc39/proposal-well-formed-stringify - _export({ target: 'JSON', stat: true, forced: FORCED$j }, { + _export({ target: 'JSON', stat: true, forced: FORCED$l }, { // eslint-disable-next-line no-unused-vars -- required for `.length` stringify: function stringify(it, replacer, space) { - var result = $stringify.apply(null, arguments); - return typeof result == 'string' ? result.replace(re, fix) : result; + var arguments$1 = arguments; + + for (var i = 0, l = arguments.length, args = Array$4(l); i < l; i++) { args[i] = arguments$1[i]; } + var result = functionApply($stringify, null, args); + return typeof result == 'string' ? replace$8(result, tester, fix) : result; } }); } @@ -4857,6 +5329,9 @@ var doric = (function (exports) { + + + var REQUIRED = false; var METADATA = uid('meta'); var id = 0; @@ -4867,7 +5342,7 @@ var doric = (function (exports) { var setMetadata = function (it) { defineProperty(it, METADATA, { value: { - objectID: 'O' + ++id, // object ID + objectID: 'O' + id++, // object ID weakData: {} // weak collections IDs } }); }; @@ -4875,7 +5350,7 @@ var doric = (function (exports) { var fastKey = function (it, create) { // return a primitive with prefix if (!isObject(it)) { return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; } - if (!has$1(it, METADATA)) { + if (!hasOwnProperty_1(it, METADATA)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) { return 'F'; } // not necessary to add metadata @@ -4887,7 +5362,7 @@ var doric = (function (exports) { }; var getWeakData = function (it, create) { - if (!has$1(it, METADATA)) { + if (!hasOwnProperty_1(it, METADATA)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) { return true; } // not necessary to add metadata @@ -4900,12 +5375,38 @@ var doric = (function (exports) { // add metadata on freeze-family methods calling var onFreeze = function (it) { - if (freezing && meta.REQUIRED && isExtensible(it) && !has$1(it, METADATA)) { setMetadata(it); } + if (freezing && REQUIRED && isExtensible(it) && !hasOwnProperty_1(it, METADATA)) { setMetadata(it); } return it; }; + var enable = function () { + meta.enable = function () { /* empty */ }; + REQUIRED = true; + var getOwnPropertyNames = objectGetOwnPropertyNames.f; + var splice = functionUncurryThis([].splice); + var test = {}; + test[METADATA] = 1; + + // prevent exposing of metadata key + if (getOwnPropertyNames(test).length) { + objectGetOwnPropertyNames.f = function (it) { + var result = getOwnPropertyNames(it); + for (var i = 0, length = result.length; i < length; i++) { + if (result[i] === METADATA) { + splice(result, i, 1); + break; + } + } return result; + }; + + _export({ target: 'Object', stat: true, forced: true }, { + getOwnPropertyNames: objectGetOwnPropertyNamesExternal.f + }); + } + }; + var meta = module.exports = { - REQUIRED: false, + enable: enable, fastKey: fastKey, getWeakData: getWeakData, onFreeze: onFreeze @@ -4921,7 +5422,7 @@ var doric = (function (exports) { // it can work only with native `setPrototypeOf` objectSetPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this - typeof (NewTarget = dummy.constructor) == 'function' && + isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype @@ -4939,19 +5440,19 @@ var doric = (function (exports) { var exported = {}; var fixMethod = function (KEY) { - var nativeMethod = NativePrototype[KEY]; + var uncurriedNativeMethod = functionUncurryThis(NativePrototype[KEY]); redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); + uncurriedNativeMethod(this, value === 0 ? 0 : value); return this; } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); + return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); + return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); + uncurriedNativeMethod(this, key === 0 ? 0 : key, value); return this; } ); @@ -4959,7 +5460,7 @@ var doric = (function (exports) { var REPLACE = isForced_1( CONSTRUCTOR_NAME, - typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { + !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); })) ); @@ -4967,7 +5468,7 @@ var doric = (function (exports) { if (REPLACE) { // create collection constructor Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - internalMetadata.REQUIRED = true; + internalMetadata.enable(); } else if (isForced_1(CONSTRUCTOR_NAME, true)) { var instance = new Constructor(); // early implementations not supports chaining @@ -4988,7 +5489,7 @@ var doric = (function (exports) { if (!ACCEPT_ITERABLES) { Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, Constructor, CONSTRUCTOR_NAME); + anInstance(dummy, NativePrototype); var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); if (iterable != undefined) { iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); } return that; @@ -5019,7 +5520,7 @@ var doric = (function (exports) { return Constructor; }; - var defineProperty$7 = objectDefineProperty.f; + var defineProperty$8 = objectDefineProperty.f; @@ -5031,14 +5532,14 @@ var doric = (function (exports) { var fastKey = internalMetadata.fastKey; - var setInternalState$d = internalState.set; + var setInternalState$e = internalState.set; var internalStateGetterFor$1 = internalState.getterFor; var collectionStrong = { getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState$d(that, { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState$e(that, { type: CONSTRUCTOR_NAME, index: objectCreate(null), first: undefined, @@ -5049,6 +5550,8 @@ var doric = (function (exports) { if (iterable != undefined) { iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); } }); + var Prototype = Constructor.prototype; + var getInternalState = internalStateGetterFor$1(CONSTRUCTOR_NAME); var define = function (that, key, value) { @@ -5089,7 +5592,7 @@ var doric = (function (exports) { } }; - redefineAll(C.prototype, { + redefineAll(Prototype, { // `{ Map, Set }.prototype.clear()` methods // https://tc39.es/ecma262/#sec-map.prototype.clear // https://tc39.es/ecma262/#sec-set.prototype.clear @@ -5133,7 +5636,7 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-set.prototype.foreach forEach: function forEach(callbackfn /* , that = undefined */) { var state = getInternalState(this); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var entry; while (entry = entry ? entry.next : state.first) { boundFunction(entry.value, entry.key, this); @@ -5149,7 +5652,7 @@ var doric = (function (exports) { } }); - redefineAll(C.prototype, IS_MAP ? { + redefineAll(Prototype, IS_MAP ? { // `Map.prototype.get(key)` method // https://tc39.es/ecma262/#sec-map.prototype.get get: function get(key) { @@ -5168,14 +5671,14 @@ var doric = (function (exports) { return define(this, value = value === 0 ? 0 : value, value); } }); - if (descriptors) { defineProperty$7(C.prototype, 'size', { + if (descriptors) { defineProperty$8(Prototype, 'size', { get: function () { return getInternalState(this).size; } }); } - return C; + return Constructor; }, - setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) { + setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; var getInternalCollectionState = internalStateGetterFor$1(CONSTRUCTOR_NAME); var getInternalIteratorState = internalStateGetterFor$1(ITERATOR_NAME); @@ -5188,8 +5691,8 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-set.prototype.keys // https://tc39.es/ecma262/#sec-set.prototype.values // https://tc39.es/ecma262/#sec-set.prototype-@@iterator - defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { - setInternalState$d(this, { + defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { + setInternalState$e(this, { type: ITERATOR_NAME, target: iterated, state: getInternalCollectionState(iterated), @@ -5223,7 +5726,7 @@ var doric = (function (exports) { // `Map` constructor // https://tc39.es/ecma262/#sec-map-objects - var es_map = collection('Map', function (init) { + collection('Map', function (init) { return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionStrong); @@ -5242,7 +5745,7 @@ var doric = (function (exports) { var sqrt$2 = Math.sqrt; var LN2$1 = Math.LN2; - var FORCED$i = !$acosh + var FORCED$k = !$acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 || Math.floor($acosh(Number.MAX_VALUE)) != 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN @@ -5250,7 +5753,7 @@ var doric = (function (exports) { // `Math.acosh` method // https://tc39.es/ecma262/#sec-math.acosh - _export({ target: 'Math', stat: true, forced: FORCED$i }, { + _export({ target: 'Math', stat: true, forced: FORCED$k }, { acosh: function acosh(x) { return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? log$6(x) + LN2$1 @@ -5421,14 +5924,14 @@ var doric = (function (exports) { // eslint-disable-next-line es/no-math-imul -- required for testing var $imul = Math.imul; - var FORCED$h = fails(function () { + var FORCED$j = fails(function () { return $imul(0xFFFFFFFF, 5) != -5 || $imul.length != 2; }); // `Math.imul` method // https://tc39.es/ecma262/#sec-math.imul // some WebKit versions fails with big numbers, some has wrong arity - _export({ target: 'Math', stat: true, forced: FORCED$h }, { + _export({ target: 'Math', stat: true, forced: FORCED$j }, { imul: function imul(x, y) { var UINT16 = 0xFFFF; var xn = +x; @@ -5475,7 +5978,7 @@ var doric = (function (exports) { var exp$1 = Math.exp; var E = Math.E; - var FORCED$g = fails(function () { + var FORCED$i = fails(function () { // eslint-disable-next-line es/no-math-sinh -- required for testing return Math.sinh(-2e-17) != -2e-17; }); @@ -5483,7 +5986,7 @@ var doric = (function (exports) { // `Math.sinh` method // https://tc39.es/ecma262/#sec-math.sinh // V8 near Chromium 38 has a problem with very small numbers - _export({ target: 'Math', stat: true, forced: FORCED$g }, { + _export({ target: 'Math', stat: true, forced: FORCED$i }, { sinh: function sinh(x) { return abs$1(x = +x) < 1 ? (mathExpm1(x) - mathExpm1(-x)) / 2 : (exp$1(x - 1) - exp$1(-x - 1)) * (E / 2); } @@ -5516,10 +6019,15 @@ var doric = (function (exports) { } }); + // `thisNumberValue` abstract operation + // https://tc39.es/ecma262/#sec-thisnumbervalue + var thisNumberValue = functionUncurryThis(1.0.valueOf); + // a string of all valid unicode whitespaces var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + var replace$7 = functionUncurryThis(''.replace); var whitespace = '[' + whitespaces + ']'; var ltrim = RegExp('^' + whitespace + whitespace + '*'); var rtrim = RegExp(whitespace + whitespace + '*$'); @@ -5527,9 +6035,9 @@ var doric = (function (exports) { // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation var createMethod$4 = function (TYPE) { return function ($this) { - var string = String(requireObjectCoercible($this)); - if (TYPE & 1) { string = string.replace(ltrim, ''); } - if (TYPE & 2) { string = string.replace(rtrim, ''); } + var string = toString_1(requireObjectCoercible($this)); + if (TYPE & 1) { string = replace$7(string, ltrim, ''); } + if (TYPE & 2) { string = replace$7(string, rtrim, ''); } return string; }; }; @@ -5548,37 +6056,46 @@ var doric = (function (exports) { var getOwnPropertyNames$2 = objectGetOwnPropertyNames.f; var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor.f; - var defineProperty$6 = objectDefineProperty.f; + var defineProperty$7 = objectDefineProperty.f; + var trim$2 = stringTrim.trim; var NUMBER = 'Number'; var NativeNumber = global_1[NUMBER]; var NumberPrototype = NativeNumber.prototype; + var TypeError$m = global_1.TypeError; + var arraySlice = functionUncurryThis(''.slice); + var charCodeAt$2 = functionUncurryThis(''.charCodeAt); - // Opera ~12 has broken Object#toString - var BROKEN_CLASSOF = classofRaw(objectCreate(NumberPrototype)) == NUMBER; + // `ToNumeric` abstract operation + // https://tc39.es/ecma262/#sec-tonumeric + var toNumeric = function (value) { + var primValue = toPrimitive(value, 'number'); + return typeof primValue == 'bigint' ? primValue : toNumber(primValue); + }; // `ToNumber` abstract operation // https://tc39.es/ecma262/#sec-tonumber var toNumber = function (argument) { - var it = toPrimitive(argument, false); + var it = toPrimitive(argument, 'number'); var first, third, radix, maxCode, digits, length, index, code; + if (isSymbol(it)) { throw TypeError$m('Cannot convert a Symbol value to a number'); } if (typeof it == 'string' && it.length > 2) { it = trim$2(it); - first = it.charCodeAt(0); + first = charCodeAt$2(it, 0); if (first === 43 || first === 45) { - third = it.charCodeAt(2); + third = charCodeAt$2(it, 2); if (third === 88 || third === 120) { return NaN; } // Number('+0x1') should be NaN, old V8 fix } else if (first === 48) { - switch (it.charCodeAt(1)) { + switch (charCodeAt$2(it, 1)) { case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i default: return +it; } - digits = it.slice(2); + digits = arraySlice(it, 2); length = digits.length; for (index = 0; index < length; index++) { - code = digits.charCodeAt(index); + code = charCodeAt$2(digits, index); // parseInt parses a string to a first unavailable symbol // but ToNumber should return NaN if a string contains unavailable symbols if (code < 48 || code > maxCode) { return NaN; } @@ -5591,24 +6108,22 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-number-constructor if (isForced_1(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { var NumberWrapper = function Number(value) { - var it = arguments.length < 1 ? 0 : value; + var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); var dummy = this; - return dummy instanceof NumberWrapper - // check on 1..constructor(foo) case - && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classofRaw(dummy) != NUMBER) - ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it); + // check on 1..constructor(foo) case + return objectIsPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }) + ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n; }; for (var keys$1 = descriptors ? getOwnPropertyNames$2(NativeNumber) : ( // ES3: 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES2015 (in case, if modules with ES2015 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' + + 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + // ESNext 'fromString,range' ).split(','), j = 0, key; keys$1.length > j; j++) { - if (has$1(NativeNumber, key = keys$1[j]) && !has$1(NumberWrapper, key)) { - defineProperty$6(NumberWrapper, key, getOwnPropertyDescriptor$6(NativeNumber, key)); + if (hasOwnProperty_1(NativeNumber, key = keys$1[j]) && !hasOwnProperty_1(NumberWrapper, key)) { + defineProperty$7(NumberWrapper, key, getOwnPropertyDescriptor$6(NativeNumber, key)); } } NumberWrapper.prototype = NumberPrototype; @@ -5637,16 +6152,17 @@ var doric = (function (exports) { var floor$5 = Math.floor; - // `Number.isInteger` method implementation - // https://tc39.es/ecma262/#sec-number.isinteger - var isInteger = function isInteger(it) { + // `IsIntegralNumber` abstract operation + // https://tc39.es/ecma262/#sec-isintegralnumber + // eslint-disable-next-line es/no-number-isinteger -- safe + var isIntegralNumber = Number.isInteger || function isInteger(it) { return !isObject(it) && isFinite(it) && floor$5(it) === it; }; // `Number.isInteger` method // https://tc39.es/ecma262/#sec-number.isinteger _export({ target: 'Number', stat: true }, { - isInteger: isInteger + isInteger: isIntegralNumber }); // `Number.isNaN` method @@ -5664,7 +6180,7 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-number.issafeinteger _export({ target: 'Number', stat: true }, { isSafeInteger: function isSafeInteger(number) { - return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF; + return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; } }); @@ -5683,16 +6199,21 @@ var doric = (function (exports) { var trim$1 = stringTrim.trim; - var $parseFloat = global_1.parseFloat; - var FORCED$f = 1 / $parseFloat(whitespaces + '-0') !== -Infinity; + var charAt$d = functionUncurryThis(''.charAt); + var n$ParseFloat = global_1.parseFloat; + var Symbol$2 = global_1.Symbol; + var ITERATOR$5 = Symbol$2 && Symbol$2.iterator; + var FORCED$h = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity + // MS Edge 18- broken with boxed symbols + || (ITERATOR$5 && !fails(function () { n$ParseFloat(Object(ITERATOR$5)); })); // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string - var numberParseFloat = FORCED$f ? function parseFloat(string) { - var trimmedString = trim$1(String(string)); - var result = $parseFloat(trimmedString); - return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result; - } : $parseFloat; + var numberParseFloat = FORCED$h ? function parseFloat(string) { + var trimmedString = trim$1(toString_1(string)); + var result = n$ParseFloat(trimmedString); + return result === 0 && charAt$d(trimmedString, 0) == '-' ? -0 : result; + } : n$ParseFloat; // `Number.parseFloat` method // https://tc39.es/ecma262/#sec-number.parseFloat @@ -5705,14 +6226,19 @@ var doric = (function (exports) { var $parseInt = global_1.parseInt; - var hex = /^[+-]?0[Xx]/; - var FORCED$e = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22; + var Symbol$1 = global_1.Symbol; + var ITERATOR$4 = Symbol$1 && Symbol$1.iterator; + var hex = /^[+-]?0x/i; + var exec$6 = functionUncurryThis(hex.exec); + var FORCED$g = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 + // MS Edge 18- broken with boxed symbols + || (ITERATOR$4 && !fails(function () { $parseInt(Object(ITERATOR$4)); })); // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix - var numberParseInt = FORCED$e ? function parseInt(string, radix) { - var S = trim(String(string)); - return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10)); + var numberParseInt = FORCED$g ? function parseInt(string, radix) { + var S = trim(toString_1(string)); + return $parseInt(S, (radix >>> 0) || (exec$6(hex, S) ? 16 : 10)); } : $parseInt; // `Number.parseInt` method @@ -5722,17 +6248,12 @@ var doric = (function (exports) { parseInt: numberParseInt }); - // `thisNumberValue` abstract operation - // https://tc39.es/ecma262/#sec-thisnumbervalue - var thisNumberValue = function (value) { - if (typeof value != 'number' && classofRaw(value) != 'Number') { - throw TypeError('Incorrect invocation'); - } - return +value; - }; - - var nativeToFixed = 1.0.toFixed; + var RangeError$7 = global_1.RangeError; + var String$2 = global_1.String; var floor$4 = Math.floor; + var repeat = functionUncurryThis(stringRepeat); + var stringSlice$d = functionUncurryThis(''.slice); + var un$ToFixed = functionUncurryThis(1.0.toFixed); var pow$1 = function (x, n, acc) { return n === 0 ? acc : n % 2 === 1 ? pow$1(x, n - 1, acc * x) : pow$1(x * x, n / 2, acc); @@ -5776,37 +6297,37 @@ var doric = (function (exports) { var s = ''; while (--index >= 0) { if (s !== '' || index === 0 || data[index] !== 0) { - var t = String(data[index]); - s = s === '' ? t : s + stringRepeat.call('0', 7 - t.length) + t; + var t = String$2(data[index]); + s = s === '' ? t : s + repeat('0', 7 - t.length) + t; } } return s; }; - var FORCED$d = nativeToFixed && ( - 0.00008.toFixed(3) !== '0.000' || - 0.9.toFixed(0) !== '1' || - 1.255.toFixed(2) !== '1.25' || - 1000000000000000128.0.toFixed(0) !== '1000000000000000128' - ) || !fails(function () { + var FORCED$f = fails(function () { + return un$ToFixed(0.00008, 3) !== '0.000' || + un$ToFixed(0.9, 0) !== '1' || + un$ToFixed(1.255, 2) !== '1.25' || + un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; + }) || !fails(function () { // V8 ~ Android 4.3- - nativeToFixed.call({}); + un$ToFixed({}); }); // `Number.prototype.toFixed` method // https://tc39.es/ecma262/#sec-number.prototype.tofixed - _export({ target: 'Number', proto: true, forced: FORCED$d }, { + _export({ target: 'Number', proto: true, forced: FORCED$f }, { toFixed: function toFixed(fractionDigits) { var number = thisNumberValue(this); - var fractDigits = toInteger(fractionDigits); + var fractDigits = toIntegerOrInfinity(fractionDigits); var data = [0, 0, 0, 0, 0, 0]; var sign = ''; var result = '0'; var e, z, j, k; - if (fractDigits < 0 || fractDigits > 20) { throw RangeError('Incorrect fraction digits'); } + if (fractDigits < 0 || fractDigits > 20) { throw RangeError$7('Incorrect fraction digits'); } // eslint-disable-next-line no-self-compare -- NaN check if (number != number) { return 'NaN'; } - if (number <= -1e21 || number >= 1e21) { return String(number); } + if (number <= -1e21 || number >= 1e21) { return String$2(number); } if (number < 0) { sign = '-'; number = -number; @@ -5836,53 +6357,54 @@ var doric = (function (exports) { } else { multiply(data, 0, z); multiply(data, 1 << -e, 0); - result = dataToString(data) + stringRepeat.call('0', fractDigits); + result = dataToString(data) + repeat('0', fractDigits); } } if (fractDigits > 0) { k = result.length; result = sign + (k <= fractDigits - ? '0.' + stringRepeat.call('0', fractDigits - k) + result - : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits)); + ? '0.' + repeat('0', fractDigits - k) + result + : stringSlice$d(result, 0, k - fractDigits) + '.' + stringSlice$d(result, k - fractDigits)); } else { result = sign + result; } return result; } }); - var nativeToPrecision = 1.0.toPrecision; + var un$ToPrecision = functionUncurryThis(1.0.toPrecision); - var FORCED$c = fails(function () { + var FORCED$e = fails(function () { // IE7- - return nativeToPrecision.call(1, undefined) !== '1'; + return un$ToPrecision(1, undefined) !== '1'; }) || !fails(function () { // V8 ~ Android 4.3- - nativeToPrecision.call({}); + un$ToPrecision({}); }); // `Number.prototype.toPrecision` method // https://tc39.es/ecma262/#sec-number.prototype.toprecision - _export({ target: 'Number', proto: true, forced: FORCED$c }, { + _export({ target: 'Number', proto: true, forced: FORCED$e }, { toPrecision: function toPrecision(precision) { return precision === undefined - ? nativeToPrecision.call(thisNumberValue(this)) - : nativeToPrecision.call(thisNumberValue(this), precision); + ? un$ToPrecision(thisNumberValue(this)) + : un$ToPrecision(thisNumberValue(this), precision); } }); // eslint-disable-next-line es/no-object-assign -- safe var $assign = Object.assign; // eslint-disable-next-line es/no-object-defineproperty -- required for testing - var defineProperty$5 = Object.defineProperty; + var defineProperty$6 = Object.defineProperty; + var concat$2 = functionUncurryThis([].concat); // `Object.assign` method // https://tc39.es/ecma262/#sec-object.assign var objectAssign = !$assign || fails(function () { // should have correct order of operations (Edge bug) - if (descriptors && $assign({ b: 1 }, $assign(defineProperty$5({}, 'a', { + if (descriptors && $assign({ b: 1 }, $assign(defineProperty$6({}, 'a', { enumerable: true, get: function () { - defineProperty$5(this, 'b', { + defineProperty$6(this, 'b', { value: 3, enumerable: false }); @@ -5907,13 +6429,13 @@ var doric = (function (exports) { var propertyIsEnumerable = objectPropertyIsEnumerable.f; while (argumentsLength > index) { var S = indexedObject(arguments$1[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); + var keys = getOwnPropertySymbols ? concat$2(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); var length = keys.length; var j = 0; var key; while (length > j) { key = keys[j++]; - if (!descriptors || propertyIsEnumerable.call(S, key)) { T[key] = S[key]; } + if (!descriptors || functionCall(propertyIsEnumerable, S, key)) { T[key] = S[key]; } } } return T; } : $assign; @@ -5948,7 +6470,7 @@ var doric = (function (exports) { if (descriptors) { _export({ target: 'Object', proto: true, forced: objectPrototypeAccessorsForced }, { __defineGetter__: function __defineGetter__(P, getter) { - objectDefineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); + objectDefineProperty.f(toObject(this), P, { get: aCallable(getter), enumerable: true, configurable: true }); } }); } @@ -5970,12 +6492,15 @@ var doric = (function (exports) { if (descriptors) { _export({ target: 'Object', proto: true, forced: objectPrototypeAccessorsForced }, { __defineSetter__: function __defineSetter__(P, setter) { - objectDefineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); + objectDefineProperty.f(toObject(this), P, { set: aCallable(setter), enumerable: true, configurable: true }); } }); } - var propertyIsEnumerable = objectPropertyIsEnumerable.f; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = functionUncurryThis($propertyIsEnumerable); + var push$e = functionUncurryThis([].push); // `Object.{ entries, values }` methods implementation var createMethod$3 = function (TO_ENTRIES) { @@ -5988,8 +6513,8 @@ var doric = (function (exports) { var key; while (length > i) { key = keys[i++]; - if (!descriptors || propertyIsEnumerable.call(O, key)) { - result.push(TO_ENTRIES ? [key, O[key]] : O[key]); + if (!descriptors || propertyIsEnumerable(O, key)) { + push$e(result, TO_ENTRIES ? [key, O[key]] : O[key]); } } return result; @@ -6045,11 +6570,11 @@ var doric = (function (exports) { var FAILS_ON_PRIMITIVES$8 = fails(function () { nativeGetOwnPropertyDescriptor(1); }); - var FORCED$b = !descriptors || FAILS_ON_PRIMITIVES$8; + var FORCED$d = !descriptors || FAILS_ON_PRIMITIVES$8; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor - _export({ target: 'Object', stat: true, forced: FORCED$b, sham: !descriptors }, { + _export({ target: 'Object', stat: true, forced: FORCED$d, sham: !descriptors }, { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) { return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key); } @@ -6094,6 +6619,12 @@ var doric = (function (exports) { } }); + // `Object.hasOwn` method + // https://github.com/tc39/proposal-accessible-object-hasownproperty + _export({ target: 'Object', stat: true }, { + hasOwn: hasOwnProperty_1 + }); + // `SameValue` abstract operation // https://tc39.es/ecma262/#sec-samevalue // eslint-disable-next-line es/no-object-is -- safe @@ -6162,7 +6693,7 @@ var doric = (function (exports) { _export({ target: 'Object', proto: true, forced: objectPrototypeAccessorsForced }, { __lookupGetter__: function __lookupGetter__(P) { var O = toObject(this); - var key = toPrimitive(P, true); + var key = toPropertyKey(P); var desc; do { if (desc = getOwnPropertyDescriptor$5(O, key)) { return desc.get; } @@ -6179,7 +6710,7 @@ var doric = (function (exports) { _export({ target: 'Object', proto: true, forced: objectPrototypeAccessorsForced }, { __lookupSetter__: function __lookupSetter__(P) { var O = toObject(this); - var key = toPrimitive(P, true); + var key = toPropertyKey(P); var desc; do { if (desc = getOwnPropertyDescriptor$4(O, key)) { return desc.set; } @@ -6262,22 +6793,27 @@ var doric = (function (exports) { var nativePromiseConstructor = global_1.Promise; - var engineIsIos = /(?:iphone|ipod|ipad).*applewebkit/i.test(engineUserAgent); + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(engineUserAgent); - var location = global_1.location; var set$1 = global_1.setImmediate; var clear = global_1.clearImmediate; var process$4 = global_1.process; - var MessageChannel = global_1.MessageChannel; var Dispatch = global_1.Dispatch; + var Function$2 = global_1.Function; + var MessageChannel = global_1.MessageChannel; + var String$1 = global_1.String; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; - var defer, channel, port; + var location, defer, channel, port; + + try { + // Deno throws a ReferenceError on `location` access without `--location` flag + location = global_1.location; + } catch (error) { /* empty */ } var run = function (id) { - // eslint-disable-next-line no-prototype-builtins -- safe - if (queue.hasOwnProperty(id)) { + if (hasOwnProperty_1(queue, id)) { var fn = queue[id]; delete queue[id]; fn(); @@ -6296,20 +6832,15 @@ var doric = (function (exports) { var post = function (id) { // old engines have not location.origin - global_1.postMessage(id + '', location.protocol + '//' + location.host); + global_1.postMessage(String$1(id), location.protocol + '//' + location.host); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!set$1 || !clear) { set$1 = function setImmediate(fn) { - var arguments$1 = arguments; - - var args = []; - var i = 1; - while (arguments.length > i) { args.push(arguments$1[i++]); } + var args = arraySlice$1(arguments, 1); queue[++counter] = function () { - // eslint-disable-next-line no-new-func -- spec requirement - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); + functionApply(isCallable(fn) ? fn : Function$2(fn), undefined, args); }; defer(counter); return counter; @@ -6333,12 +6864,12 @@ var doric = (function (exports) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; - defer = functionBindContext(port.postMessage, port, 1); + defer = functionBindContext(port.postMessage, port); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if ( global_1.addEventListener && - typeof postMessage == 'function' && + isCallable(global_1.postMessage) && !global_1.importScripts && location && location.protocol !== 'file:' && !fails(post) @@ -6366,6 +6897,8 @@ var doric = (function (exports) { clear: clear }; + var engineIsIosPebble = /ipad|iphone|ipod/i.test(engineUserAgent) && global_1.Pebble !== undefined; + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(engineUserAgent); var getOwnPropertyDescriptor$3 = objectGetOwnPropertyDescriptor.f; @@ -6374,6 +6907,7 @@ var doric = (function (exports) { + var MutationObserver = global_1.MutationObserver || global_1.WebKitMutationObserver; var document$2 = global_1.document; var process$3 = global_1.process; @@ -6413,14 +6947,14 @@ var doric = (function (exports) { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise - } else if (Promise$4 && Promise$4.resolve) { + } else if (!engineIsIosPebble && Promise$4 && Promise$4.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 promise = Promise$4.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug promise.constructor = Promise$4; - then = promise.then; + then = functionBindContext(promise.then, promise); notify$1 = function () { - then.call(promise, flush); + then(flush); }; // Node.js without promises } else if (engineIsNode) { @@ -6434,9 +6968,10 @@ var doric = (function (exports) { // - onreadystatechange // - setTimeout } else { + // strange IE + webpack dev server bug - use .bind(global) + macrotask = functionBindContext(macrotask, global_1); notify$1 = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global_1, flush); + macrotask(flush); }; } } @@ -6457,8 +6992,8 @@ var doric = (function (exports) { resolve = $$resolve; reject = $$reject; }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); + this.resolve = aCallable(resolve); + this.reject = aCallable(reject); }; // `NewPromiseCapability` abstract operation @@ -6483,7 +7018,7 @@ var doric = (function (exports) { var hostReportErrors = function (a, b) { var console = global_1.console; if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); + arguments.length == 1 ? console.error(a) : console.error(a, b); } }; @@ -6512,19 +7047,21 @@ var doric = (function (exports) { var SPECIES$1 = wellKnownSymbol('species'); var PROMISE = 'Promise'; - var getInternalState$a = internalState.get; - var setInternalState$c = internalState.set; + + var getInternalState$d = internalState.get; + var setInternalState$d = internalState.set; var getInternalPromiseState = internalState.getterFor(PROMISE); var NativePromisePrototype = nativePromiseConstructor && nativePromiseConstructor.prototype; var PromiseConstructor = nativePromiseConstructor; - var PromiseConstructorPrototype = NativePromisePrototype; - var TypeError$1 = global_1.TypeError; + var PromisePrototype = NativePromisePrototype; + var TypeError$l = global_1.TypeError; var document$1 = global_1.document; var process$2 = global_1.process; var newPromiseCapability = newPromiseCapability$1.f; var newGenericPromiseCapability = newPromiseCapability; + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global_1.dispatchEvent); - var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function'; + var NATIVE_REJECTION_EVENT = isCallable(global_1.PromiseRejectionEvent); var UNHANDLED_REJECTION = 'unhandledrejection'; var REJECTION_HANDLED = 'rejectionhandled'; var PENDING = 0; @@ -6533,10 +7070,12 @@ var doric = (function (exports) { var HANDLED = 1; var UNHANDLED = 2; var SUBCLASSING = false; + var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; - var FORCED$a = isForced_1(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); + var FORCED$c = isForced_1(PROMISE, function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // We can't detect it synchronously, so just check versions @@ -6544,7 +7083,7 @@ var doric = (function (exports) { // We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 - if (engineV8Version >= 51 && /native code/.test(PromiseConstructor)) { return false; } + if (engineV8Version >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { return false; } // Detect correctness of subclassing with @@species support var promise = new PromiseConstructor(function (resolve) { resolve(1); }); var FakePromise = function (exec) { @@ -6558,14 +7097,14 @@ var doric = (function (exports) { return !GLOBAL_CORE_JS_PROMISE && engineIsBrowser && !NATIVE_REJECTION_EVENT; }); - var INCORRECT_ITERATION = FORCED$a || !checkCorrectnessOfIteration(function (iterable) { + var INCORRECT_ITERATION = FORCED$c || !checkCorrectnessOfIteration(function (iterable) { PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); }); // helpers var isThenable = function (it) { var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; + return isObject(it) && isCallable(then = it.then) ? then : false; }; var notify = function (state, isReject) { @@ -6600,9 +7139,9 @@ var doric = (function (exports) { } } if (result === reaction.promise) { - reject(TypeError$1('Promise-chain cycle')); + reject(TypeError$l('Promise-chain cycle')); } else if (then = isThenable(result)) { - then.call(result, resolve, reject); + functionCall(then, result, resolve, reject); } else { resolve(result); } } else { reject(value); } } catch (error) { @@ -6630,7 +7169,7 @@ var doric = (function (exports) { }; var onUnhandled = function (state) { - task.call(global_1, function () { + functionCall(task, global_1, function () { var promise = state.facade; var value = state.value; var IS_UNHANDLED = isUnhandled(state); @@ -6653,7 +7192,7 @@ var doric = (function (exports) { }; var onHandleUnhandled = function (state) { - task.call(global_1, function () { + functionCall(task, global_1, function () { var promise = state.facade; if (engineIsNode) { process$2.emit('rejectionHandled', promise); @@ -6681,13 +7220,13 @@ var doric = (function (exports) { state.done = true; if (unwrap) { state = unwrap; } try { - if (state.facade === value) { throw TypeError$1("Promise can't be resolved itself"); } + if (state.facade === value) { throw TypeError$l("Promise can't be resolved itself"); } var then = isThenable(value); if (then) { microtask(function () { var wrapper = { done: false }; try { - then.call(value, + functionCall(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state) ); @@ -6706,23 +7245,23 @@ var doric = (function (exports) { }; // constructor polyfill - if (FORCED$a) { + if (FORCED$c) { // 25.4.3.1 Promise(executor) PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction(executor); - Internal.call(this); - var state = getInternalState$a(this); + anInstance(this, PromisePrototype); + aCallable(executor); + functionCall(Internal, this); + var state = getInternalState$d(this); try { executor(bind(internalResolve, state), bind(internalReject, state)); } catch (error) { internalReject(state, error); } }; - PromiseConstructorPrototype = PromiseConstructor.prototype; + PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length` Internal = function Promise(executor) { - setInternalState$c(this, { + setInternalState$d(this, { type: PROMISE, done: false, notified: false, @@ -6733,17 +7272,18 @@ var doric = (function (exports) { value: undefined }); }; - Internal.prototype = redefineAll(PromiseConstructorPrototype, { + Internal.prototype = redefineAll(PromisePrototype, { // `Promise.prototype.then` method // https://tc39.es/ecma262/#sec-promise.prototype.then then: function then(onFulfilled, onRejected) { var state = getInternalPromiseState(this); + var reactions = state.reactions; var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable(onRejected) && onRejected; reaction.domain = engineIsNode ? process$2.domain : undefined; state.parent = true; - state.reactions.push(reaction); + reactions[reactions.length] = reaction; if (state.state != PENDING) { notify(state, false); } return reaction.promise; }, @@ -6755,7 +7295,7 @@ var doric = (function (exports) { }); OwnPromiseCapability = function () { var promise = new Internal(); - var state = getInternalState$a(promise); + var state = getInternalState$d(promise); this.promise = promise; this.resolve = bind(internalResolve, state); this.reject = bind(internalReject, state); @@ -6766,7 +7306,7 @@ var doric = (function (exports) { : newGenericPromiseCapability(C); }; - if (typeof nativePromiseConstructor == 'function' && NativePromisePrototype !== Object.prototype) { + if (isCallable(nativePromiseConstructor) && NativePromisePrototype !== Object.prototype) { nativeThen = NativePromisePrototype.then; if (!SUBCLASSING) { @@ -6774,13 +7314,13 @@ var doric = (function (exports) { redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { var that = this; return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); + functionCall(nativeThen, that, resolve, reject); }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 }, { unsafe: true }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` - redefine(NativePromisePrototype, 'catch', PromiseConstructorPrototype['catch'], { unsafe: true }); + redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true }); } // make `.constructor === Promise` work for native promise-based APIs @@ -6790,12 +7330,12 @@ var doric = (function (exports) { // make `instanceof Promise` work for native promise-based APIs if (objectSetPrototypeOf) { - objectSetPrototypeOf(NativePromisePrototype, PromiseConstructorPrototype); + objectSetPrototypeOf(NativePromisePrototype, PromisePrototype); } } } - _export({ global: true, wrap: true, forced: FORCED$a }, { + _export({ global: true, wrap: true, forced: FORCED$c }, { Promise: PromiseConstructor }); @@ -6805,17 +7345,17 @@ var doric = (function (exports) { PromiseWrapper = getBuiltIn(PROMISE); // statics - _export({ target: PROMISE, stat: true, forced: FORCED$a }, { + _export({ target: PROMISE, stat: true, forced: FORCED$c }, { // `Promise.reject` method // https://tc39.es/ecma262/#sec-promise.reject reject: function reject(r) { var capability = newPromiseCapability(this); - capability.reject.call(undefined, r); + functionCall(capability.reject, undefined, r); return capability.promise; } }); - _export({ target: PROMISE, stat: true, forced: FORCED$a }, { + _export({ target: PROMISE, stat: true, forced: FORCED$c }, { // `Promise.resolve` method // https://tc39.es/ecma262/#sec-promise.resolve resolve: function resolve(x) { @@ -6832,16 +7372,15 @@ var doric = (function (exports) { var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); + var $promiseResolve = aCallable(C.resolve); var values = []; var counter = 0; var remaining = 1; iterate(iterable, function (promise) { var index = counter++; var alreadyCalled = false; - values.push(undefined); remaining++; - $promiseResolve.call(C, promise).then(function (value) { + functionCall($promiseResolve, C, promise).then(function (value) { if (alreadyCalled) { return; } alreadyCalled = true; values[index] = value; @@ -6860,9 +7399,9 @@ var doric = (function (exports) { var capability = newPromiseCapability(C); var reject = capability.reject; var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); + var $promiseResolve = aCallable(C.resolve); iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); + functionCall($promiseResolve, C, promise).then(capability.resolve, reject); }); }); if (result.error) { reject(result.value); } @@ -6879,16 +7418,15 @@ var doric = (function (exports) { var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { - var promiseResolve = aFunction(C.resolve); + var promiseResolve = aCallable(C.resolve); var values = []; var counter = 0; var remaining = 1; iterate(iterable, function (promise) { var index = counter++; var alreadyCalled = false; - values.push(undefined); remaining++; - promiseResolve.call(C, promise).then(function (value) { + functionCall(promiseResolve, C, promise).then(function (value) { if (alreadyCalled) { return; } alreadyCalled = true; values[index] = { status: 'fulfilled', value: value }; @@ -6914,11 +7452,12 @@ var doric = (function (exports) { _export({ target: 'Promise', stat: true }, { any: function any(iterable) { var C = this; + var AggregateError = getBuiltIn('AggregateError'); var capability = newPromiseCapability$1.f(C); var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { - var promiseResolve = aFunction(C.resolve); + var promiseResolve = aCallable(C.resolve); var errors = []; var counter = 0; var remaining = 1; @@ -6926,9 +7465,8 @@ var doric = (function (exports) { iterate(iterable, function (promise) { var index = counter++; var alreadyRejected = false; - errors.push(undefined); remaining++; - promiseResolve.call(C, promise).then(function (value) { + functionCall(promiseResolve, C, promise).then(function (value) { if (alreadyRejected || alreadyResolved) { return; } alreadyResolved = true; resolve(value); @@ -6936,10 +7474,10 @@ var doric = (function (exports) { if (alreadyRejected || alreadyResolved) { return; } alreadyRejected = true; errors[index] = error; - --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR)); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); }); }); - --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR)); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); }); if (result.error) { reject(result.value); } return capability.promise; @@ -6956,7 +7494,7 @@ var doric = (function (exports) { _export({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { 'finally': function (onFinally) { var C = speciesConstructor(this, getBuiltIn('Promise')); - var isFunction = typeof onFinally == 'function'; + var isFunction = isCallable(onFinally); return this.then( isFunction ? function (x) { return promiseResolve(C, onFinally()).then(function () { return x; }); @@ -6969,34 +7507,30 @@ var doric = (function (exports) { }); // makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then` - if (typeof nativePromiseConstructor == 'function') { + if (isCallable(nativePromiseConstructor)) { var method = getBuiltIn('Promise').prototype['finally']; if (nativePromiseConstructor.prototype['finally'] !== method) { redefine(nativePromiseConstructor.prototype, 'finally', method, { unsafe: true }); } } - var nativeApply = getBuiltIn('Reflect', 'apply'); - var functionApply = Function.apply; - // MS Edge argumentsList argument is optional var OPTIONAL_ARGUMENTS_LIST = !fails(function () { - nativeApply(function () { /* empty */ }); + // eslint-disable-next-line es/no-reflect -- required for testing + Reflect.apply(function () { /* empty */ }); }); // `Reflect.apply` method // https://tc39.es/ecma262/#sec-reflect.apply _export({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, { apply: function apply(target, thisArgument, argumentsList) { - aFunction(target); - anObject(argumentsList); - return nativeApply - ? nativeApply(target, thisArgument, argumentsList) - : functionApply.call(target, thisArgument, argumentsList); + return functionApply(aCallable(target), thisArgument, anObject(argumentsList)); } }); var nativeConstruct = getBuiltIn('Reflect', 'construct'); + var ObjectPrototype = Object.prototype; + var push$d = [].push; // `Reflect.construct` method // https://tc39.es/ecma262/#sec-reflect.construct @@ -7006,16 +7540,18 @@ var doric = (function (exports) { function F() { /* empty */ } return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F); }); + var ARGS_BUG = !fails(function () { nativeConstruct(function () { /* empty */ }); }); - var FORCED$9 = NEW_TARGET_BUG || ARGS_BUG; - _export({ target: 'Reflect', stat: true, forced: FORCED$9, sham: FORCED$9 }, { + var FORCED$b = NEW_TARGET_BUG || ARGS_BUG; + + _export({ target: 'Reflect', stat: true, forced: FORCED$b, sham: FORCED$b }, { construct: function construct(Target, args /* , newTarget */) { - aFunction(Target); + aConstructor(Target); anObject(args); - var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]); if (ARGS_BUG && !NEW_TARGET_BUG) { return nativeConstruct(Target, args, newTarget); } if (Target == newTarget) { // w/o altered newTarget, optimization for 0-4 arguments @@ -7028,13 +7564,13 @@ var doric = (function (exports) { } // w/o altered newTarget, lot of arguments case var $args = [null]; - $args.push.apply($args, args); - return new (functionBind.apply(Target, $args))(); + functionApply(push$d, $args, args); + return new (functionApply(functionBind, Target, $args))(); } // with altered newTarget, not support built-in constructors var proto = newTarget.prototype; - var instance = objectCreate(isObject(proto) ? proto : Object.prototype); - var result = Function.apply.call(Target, instance, args); + var instance = objectCreate(isObject(proto) ? proto : ObjectPrototype); + var result = functionApply(Target, instance, args); return isObject(result) ? result : instance; } }); @@ -7050,7 +7586,7 @@ var doric = (function (exports) { _export({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !descriptors }, { defineProperty: function defineProperty(target, propertyKey, attributes) { anObject(target); - var key = toPrimitive(propertyKey, true); + var key = toPropertyKey(propertyKey); anObject(attributes); try { objectDefineProperty.f(target, key, attributes); @@ -7072,17 +7608,20 @@ var doric = (function (exports) { } }); + var isDataDescriptor = function (descriptor) { + return descriptor !== undefined && (hasOwnProperty_1(descriptor, 'value') || hasOwnProperty_1(descriptor, 'writable')); + }; + // `Reflect.get` method // https://tc39.es/ecma262/#sec-reflect.get function get(target, propertyKey /* , receiver */) { var receiver = arguments.length < 3 ? target : arguments[2]; var descriptor, prototype; if (anObject(target) === receiver) { return target[propertyKey]; } - if (descriptor = objectGetOwnPropertyDescriptor.f(target, propertyKey)) { return has$1(descriptor, 'value') + descriptor = objectGetOwnPropertyDescriptor.f(target, propertyKey); + if (descriptor) { return isDataDescriptor(descriptor) ? descriptor.value - : descriptor.get === undefined - ? undefined - : descriptor.get.call(receiver); } + : descriptor.get === undefined ? undefined : functionCall(descriptor.get, receiver); } if (isObject(prototype = objectGetPrototypeOf(target))) { return get(prototype, propertyKey, receiver); } } @@ -7152,23 +7691,25 @@ var doric = (function (exports) { function set(target, propertyKey, V /* , receiver */) { var receiver = arguments.length < 4 ? target : arguments[3]; var ownDescriptor = objectGetOwnPropertyDescriptor.f(anObject(target), propertyKey); - var existingDescriptor, prototype; + var existingDescriptor, prototype, setter; if (!ownDescriptor) { if (isObject(prototype = objectGetPrototypeOf(target))) { return set(prototype, propertyKey, V, receiver); } ownDescriptor = createPropertyDescriptor(0); } - if (has$1(ownDescriptor, 'value')) { + if (isDataDescriptor(ownDescriptor)) { if (ownDescriptor.writable === false || !isObject(receiver)) { return false; } if (existingDescriptor = objectGetOwnPropertyDescriptor.f(receiver, propertyKey)) { if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) { return false; } existingDescriptor.value = V; objectDefineProperty.f(receiver, propertyKey, existingDescriptor); } else { objectDefineProperty.f(receiver, propertyKey, createPropertyDescriptor(0, V)); } - return true; - } - return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true); + } else { + setter = ownDescriptor.set; + if (setter === undefined) { return false; } + functionCall(setter, receiver, V); + } return true; } // MS Edge 17-18 Reflect.set allows setting the property to object @@ -7228,160 +7769,328 @@ var doric = (function (exports) { return result; }; - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, - // so we use an intermediate function. - function RE(s, f) { - return RegExp(s, f); - } + // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError + var $RegExp$2 = global_1.RegExp; - var UNSUPPORTED_Y$5 = fails(function () { - // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError - var re = RE('a', 'y'); + var UNSUPPORTED_Y$4 = fails(function () { + var re = $RegExp$2('a', 'y'); re.lastIndex = 2; return re.exec('abcd') != null; }); var BROKEN_CARET = fails(function () { // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 - var re = RE('^r', 'gy'); + var re = $RegExp$2('^r', 'gy'); re.lastIndex = 2; return re.exec('str') != null; }); var regexpStickyHelpers = { - UNSUPPORTED_Y: UNSUPPORTED_Y$5, + UNSUPPORTED_Y: UNSUPPORTED_Y$4, BROKEN_CARET: BROKEN_CARET }; - var defineProperty$4 = objectDefineProperty.f; + // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError + var $RegExp$1 = global_1.RegExp; + + var regexpUnsupportedDotAll = fails(function () { + var re = $RegExp$1('.', 's'); + return !(re.dotAll && re.exec('\n') && re.flags === 's'); + }); + + // babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError + var $RegExp = global_1.RegExp; + + var regexpUnsupportedNcg = fails(function () { + var re = $RegExp('(?b)', 'g'); + return re.exec('b').groups.a !== 'b' || + 'b'.replace(re, '$c') !== 'bc'; + }); + + var defineProperty$5 = objectDefineProperty.f; var getOwnPropertyNames = objectGetOwnPropertyNames.f; + + + var enforceInternalState = internalState.enforce; + + var MATCH$1 = wellKnownSymbol('match'); var NativeRegExp = global_1.RegExp; - var RegExpPrototype$5 = NativeRegExp.prototype; + var RegExpPrototype$7 = NativeRegExp.prototype; + var SyntaxError$1 = global_1.SyntaxError; + var getFlags$3 = functionUncurryThis(regexpFlags); + var exec$5 = functionUncurryThis(RegExpPrototype$7.exec); + var charAt$c = functionUncurryThis(''.charAt); + var replace$6 = functionUncurryThis(''.replace); + var stringIndexOf$4 = functionUncurryThis(''.indexOf); + var stringSlice$c = functionUncurryThis(''.slice); + // TODO: Use only propper RegExpIdentifierName + var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/; var re1 = /a/g; var re2 = /a/g; // "new" should create a new object, old webkit bug var CORRECT_NEW = new NativeRegExp(re1) !== re1; - var UNSUPPORTED_Y$4 = regexpStickyHelpers.UNSUPPORTED_Y; + var UNSUPPORTED_Y$3 = regexpStickyHelpers.UNSUPPORTED_Y; - var FORCED$8 = descriptors && isForced_1('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y$4 || fails(function () { - re2[MATCH$1] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; - }))); + var BASE_FORCED = descriptors && + (!CORRECT_NEW || UNSUPPORTED_Y$3 || regexpUnsupportedDotAll || regexpUnsupportedNcg || fails(function () { + re2[MATCH$1] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i'; + })); + + var handleDotAll = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var brackets = false; + var chr; + for (; index <= length; index++) { + chr = charAt$c(string, index); + if (chr === '\\') { + result += chr + charAt$c(string, ++index); + continue; + } + if (!brackets && chr === '.') { + result += '[\\s\\S]'; + } else { + if (chr === '[') { + brackets = true; + } else if (chr === ']') { + brackets = false; + } result += chr; + } + } return result; + }; + + var handleNCG = function (string) { + var length = string.length; + var index = 0; + var result = ''; + var named = []; + var names = {}; + var brackets = false; + var ncg = false; + var groupid = 0; + var groupname = ''; + var chr; + for (; index <= length; index++) { + chr = charAt$c(string, index); + if (chr === '\\') { + chr = chr + charAt$c(string, ++index); + } else if (chr === ']') { + brackets = false; + } else if (!brackets) { switch (true) { + case chr === '[': + brackets = true; + break; + case chr === '(': + if (exec$5(IS_NCG, stringSlice$c(string, index + 1))) { + index += 2; + ncg = true; + } + result += chr; + groupid++; + continue; + case chr === '>' && ncg: + if (groupname === '' || hasOwnProperty_1(names, groupname)) { + throw new SyntaxError$1('Invalid capture group name'); + } + names[groupname] = true; + named[named.length] = [groupname, groupid]; + ncg = false; + groupname = ''; + continue; + } } + if (ncg) { groupname += chr; } + else { result += chr; } + } return [result, named]; + }; // `RegExp` constructor // https://tc39.es/ecma262/#sec-regexp-constructor - if (FORCED$8) { + if (isForced_1('RegExp', BASE_FORCED)) { var RegExpWrapper = function RegExp(pattern, flags) { - var thisIsRegExp = this instanceof RegExpWrapper; + var thisIsRegExp = objectIsPrototypeOf(RegExpPrototype$7, this); var patternIsRegExp = isRegexp(pattern); var flagsAreUndefined = flags === undefined; - var sticky; + var groups = []; + var rawPattern = pattern; + var rawFlags, dotAll, sticky, handled, result, state; - if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) { + if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) { return pattern; } - if (CORRECT_NEW) { - if (patternIsRegExp && !flagsAreUndefined) { pattern = pattern.source; } - } else if (pattern instanceof RegExpWrapper) { - if (flagsAreUndefined) { flags = regexpFlags.call(pattern); } + if (patternIsRegExp || objectIsPrototypeOf(RegExpPrototype$7, pattern)) { pattern = pattern.source; + if (flagsAreUndefined) { flags = 'flags' in rawPattern ? rawPattern.flags : getFlags$3(rawPattern); } } - if (UNSUPPORTED_Y$4) { - sticky = !!flags && flags.indexOf('y') > -1; - if (sticky) { flags = flags.replace(/y/g, ''); } + pattern = pattern === undefined ? '' : toString_1(pattern); + flags = flags === undefined ? '' : toString_1(flags); + rawPattern = pattern; + + if (regexpUnsupportedDotAll && 'dotAll' in re1) { + dotAll = !!flags && stringIndexOf$4(flags, 's') > -1; + if (dotAll) { flags = replace$6(flags, /s/g, ''); } } - var result = inheritIfRequired( - CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags), - thisIsRegExp ? this : RegExpPrototype$5, - RegExpWrapper - ); + rawFlags = flags; - if (UNSUPPORTED_Y$4 && sticky) { - var state = enforceInternalState(result); - state.sticky = true; + if (UNSUPPORTED_Y$3 && 'sticky' in re1) { + sticky = !!flags && stringIndexOf$4(flags, 'y') > -1; + if (sticky) { flags = replace$6(flags, /y/g, ''); } } + if (regexpUnsupportedNcg) { + handled = handleNCG(pattern); + pattern = handled[0]; + groups = handled[1]; + } + + result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype$7, RegExpWrapper); + + if (dotAll || sticky || groups.length) { + state = enforceInternalState(result); + if (dotAll) { + state.dotAll = true; + state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags); + } + if (sticky) { state.sticky = true; } + if (groups.length) { state.groups = groups; } + } + + if (pattern !== rawPattern) { try { + // fails in old engines, but we have no alternatives for unsupported regex syntax + createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern); + } catch (error) { /* empty */ } } + return result; }; + var proxy = function (key) { - key in RegExpWrapper || defineProperty$4(RegExpWrapper, key, { + key in RegExpWrapper || defineProperty$5(RegExpWrapper, key, { configurable: true, get: function () { return NativeRegExp[key]; }, set: function (it) { NativeRegExp[key] = it; } }); }; - var keys = getOwnPropertyNames(NativeRegExp); - var index = 0; - while (keys.length > index) { proxy(keys[index++]); } - RegExpPrototype$5.constructor = RegExpWrapper; - RegExpWrapper.prototype = RegExpPrototype$5; + + for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) { + proxy(keys[index++]); + } + + RegExpPrototype$7.constructor = RegExpWrapper; + RegExpWrapper.prototype = RegExpPrototype$7; redefine(global_1, 'RegExp', RegExpWrapper); } // https://tc39.es/ecma262/#sec-get-regexp-@@species setSpecies('RegExp'); - /* eslint-disable regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ + var defineProperty$4 = objectDefineProperty.f; + var getInternalState$c = internalState.get; + + var RegExpPrototype$6 = RegExp.prototype; + var TypeError$k = global_1.TypeError; + + // `RegExp.prototype.dotAll` getter + // https://tc39.es/ecma262/#sec-get-regexp.prototype.dotall + if (descriptors && regexpUnsupportedDotAll) { + defineProperty$4(RegExpPrototype$6, 'dotAll', { + configurable: true, + get: function () { + if (this === RegExpPrototype$6) { return undefined; } + // We can't use InternalStateModule.getterFor because + // we don't add metadata for regexps created by a literal. + if (classofRaw(this) === 'RegExp') { + return !!getInternalState$c(this).dotAll; + } + throw TypeError$k('Incompatible receiver, RegExp required'); + } + }); + } + + /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */ /* eslint-disable regexp/no-useless-quantifier -- testing */ - var nativeExec = RegExp.prototype.exec; - var nativeReplace = shared('native-string-replace', String.prototype.replace); + + + var getInternalState$b = internalState.get; + + + + var nativeReplace = shared('native-string-replace', String.prototype.replace); + var nativeExec = RegExp.prototype.exec; var patchedExec = nativeExec; + var charAt$b = functionUncurryThis(''.charAt); + var indexOf$1 = functionUncurryThis(''.indexOf); + var replace$5 = functionUncurryThis(''.replace); + var stringSlice$b = functionUncurryThis(''.slice); var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/; var re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); + functionCall(nativeExec, re1, 'a'); + functionCall(nativeExec, re2, 'a'); return re1.lastIndex !== 0 || re2.lastIndex !== 0; })(); - var UNSUPPORTED_Y$3 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; + var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET; // nonparticipating capturing group, copied from es5-shim's String#split patch. var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$3; + var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$2 || regexpUnsupportedDotAll || regexpUnsupportedNcg; if (PATCH) { - patchedExec = function exec(str) { + // eslint-disable-next-line max-statements -- TODO + patchedExec = function exec(string) { var re = this; - var lastIndex, reCopy, match, i; - var sticky = UNSUPPORTED_Y$3 && re.sticky; - var flags = regexpFlags.call(re); + var state = getInternalState$b(re); + var str = toString_1(string); + var raw = state.raw; + var result, reCopy, lastIndex, match, i, object, group; + + if (raw) { + raw.lastIndex = re.lastIndex; + result = functionCall(patchedExec, raw, str); + re.lastIndex = raw.lastIndex; + return result; + } + + var groups = state.groups; + var sticky = UNSUPPORTED_Y$2 && re.sticky; + var flags = functionCall(regexpFlags, re); var source = re.source; var charsAdded = 0; var strCopy = str; if (sticky) { - flags = flags.replace('y', ''); - if (flags.indexOf('g') === -1) { + flags = replace$5(flags, 'y', ''); + if (indexOf$1(flags, 'g') === -1) { flags += 'g'; } - strCopy = String(str).slice(re.lastIndex); + strCopy = stringSlice$b(str, re.lastIndex); // Support anchored sticky behavior. - if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { + if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$b(str, re.lastIndex - 1) !== '\n')) { source = '(?: ' + source + ')'; strCopy = ' ' + strCopy; charsAdded++; @@ -7396,12 +8105,12 @@ var doric = (function (exports) { } if (UPDATES_LAST_INDEX_WRONG) { lastIndex = re.lastIndex; } - match = nativeExec.call(sticky ? reCopy : re, strCopy); + match = functionCall(nativeExec, sticky ? reCopy : re, strCopy); if (sticky) { if (match) { - match.input = match.input.slice(charsAdded); - match[0] = match[0].slice(charsAdded); + match.input = stringSlice$b(match.input, charsAdded); + match[0] = stringSlice$b(match[0], charsAdded); match.index = re.lastIndex; re.lastIndex += match[0].length; } else { re.lastIndex = 0; } @@ -7411,7 +8120,7 @@ var doric = (function (exports) { if (NPCG_INCLUDED && match && match.length > 1) { // Fix browsers whose `exec` methods don't consistently return `undefined` // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - nativeReplace.call(match[0], reCopy, function () { + functionCall(nativeReplace, match[0], reCopy, function () { var arguments$1 = arguments; for (i = 1; i < arguments.length - 2; i++) { @@ -7420,6 +8129,14 @@ var doric = (function (exports) { }); } + if (match && groups) { + match.groups = object = objectCreate(null); + for (i = 0; i < groups.length; i++) { + group = groups[i]; + object[group[0]] = match[group[1]]; + } + } + return match; }; } @@ -7432,36 +8149,41 @@ var doric = (function (exports) { exec: regexpExec }); - var UNSUPPORTED_Y$2 = regexpStickyHelpers.UNSUPPORTED_Y; + var RegExpPrototype$5 = RegExp.prototype; + + var FORCED$a = descriptors && fails(function () { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return Object.getOwnPropertyDescriptor(RegExpPrototype$5, 'flags').get.call({ dotAll: true, sticky: true }) !== 'sy'; + }); // `RegExp.prototype.flags` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags - // eslint-disable-next-line es/no-regexp-prototype-flags -- required for testing - if (descriptors && (/./g.flags != 'g' || UNSUPPORTED_Y$2)) { - objectDefineProperty.f(RegExp.prototype, 'flags', { - configurable: true, - get: regexpFlags - }); - } + if (FORCED$a) { objectDefineProperty.f(RegExpPrototype$5, 'flags', { + configurable: true, + get: regexpFlags + }); } var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y; + var defineProperty$3 = objectDefineProperty.f; - var getInternalState$9 = internalState.get; + var getInternalState$a = internalState.get; + var RegExpPrototype$4 = RegExp.prototype; + var TypeError$j = global_1.TypeError; // `RegExp.prototype.sticky` getter // https://tc39.es/ecma262/#sec-get-regexp.prototype.sticky if (descriptors && UNSUPPORTED_Y$1) { - defineProperty$3(RegExp.prototype, 'sticky', { + defineProperty$3(RegExpPrototype$4, 'sticky', { configurable: true, get: function () { if (this === RegExpPrototype$4) { return undefined; } // We can't use InternalStateModule.getterFor because // we don't add metadata for regexps created by a literal. - if (this instanceof RegExp) { - return !!getInternalState$9(this).sticky; + if (classofRaw(this) === 'RegExp') { + return !!getInternalState$a(this).sticky; } - throw TypeError('Incompatible receiver, RegExp required'); + throw TypeError$j('Incompatible receiver, RegExp required'); } }); } @@ -7471,6 +8193,10 @@ var doric = (function (exports) { + + + + var DELEGATES_TO_EXEC = function () { var execCalled = false; var re = /[ac]/; @@ -7481,62 +8207,96 @@ var doric = (function (exports) { return re.test('abc') === true && execCalled; }(); - var nativeTest = /./.test; + var Error$1 = global_1.Error; + var un$Test = functionUncurryThis(/./.test); // `RegExp.prototype.test` method // https://tc39.es/ecma262/#sec-regexp.prototype.test _export({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, { test: function (str) { - if (typeof this.exec !== 'function') { - return nativeTest.call(this, str); - } - var result = this.exec(str); + var exec = this.exec; + if (!isCallable(exec)) { return un$Test(this, str); } + var result = functionCall(exec, this, str); if (result !== null && !isObject(result)) { - throw new Error('RegExp exec method returned something other than an Object or null'); + throw new Error$1('RegExp exec method returned something other than an Object or null'); } return !!result; } }); + var PROPER_FUNCTION_NAME$2 = functionName.PROPER; + + + + + + + var TO_STRING = 'toString'; var RegExpPrototype$3 = RegExp.prototype; - var nativeToString = RegExpPrototype$3[TO_STRING]; + var n$ToString = RegExpPrototype$3[TO_STRING]; + var getFlags$2 = functionUncurryThis(regexpFlags); - var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); + var NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); // FF44- RegExp#toString has a wrong name - var INCORRECT_NAME = nativeToString.name != TO_STRING; + var INCORRECT_NAME = PROPER_FUNCTION_NAME$2 && n$ToString.name != TO_STRING; // `RegExp.prototype.toString` method // https://tc39.es/ecma262/#sec-regexp.prototype.tostring if (NOT_GENERIC || INCORRECT_NAME) { redefine(RegExp.prototype, TO_STRING, function toString() { var R = anObject(this); - var p = String(R.source); + var p = toString_1(R.source); var rf = R.flags; - var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$3) ? regexpFlags.call(R) : rf); + var f = toString_1(rf === undefined && objectIsPrototypeOf(RegExpPrototype$3, R) && !('flags' in RegExpPrototype$3) ? getFlags$2(R) : rf); return '/' + p + '/' + f; }, { unsafe: true }); } // `Set` constructor // https://tc39.es/ecma262/#sec-set-objects - var es_set = collection('Set', function (init) { + collection('Set', function (init) { return function Set() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionStrong); - // `String.prototype.{ codePointAt, at }` methods implementation + var charAt$a = functionUncurryThis(''.charAt); + + var FORCED$9 = fails(function () { + return '𠮷'.at(0) !== '\uD842'; + }); + + // `String.prototype.at` method + // https://github.com/tc39/proposal-relative-indexing-method + _export({ target: 'String', proto: true, forced: FORCED$9 }, { + at: function at(index) { + var S = toString_1(requireObjectCoercible(this)); + var len = S.length; + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : charAt$a(S, k); + } + }); + + var charAt$9 = functionUncurryThis(''.charAt); + var charCodeAt$1 = functionUncurryThis(''.charCodeAt); + var stringSlice$a = functionUncurryThis(''.slice); + var createMethod$2 = function (CONVERT_TO_STRING) { return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); + var S = toString_1(requireObjectCoercible($this)); + var position = toIntegerOrInfinity(pos); var size = S.length; var first, second; if (position < 0 || position >= size) { return CONVERT_TO_STRING ? '' : undefined; } - first = S.charCodeAt(position); + first = charCodeAt$1(S, position); return first < 0xD800 || first > 0xDBFF || position + 1 === size - || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF - ? CONVERT_TO_STRING ? S.charAt(position) : first - : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; + || (second = charCodeAt$1(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$9(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$a(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; }; }; @@ -7559,9 +8319,11 @@ var doric = (function (exports) { } }); + var TypeError$i = global_1.TypeError; + var notARegexp = function (it) { if (isRegexp(it)) { - throw TypeError("The method doesn't accept regular expressions"); + throw TypeError$i("The method doesn't accept regular expressions"); } return it; }; @@ -7586,9 +8348,11 @@ var doric = (function (exports) { + // eslint-disable-next-line es/no-string-prototype-endswith -- safe - var $endsWith = ''.endsWith; - var min$4 = Math.min; + var un$EndsWith = functionUncurryThis(''.endsWith); + var slice = functionUncurryThis(''.slice); + var min$5 = Math.min; var CORRECT_IS_REGEXP_LOGIC$1 = correctIsRegexpLogic('endsWith'); // https://github.com/zloirock/core-js/pull/702 @@ -7601,21 +8365,23 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-string.prototype.endswith _export({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG$1 && !CORRECT_IS_REGEXP_LOGIC$1 }, { endsWith: function endsWith(searchString /* , endPosition = @length */) { - var that = String(requireObjectCoercible(this)); + var that = toString_1(requireObjectCoercible(this)); notARegexp(searchString); var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : min$4(toLength(endPosition), len); - var search = String(searchString); - return $endsWith - ? $endsWith.call(that, search, end) - : that.slice(end - search.length, end) === search; + var len = that.length; + var end = endPosition === undefined ? len : min$5(toLength(endPosition), len); + var search = toString_1(searchString); + return un$EndsWith + ? un$EndsWith(that, search, end) + : slice(that, end - search.length, end) === search; } }); - var fromCharCode = String.fromCharCode; + var RangeError$6 = global_1.RangeError; + var fromCharCode$2 = String.fromCharCode; // eslint-disable-next-line es/no-string-fromcodepoint -- required for testing var $fromCodePoint = String.fromCodePoint; + var join$5 = functionUncurryThis([].join); // length should be 1, old FF problem var INCORRECT_LENGTH = !!$fromCodePoint && $fromCodePoint.length != 1; @@ -7633,49 +8399,54 @@ var doric = (function (exports) { var code; while (length > i) { code = +arguments$1[i++]; - if (toAbsoluteIndex(code, 0x10FFFF) !== code) { throw RangeError(code + ' is not a valid code point'); } - elements.push(code < 0x10000 - ? fromCharCode(code) - : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00) - ); - } return elements.join(''); + if (toAbsoluteIndex(code, 0x10FFFF) !== code) { throw RangeError$6(code + ' is not a valid code point'); } + elements[i] = code < 0x10000 + ? fromCharCode$2(code) + : fromCharCode$2(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00); + } return join$5(elements, ''); } }); + var stringIndexOf$3 = functionUncurryThis(''.indexOf); + // `String.prototype.includes` method // https://tc39.es/ecma262/#sec-string.prototype.includes _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, { includes: function includes(searchString /* , position = 0 */) { - return !!~String(requireObjectCoercible(this)) - .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined); + return !!~stringIndexOf$3( + toString_1(requireObjectCoercible(this)), + toString_1(notARegexp(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); } }); - var charAt$3 = stringMultibyte.charAt; + var charAt$8 = stringMultibyte.charAt; + var STRING_ITERATOR$1 = 'String Iterator'; - var setInternalState$b = internalState.set; - var getInternalState$8 = internalState.getterFor(STRING_ITERATOR$1); + var setInternalState$c = internalState.set; + var getInternalState$9 = internalState.getterFor(STRING_ITERATOR$1); // `String.prototype[@@iterator]` method // https://tc39.es/ecma262/#sec-string.prototype-@@iterator defineIterator(String, 'String', function (iterated) { - setInternalState$b(this, { + setInternalState$c(this, { type: STRING_ITERATOR$1, - string: String(iterated), + string: toString_1(iterated), index: 0 }); // `%StringIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next }, function next() { - var state = getInternalState$8(this); + var state = getInternalState$9(this); var string = state.string; var index = state.index; var point; if (index >= string.length) { return { value: undefined, done: true }; } - point = charAt$3(string, index); + point = charAt$8(string, index); state.index += point.length; return { value: point, done: false }; }); @@ -7688,50 +8459,11 @@ var doric = (function (exports) { + var SPECIES = wellKnownSymbol('species'); var RegExpPrototype$2 = RegExp.prototype; - var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; - }); - - // IE <= 11 replaces $0 with the whole match, as if it was $& - // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 - var REPLACE_KEEPS_$0 = (function () { - // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing - return 'a'.replace(/./, '$0') === '$0'; - })(); - - var REPLACE$1 = wellKnownSymbol('replace'); - // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { - if (/./[REPLACE$1]) { - return /./[REPLACE$1]('a', '$0') === ''; - } - return false; - })(); - - // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - // Weex JS has frozen built-in prototypes, so use try / catch wrapper - var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { - // eslint-disable-next-line regexp/no-empty-group -- required for testing - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; - }); - - var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) { + var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) { var SYMBOL = wellKnownSymbol(KEY); var DELEGATES_TO_SYMBOL = !fails(function () { @@ -7768,92 +8500,72 @@ var doric = (function (exports) { if ( !DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || - (KEY === 'replace' && !( - REPLACE_SUPPORTS_NAMED_GROUPS && - REPLACE_KEEPS_$0 && - !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE - )) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) + FORCED ) { - var nativeRegExpMethod = /./[SYMBOL]; + var uncurriedNativeRegExpMethod = functionUncurryThis(/./[SYMBOL]); var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { + var uncurriedNativeMethod = functionUncurryThis(nativeMethod); var $exec = regexp.exec; if ($exec === regexpExec || $exec === RegExpPrototype$2.exec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; + return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) }; } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; + return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) }; } return { done: false }; - }, { - REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, - REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE }); - var stringMethod = methods[0]; - var regexMethod = methods[1]; - redefine(String.prototype, KEY, stringMethod); - redefine(RegExpPrototype$2, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return regexMethod.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return regexMethod.call(string, this); } - ); + redefine(String.prototype, KEY, methods[0]); + redefine(RegExpPrototype$2, SYMBOL, methods[1]); } - if (sham) { createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true); } + if (SHAM) { createNonEnumerableProperty(RegExpPrototype$2[SYMBOL], 'sham', true); } }; - var charAt$2 = stringMultibyte.charAt; + var charAt$7 = stringMultibyte.charAt; // `AdvanceStringIndex` abstract operation // https://tc39.es/ecma262/#sec-advancestringindex var advanceStringIndex = function (S, index, unicode) { - return index + (unicode ? charAt$2(S, index).length : 1); + return index + (unicode ? charAt$7(S, index).length : 1); }; + var TypeError$h = global_1.TypeError; + // `RegExpExec` abstract operation // https://tc39.es/ecma262/#sec-regexpexec var regexpExecAbstract = function (R, S) { var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw TypeError('RegExp exec method returned something other than an Object or null'); - } + if (isCallable(exec)) { + var result = functionCall(exec, R, S); + if (result !== null) { anObject(result); } return result; } - - if (classofRaw(R) !== 'RegExp') { - throw TypeError('RegExp#exec called on incompatible receiver'); - } - - return regexpExec.call(R, S); + if (classofRaw(R) === 'RegExp') { return functionCall(regexpExec, R, S); } + throw TypeError$h('RegExp#exec called on incompatible receiver'); }; // @@match logic - fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) { + fixRegexpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) { return [ // `String.prototype.match` method // https://tc39.es/ecma262/#sec-string.prototype.match function match(regexp) { var O = requireObjectCoercible(this); - var matcher = regexp == undefined ? undefined : regexp[MATCH]; - return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH); + return matcher ? functionCall(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString_1(O)); }, // `RegExp.prototype[@@match]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative(nativeMatch, regexp, this); - if (res.done) { return res.value; } + function (string) { + var rx = anObject(this); + var S = toString_1(string); + var res = maybeCallNative(nativeMatch, rx, S); - var rx = anObject(regexp); - var S = String(this); + if (res.done) { return res.value; } if (!rx.global) { return regexpExecAbstract(rx, S); } @@ -7863,7 +8575,7 @@ var doric = (function (exports) { var n = 0; var result; while ((result = regexpExecAbstract(rx, S)) !== null) { - var matchStr = String(result[0]); + var matchStr = toString_1(result[0]); A[n] = matchStr; if (matchStr === '') { rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); } n++; @@ -7888,51 +8600,48 @@ var doric = (function (exports) { + + + + + + var MATCH_ALL = wellKnownSymbol('matchAll'); var REGEXP_STRING = 'RegExp String'; var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator'; - var setInternalState$a = internalState.set; - var getInternalState$7 = internalState.getterFor(REGEXP_STRING_ITERATOR); + var setInternalState$b = internalState.set; + var getInternalState$8 = internalState.getterFor(REGEXP_STRING_ITERATOR); var RegExpPrototype$1 = RegExp.prototype; - var regExpBuiltinExec = RegExpPrototype$1.exec; - var nativeMatchAll = ''.matchAll; + var TypeError$g = global_1.TypeError; + var getFlags$1 = functionUncurryThis(regexpFlags); + var stringIndexOf$2 = functionUncurryThis(''.indexOf); + var un$MatchAll = functionUncurryThis(''.matchAll); - var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () { - 'a'.matchAll(/./); + var WORKS_WITH_NON_GLOBAL_REGEX = !!un$MatchAll && !fails(function () { + un$MatchAll('a', /./); }); - var regExpExec = function (R, S) { - var exec = R.exec; - var result; - if (typeof exec == 'function') { - result = exec.call(R, S); - if (typeof result != 'object') { throw TypeError('Incorrect exec result'); } - return result; - } return regExpBuiltinExec.call(R, S); - }; - - // eslint-disable-next-line max-len -- ignore - var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) { - setInternalState$a(this, { + var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, $global, fullUnicode) { + setInternalState$b(this, { type: REGEXP_STRING_ITERATOR, regexp: regexp, string: string, - global: global, + global: $global, unicode: fullUnicode, done: false }); }, REGEXP_STRING, function next() { - var state = getInternalState$7(this); + var state = getInternalState$8(this); if (state.done) { return { value: undefined, done: true }; } var R = state.regexp; var S = state.string; - var match = regExpExec(R, S); + var match = regexpExecAbstract(R, S); if (match === null) { return { value: undefined, done: state.done = true }; } if (state.global) { - if (String(match[0]) == '') { R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); } + if (toString_1(match[0]) === '') { R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode); } return { value: match, done: false }; } state.done = true; @@ -7941,19 +8650,19 @@ var doric = (function (exports) { var $matchAll = function (string) { var R = anObject(this); - var S = String(string); - var C, flagsValue, flags, matcher, global, fullUnicode; + var S = toString_1(string); + var C, flagsValue, flags, matcher, $global, fullUnicode; C = speciesConstructor(R, RegExp); flagsValue = R.flags; - if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype$1)) { - flagsValue = regexpFlags.call(R); + if (flagsValue === undefined && objectIsPrototypeOf(RegExpPrototype$1, R) && !('flags' in RegExpPrototype$1)) { + flagsValue = getFlags$1(R); } - flags = flagsValue === undefined ? '' : String(flagsValue); + flags = flagsValue === undefined ? '' : toString_1(flagsValue); matcher = new C(C === RegExp ? R.source : R, flags); - global = !!~flags.indexOf('g'); - fullUnicode = !!~flags.indexOf('u'); + $global = !!~stringIndexOf$2(flags, 'g'); + fullUnicode = !!~stringIndexOf$2(flags, 'u'); matcher.lastIndex = toLength(R.lastIndex); - return new $RegExpStringIterator(matcher, S, global, fullUnicode); + return new $RegExpStringIterator(matcher, S, $global, fullUnicode); }; // `String.prototype.matchAll` method @@ -7964,29 +8673,28 @@ var doric = (function (exports) { var flags, S, matcher, rx; if (regexp != null) { if (isRegexp(regexp)) { - flags = String(requireObjectCoercible('flags' in RegExpPrototype$1 + flags = toString_1(requireObjectCoercible('flags' in RegExpPrototype$1 ? regexp.flags - : regexpFlags.call(regexp) + : getFlags$1(regexp) )); - if (!~flags.indexOf('g')) { throw TypeError('`.matchAll` does not allow non-global regexes'); } + if (!~stringIndexOf$2(flags, 'g')) { throw TypeError$g('`.matchAll` does not allow non-global regexes'); } } - if (WORKS_WITH_NON_GLOBAL_REGEX) { return nativeMatchAll.apply(O, arguments); } - matcher = regexp[MATCH_ALL]; + if (WORKS_WITH_NON_GLOBAL_REGEX) { return un$MatchAll(O, regexp); } + matcher = getMethod(regexp, MATCH_ALL); if (matcher === undefined && isPure && classofRaw(regexp) == 'RegExp') { matcher = $matchAll; } - if (matcher != null) { return aFunction(matcher).call(regexp, O); } - } else if (WORKS_WITH_NON_GLOBAL_REGEX) { return nativeMatchAll.apply(O, arguments); } - S = String(O); + if (matcher) { return functionCall(matcher, regexp, O); } + } else if (WORKS_WITH_NON_GLOBAL_REGEX) { return un$MatchAll(O, regexp); } + S = toString_1(O); rx = new RegExp(regexp, 'g'); return rx[MATCH_ALL](S); } }); - MATCH_ALL in RegExpPrototype$1 || createNonEnumerableProperty(RegExpPrototype$1, MATCH_ALL, $matchAll); + MATCH_ALL in RegExpPrototype$1 || redefine(RegExpPrototype$1, MATCH_ALL, $matchAll); // https://github.com/zloirock/core-js/issues/280 - // eslint-disable-next-line unicorn/no-unsafe-regex -- safe var stringPadWebkitBug = /Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(engineUserAgent); var $padEnd = stringPad.end; @@ -8011,21 +8719,25 @@ var doric = (function (exports) { } }); + var push$c = functionUncurryThis([].push); + var join$4 = functionUncurryThis([].join); + // `String.raw` method // https://tc39.es/ecma262/#sec-string.raw _export({ target: 'String', stat: true }, { raw: function raw(template) { var arguments$1 = arguments; - var rawTemplate = toIndexedObject(template.raw); - var literalSegments = toLength(rawTemplate.length); + var rawTemplate = toIndexedObject(toObject(template).raw); + var literalSegments = lengthOfArrayLike(rawTemplate); var argumentsLength = arguments.length; var elements = []; var i = 0; while (literalSegments > i) { - elements.push(String(rawTemplate[i++])); - if (i < argumentsLength) { elements.push(String(arguments$1[i])); } - } return elements.join(''); + push$c(elements, toString_1(rawTemplate[i++])); + if (i === literalSegments) { return join$4(elements, ''); } + if (i < argumentsLength) { push$c(elements, toString_1(arguments$1[i])); } + } } }); @@ -8036,7 +8748,9 @@ var doric = (function (exports) { }); var floor$3 = Math.floor; - var replace$1 = ''.replace; + var charAt$6 = functionUncurryThis(''.charAt); + var replace$4 = functionUncurryThis(''.replace); + var stringSlice$9 = functionUncurryThis(''.slice); var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g; var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g; @@ -8050,15 +8764,15 @@ var doric = (function (exports) { namedCaptures = toObject(namedCaptures); symbols = SUBSTITUTION_SYMBOLS; } - return replace$1.call(replacement, symbols, function (match, ch) { + return replace$4(replacement, symbols, function (match, ch) { var capture; - switch (ch.charAt(0)) { + switch (charAt$6(ch, 0)) { case '$': return '$'; case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); + case '`': return stringSlice$9(str, 0, position); + case "'": return stringSlice$9(str, tailPos); case '<': - capture = namedCaptures[ch.slice(1, -1)]; + capture = namedCaptures[stringSlice$9(ch, 1, -1)]; break; default: // \d\d? var n = +ch; @@ -8066,7 +8780,7 @@ var doric = (function (exports) { if (n > m) { var f = floor$3(n / 10); if (f === 0) { return match; } - if (f <= m) { return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); } + if (f <= m) { return captures[f - 1] === undefined ? charAt$6(ch, 1) : captures[f - 1] + charAt$6(ch, 1); } return match; } capture = captures[n - 1]; @@ -8075,17 +8789,46 @@ var doric = (function (exports) { }); }; - var max$2 = Math.max; - var min$3 = Math.min; + var REPLACE$1 = wellKnownSymbol('replace'); + var max$3 = Math.max; + var min$4 = Math.min; + var concat$1 = functionUncurryThis([].concat); + var push$b = functionUncurryThis([].push); + var stringIndexOf$1 = functionUncurryThis(''.indexOf); + var stringSlice$8 = functionUncurryThis(''.slice); var maybeToString = function (it) { return it === undefined ? it : String(it); }; + // IE <= 11 replaces $0 with the whole match, as if it was $& + // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 + var REPLACE_KEEPS_$0 = (function () { + // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing + return 'a'.replace(/./, '$0') === '$0'; + })(); + + // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string + var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { + if (/./[REPLACE$1]) { + return /./[REPLACE$1]('a', '$0') === ''; + } + return false; + })(); + + var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive + return ''.replace(re, '$') !== '7'; + }); + // @@replace logic - fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { - var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; - var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; + fixRegexpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) { var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; return [ @@ -8093,27 +8836,28 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-string.prototype.replace function replace(searchValue, replaceValue) { var O = requireObjectCoercible(this); - var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; - return replacer !== undefined - ? replacer.call(searchValue, O, replaceValue) - : nativeReplace.call(String(O), searchValue, replaceValue); + var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE$1); + return replacer + ? functionCall(replacer, searchValue, O, replaceValue) + : functionCall(nativeReplace, toString_1(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { + function (string, replaceValue) { + var rx = anObject(this); + var S = toString_1(string); + if ( - (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || - (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) + typeof replaceValue == 'string' && + stringIndexOf$1(replaceValue, UNSAFE_SUBSTITUTE) === -1 && + stringIndexOf$1(replaceValue, '$<') === -1 ) { - var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); + var res = maybeCallNative(nativeReplace, rx, S, replaceValue); if (res.done) { return res.value; } } - var rx = anObject(regexp); - var S = String(this); - - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) { replaceValue = String(replaceValue); } + var functionalReplace = isCallable(replaceValue); + if (!functionalReplace) { replaceValue = toString_1(replaceValue); } var global = rx.global; if (global) { @@ -8125,10 +8869,10 @@ var doric = (function (exports) { var result = regexpExecAbstract(rx, S); if (result === null) { break; } - results.push(result); + push$b(results, result); if (!global) { break; } - var matchStr = String(result[0]); + var matchStr = toString_1(result[0]); if (matchStr === '') { rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); } } @@ -8137,41 +8881,46 @@ var doric = (function (exports) { for (var i = 0; i < results.length; i++) { result = results[i]; - var matched = String(result[0]); - var position = max$2(min$3(toInteger(result.index), S.length), 0); + var matched = toString_1(result[0]); + var position = max$3(min$4(toIntegerOrInfinity(result.index), S.length), 0); var captures = []; // NOTE: This is equivalent to // captures = result.slice(1).map(maybeToString) // but for some reason `nativeSlice.call(result, 1, result.length)` (called in // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) { captures.push(maybeToString(result[j])); } + for (var j = 1; j < result.length; j++) { push$b(captures, maybeToString(result[j])); } var namedCaptures = result.groups; if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) { replacerArgs.push(namedCaptures); } - var replacement = String(replaceValue.apply(undefined, replacerArgs)); + var replacerArgs = concat$1([matched], captures, position, S); + if (namedCaptures !== undefined) { push$b(replacerArgs, namedCaptures); } + var replacement = toString_1(functionApply(replaceValue, undefined, replacerArgs)); } else { replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); } if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; + accumulatedResult += stringSlice$8(S, nextSourcePosition, position) + replacement; nextSourcePosition = position + matched.length; } } - return accumulatedResult + S.slice(nextSourcePosition); + return accumulatedResult + stringSlice$8(S, nextSourcePosition); } ]; - }); + }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE); var REPLACE = wellKnownSymbol('replace'); var RegExpPrototype = RegExp.prototype; - var max$1 = Math.max; + var TypeError$f = global_1.TypeError; + var getFlags = functionUncurryThis(regexpFlags); + var indexOf = functionUncurryThis(''.indexOf); + functionUncurryThis(''.replace); + var stringSlice$7 = functionUncurryThis(''.slice); + var max$2 = Math.max; var stringIndexOf = function (string, searchValue, fromIndex) { if (fromIndex > string.length) { return -1; } if (searchValue === '') { return fromIndex; } - return string.indexOf(searchValue, fromIndex); + return indexOf(string, searchValue, fromIndex); }; // `String.prototype.replaceAll` method @@ -8186,59 +8935,57 @@ var doric = (function (exports) { if (searchValue != null) { IS_REG_EXP = isRegexp(searchValue); if (IS_REG_EXP) { - flags = String(requireObjectCoercible('flags' in RegExpPrototype + flags = toString_1(requireObjectCoercible('flags' in RegExpPrototype ? searchValue.flags - : regexpFlags.call(searchValue) + : getFlags(searchValue) )); - if (!~flags.indexOf('g')) { throw TypeError('`.replaceAll` does not allow non-global regexes'); } + if (!~indexOf(flags, 'g')) { throw TypeError$f('`.replaceAll` does not allow non-global regexes'); } } - replacer = searchValue[REPLACE]; - if (replacer !== undefined) { - return replacer.call(searchValue, O, replaceValue); + replacer = getMethod(searchValue, REPLACE); + if (replacer) { + return functionCall(replacer, searchValue, O, replaceValue); } } - string = String(O); - searchString = String(searchValue); - functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) { replaceValue = String(replaceValue); } + string = toString_1(O); + searchString = toString_1(searchValue); + functionalReplace = isCallable(replaceValue); + if (!functionalReplace) { replaceValue = toString_1(replaceValue); } searchLength = searchString.length; - advanceBy = max$1(1, searchLength); + advanceBy = max$2(1, searchLength); position = stringIndexOf(string, searchString, 0); while (position !== -1) { - if (functionalReplace) { - replacement = String(replaceValue(searchString, position, string)); - } else { - replacement = getSubstitution(searchString, string, position, [], undefined, replaceValue); - } - result += string.slice(endOfLastMatch, position) + replacement; + replacement = functionalReplace + ? toString_1(replaceValue(searchString, position, string)) + : getSubstitution(searchString, string, position, [], undefined, replaceValue); + result += stringSlice$7(string, endOfLastMatch, position) + replacement; endOfLastMatch = position + searchLength; position = stringIndexOf(string, searchString, position + advanceBy); } if (endOfLastMatch < string.length) { - result += string.slice(endOfLastMatch); + result += stringSlice$7(string, endOfLastMatch); } return result; } }); // @@search logic - fixRegexpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { + fixRegexpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) { return [ // `String.prototype.search` method // https://tc39.es/ecma262/#sec-string.prototype.search function search(regexp) { var O = requireObjectCoercible(this); - var searcher = regexp == undefined ? undefined : regexp[SEARCH]; - return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH); + return searcher ? functionCall(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString_1(O)); }, // `RegExp.prototype[@@search]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative(nativeSearch, regexp, this); - if (res.done) { return res.value; } + function (string) { + var rx = anObject(this); + var S = toString_1(string); + var res = maybeCallNative(nativeSearch, rx, S); - var rx = anObject(regexp); - var S = String(this); + if (res.done) { return res.value; } var previousLastIndex = rx.lastIndex; if (!sameValue(previousLastIndex, 0)) { rx.lastIndex = 0; } @@ -8250,12 +8997,26 @@ var doric = (function (exports) { }); var UNSUPPORTED_Y = regexpStickyHelpers.UNSUPPORTED_Y; - var arrayPush = [].push; - var min$2 = Math.min; var MAX_UINT32 = 0xFFFFFFFF; + var min$3 = Math.min; + var $push = [].push; + var exec$4 = functionUncurryThis(/./.exec); + var push$a = functionUncurryThis($push); + var stringSlice$6 = functionUncurryThis(''.slice); + + // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec + // Weex JS has frozen built-in prototypes, so use try / catch wrapper + var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { + // eslint-disable-next-line regexp/no-empty-group -- required for testing + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; + }); // @@split logic - fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) { + fixRegexpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) { var internalSplit; if ( 'abbc'.split(/(b)*/)[1] == 'c' || @@ -8263,19 +9024,19 @@ var doric = (function (exports) { 'test'.split(/(?:)/, -1).length != 4 || 'ab'.split(/(?:ab)*/).length != 2 || '.'.split(/(.?)(.?)/).length != 4 || - // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing + // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing '.'.split(/()()/).length > 1 || ''.split(/.?/).length ) { // based on es5-shim implementation, need to rework it internalSplit = function (separator, limit) { - var string = String(requireObjectCoercible(this)); + var string = toString_1(requireObjectCoercible(this)); var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; if (lim === 0) { return []; } if (separator === undefined) { return [string]; } // If `separator` is not a regex, use native split if (!isRegexp(separator)) { - return nativeSplit.call(string, separator, lim); + return functionCall(nativeSplit, string, separator, lim); } var output = []; var flags = (separator.ignoreCase ? 'i' : '') + @@ -8286,11 +9047,11 @@ var doric = (function (exports) { // Make `global` and avoid `lastIndex` issues by working with a copy var separatorCopy = new RegExp(separator.source, flags + 'g'); var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { + while (match = functionCall(regexpExec, separatorCopy, string)) { lastIndex = separatorCopy.lastIndex; if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match.length > 1 && match.index < string.length) { arrayPush.apply(output, match.slice(1)); } + push$a(output, stringSlice$6(string, lastLastIndex, match.index)); + if (match.length > 1 && match.index < string.length) { functionApply($push, output, arraySlice$1(match, 1)); } lastLength = match[0].length; lastLastIndex = lastIndex; if (output.length >= lim) { break; } @@ -8298,14 +9059,14 @@ var doric = (function (exports) { if (separatorCopy.lastIndex === match.index) { separatorCopy.lastIndex++; } // Avoid an infinite loop } if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) { output.push(''); } - } else { output.push(string.slice(lastLastIndex)); } - return output.length > lim ? output.slice(0, lim) : output; + if (lastLength || !exec$4(separatorCopy, '')) { push$a(output, ''); } + } else { push$a(output, stringSlice$6(string, lastLastIndex)); } + return output.length > lim ? arraySlice$1(output, 0, lim) : output; }; // Chakra, V8 } else if ('0'.split(undefined, 0).length) { internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit); + return separator === undefined && limit === 0 ? [] : functionCall(nativeSplit, this, separator, limit); }; } else { internalSplit = nativeSplit; } @@ -8314,22 +9075,23 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-string.prototype.split function split(separator, limit) { var O = requireObjectCoercible(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); + var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT); + return splitter + ? functionCall(splitter, separator, O, limit) + : functionCall(internalSplit, toString_1(O), separator, limit); }, // `RegExp.prototype[@@split]` method // https://tc39.es/ecma262/#sec-regexp.prototype-@@split // // NOTE: This cannot be properly polyfilled in engines that don't support // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit); + function (string, limit) { + var rx = anObject(this); + var S = toString_1(string); + var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit); + if (res.done) { return res.value; } - var rx = anObject(regexp); - var S = String(this); var C = speciesConstructor(rx, RegExp); var unicodeMatching = rx.unicode; @@ -8349,28 +9111,28 @@ var doric = (function (exports) { var A = []; while (q < S.length) { splitter.lastIndex = UNSUPPORTED_Y ? 0 : q; - var z = regexpExecAbstract(splitter, UNSUPPORTED_Y ? S.slice(q) : S); + var z = regexpExecAbstract(splitter, UNSUPPORTED_Y ? stringSlice$6(S, q) : S); var e; if ( z === null || - (e = min$2(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p + (e = min$3(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p ) { q = advanceStringIndex(S, q, unicodeMatching); } else { - A.push(S.slice(p, q)); + push$a(A, stringSlice$6(S, p, q)); if (A.length === lim) { return A; } for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); + push$a(A, z[i]); if (A.length === lim) { return A; } } q = p = e; } } - A.push(S.slice(p)); + push$a(A, stringSlice$6(S, p)); return A; } ]; - }, UNSUPPORTED_Y); + }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y); var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; @@ -8379,9 +9141,11 @@ var doric = (function (exports) { + // eslint-disable-next-line es/no-string-prototype-startswith -- safe - var $startsWith = ''.startsWith; - var min$1 = Math.min; + var un$StartsWith = functionUncurryThis(''.startsWith); + var stringSlice$5 = functionUncurryThis(''.slice); + var min$2 = Math.min; var CORRECT_IS_REGEXP_LOGIC = correctIsRegexpLogic('startsWith'); // https://github.com/zloirock/core-js/pull/702 @@ -8394,23 +9158,53 @@ var doric = (function (exports) { // https://tc39.es/ecma262/#sec-string.prototype.startswith _export({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, { startsWith: function startsWith(searchString /* , position = 0 */) { - var that = String(requireObjectCoercible(this)); + var that = toString_1(requireObjectCoercible(this)); notARegexp(searchString); - var index = toLength(min$1(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith - ? $startsWith.call(that, search, index) - : that.slice(index, index + search.length) === search; + var index = toLength(min$2(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = toString_1(searchString); + return un$StartsWith + ? un$StartsWith(that, search, index) + : stringSlice$5(that, index, index + search.length) === search; } }); + var stringSlice$4 = functionUncurryThis(''.slice); + var max$1 = Math.max; + var min$1 = Math.min; + + // eslint-disable-next-line unicorn/prefer-string-slice -- required for testing + var FORCED$8 = !''.substr || 'ab'.substr(-1) !== 'b'; + + // `String.prototype.substr` method + // https://tc39.es/ecma262/#sec-string.prototype.substr + _export({ target: 'String', proto: true, forced: FORCED$8 }, { + substr: function substr(start, length) { + var that = toString_1(requireObjectCoercible(this)); + var size = that.length; + var intStart = toIntegerOrInfinity(start); + var intLength, intEnd; + if (intStart === Infinity) { intStart = 0; } + if (intStart < 0) { intStart = max$1(size + intStart, 0); } + intLength = length === undefined ? size : toIntegerOrInfinity(length); + if (intLength <= 0 || intLength === Infinity) { return ''; } + intEnd = min$1(intStart + intLength, size); + return intStart >= intEnd ? '' : stringSlice$4(that, intStart, intEnd); + } + }); + + var PROPER_FUNCTION_NAME$1 = functionName.PROPER; + + + var non = '\u200B\u0085\u180E'; // check that a method works with the correct list // of whitespaces and has a correct name var stringTrimForced = function (METHOD_NAME) { return fails(function () { - return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME; + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME$1 && whitespaces[METHOD_NAME].name !== METHOD_NAME); }); }; @@ -8438,7 +9232,7 @@ var doric = (function (exports) { // `String.prototype.{ trimEnd, trimRight }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimend // https://tc39.es/ecma262/#String.prototype.trimright - _export({ target: 'String', proto: true, forced: FORCED$7 }, { + _export({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED$7 }, { trimEnd: trimEnd, trimRight: trimEnd }); @@ -8456,19 +9250,20 @@ var doric = (function (exports) { // `String.prototype.{ trimStart, trimLeft }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimstart // https://tc39.es/ecma262/#String.prototype.trimleft - _export({ target: 'String', proto: true, forced: FORCED$6 }, { + _export({ target: 'String', proto: true, name: 'trimStart', forced: FORCED$6 }, { trimStart: trimStart, trimLeft: trimStart }); var quot = /"/g; + var replace$3 = functionUncurryThis(''.replace); // `CreateHTML` abstract operation // https://tc39.es/ecma262/#sec-createhtml var createHtml = function (string, tag, attribute, value) { - var S = String(requireObjectCoercible(string)); + var S = toString_1(requireObjectCoercible(string)); var p1 = '<' + tag; - if (attribute !== '') { p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; } + if (attribute !== '') { p1 += ' ' + attribute + '="' + replace$3(toString_1(value), quot, '"') + '"'; } return p1 + '>' + S + ''; }; @@ -8608,40 +9403,45 @@ var doric = (function (exports) { return new Int8Array$2(new ArrayBuffer$1(2), 1, undefined).length !== 1; }); + var RangeError$5 = global_1.RangeError; + var toPositiveInteger = function (it) { - var result = toInteger(it); - if (result < 0) { throw RangeError("The argument can't be less than 0"); } + var result = toIntegerOrInfinity(it); + if (result < 0) { throw RangeError$5("The argument can't be less than 0"); } return result; }; + var RangeError$4 = global_1.RangeError; + var toOffset = function (it, BYTES) { var offset = toPositiveInteger(it); - if (offset % BYTES) { throw RangeError('Wrong offset'); } + if (offset % BYTES) { throw RangeError$4('Wrong offset'); } return offset; }; - var aTypedArrayConstructor$4 = arrayBufferViewCore.aTypedArrayConstructor; + var aTypedArrayConstructor$3 = arrayBufferViewCore.aTypedArrayConstructor; var typedArrayFrom = function from(source /* , mapfn, thisArg */) { + var C = aConstructor(this); var O = toObject(source); var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; var iteratorMethod = getIteratorMethod(O); var i, length, result, step, iterator, next; - if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) { - iterator = iteratorMethod.call(O); + if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) { + iterator = getIterator(O, iteratorMethod); next = iterator.next; O = []; - while (!(step = next.call(iterator)).done) { + while (!(step = functionCall(next, iterator)).done) { O.push(step.value); } } if (mapping && argumentsLength > 2) { - mapfn = functionBindContext(mapfn, arguments[2], 2); + mapfn = functionBindContext(mapfn, arguments[2]); } - length = toLength(O.length); - result = new (aTypedArrayConstructor$4(this))(length); + length = lengthOfArrayLike(O); + result = new (aTypedArrayConstructor$3(C))(length); for (i = 0; length > i; i++) { result[i] = mapping ? mapfn(O[i], i) : O[i]; } @@ -8665,6 +9465,10 @@ var doric = (function (exports) { + + + + var getOwnPropertyNames = objectGetOwnPropertyNames.f; @@ -8683,8 +9487,10 @@ var doric = (function (exports) { var round = Math.round; var RangeError = global_1.RangeError; var ArrayBuffer = arrayBuffer.ArrayBuffer; + var ArrayBufferPrototype = ArrayBuffer.prototype; var DataView = arrayBuffer.DataView; var NATIVE_ARRAY_BUFFER_VIEWS = arrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; + var TYPED_ARRAY_CONSTRUCTOR = arrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR; var TYPED_ARRAY_TAG = arrayBufferViewCore.TYPED_ARRAY_TAG; var TypedArray = arrayBufferViewCore.TypedArray; var TypedArrayPrototype = arrayBufferViewCore.TypedArrayPrototype; @@ -8694,9 +9500,10 @@ var doric = (function (exports) { var WRONG_LENGTH = 'Wrong length'; var fromList = function (C, list) { + aTypedArrayConstructor(C); var index = 0; var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); + var result = new C(length); while (length > index) { result[index] = list[index++]; } return result; }; @@ -8709,32 +9516,35 @@ var doric = (function (exports) { var isArrayBuffer = function (it) { var klass; - return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; + return objectIsPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer'; }; var isTypedArrayIndex = function (target, key) { return isTypedArray(target) - && typeof key != 'symbol' + && !isSymbol(key) && key in target - && String(+key) == String(key); + && isIntegralNumber(+key) + && key >= 0; }; var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) { - return isTypedArrayIndex(target, key = toPrimitive(key, true)) + key = toPropertyKey(key); + return isTypedArrayIndex(target, key) ? createPropertyDescriptor(2, target[key]) : nativeGetOwnPropertyDescriptor(target, key); }; var wrappedDefineProperty = function defineProperty(target, key, descriptor) { - if (isTypedArrayIndex(target, key = toPrimitive(key, true)) + key = toPropertyKey(key); + if (isTypedArrayIndex(target, key) && isObject(descriptor) - && has$1(descriptor, 'value') - && !has$1(descriptor, 'get') - && !has$1(descriptor, 'set') + && hasOwnProperty_1(descriptor, 'value') + && !hasOwnProperty_1(descriptor, 'get') + && !hasOwnProperty_1(descriptor, 'set') // TODO: add validation descriptor w/o calling accessors && !descriptor.configurable - && (!has$1(descriptor, 'writable') || descriptor.writable) - && (!has$1(descriptor, 'enumerable') || descriptor.enumerable) + && (!hasOwnProperty_1(descriptor, 'writable') || descriptor.writable) + && (!hasOwnProperty_1(descriptor, 'enumerable') || descriptor.enumerable) ) { target[key] = descriptor.value; return target; @@ -8791,7 +9601,7 @@ var doric = (function (exports) { if (!NATIVE_ARRAY_BUFFER_VIEWS) { TypedArrayConstructor = wrapper(function (that, data, offset, $length) { - anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME); + anInstance(that, TypedArrayConstructorPrototype); var index = 0; var byteOffset = 0; var buffer, byteLength, length; @@ -8815,7 +9625,7 @@ var doric = (function (exports) { } else if (isTypedArray(data)) { return fromList(TypedArrayConstructor, data); } else { - return typedArrayFrom.call(TypedArrayConstructor, data); + return functionCall(typedArrayFrom, TypedArrayConstructor, data); } setInternalState(that, { buffer: buffer, @@ -8831,7 +9641,7 @@ var doric = (function (exports) { TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = objectCreate(TypedArrayPrototype); } else if (typedArrayConstructorsRequireWrappers) { TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) { - anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME); + anInstance(dummy, TypedArrayConstructorPrototype); return inheritIfRequired(function () { if (!isObject(data)) { return new NativeTypedArrayConstructor(toIndex(data)); } if (isArrayBuffer(data)) { return $length !== undefined @@ -8840,7 +9650,7 @@ var doric = (function (exports) { ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES)) : new NativeTypedArrayConstructor(data); } if (isTypedArray(data)) { return fromList(TypedArrayConstructor, data); } - return typedArrayFrom.call(TypedArrayConstructor, data); + return functionCall(typedArrayFrom, TypedArrayConstructor, data); }(), dummy, TypedArrayConstructor); }); @@ -8857,6 +9667,8 @@ var doric = (function (exports) { createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor); } + createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_CONSTRUCTOR, TypedArrayConstructor); + if (TYPED_ARRAY_TAG) { createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME); } @@ -8952,198 +9764,229 @@ var doric = (function (exports) { }; }); - var aTypedArray$q = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$r = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$s = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$t = arrayBufferViewCore.exportTypedArrayMethod; + + // `%TypedArray%.prototype.at` method + // https://github.com/tc39/proposal-relative-indexing-method + exportTypedArrayMethod$t('at', function at(index) { + var O = aTypedArray$s(this); + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; + return (k < 0 || k >= len) ? undefined : O[k]; + }); + + var u$ArrayCopyWithin = functionUncurryThis(arrayCopyWithin); + var aTypedArray$r = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$s = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.copyWithin` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin - exportTypedArrayMethod$r('copyWithin', function copyWithin(target, start /* , end */) { - return arrayCopyWithin.call(aTypedArray$q(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + exportTypedArrayMethod$s('copyWithin', function copyWithin(target, start /* , end */) { + return u$ArrayCopyWithin(aTypedArray$r(this), target, start, arguments.length > 2 ? arguments[2] : undefined); }); var $every$1 = arrayIteration.every; - var aTypedArray$p = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$q = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$q = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$r = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.every` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.every - exportTypedArrayMethod$q('every', function every(callbackfn /* , thisArg */) { - return $every$1(aTypedArray$p(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$r('every', function every(callbackfn /* , thisArg */) { + return $every$1(aTypedArray$q(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }); - var aTypedArray$o = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$p = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$p = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$q = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.fill` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill - // eslint-disable-next-line no-unused-vars -- required for `.length` - exportTypedArrayMethod$p('fill', function fill(value /* , start, end */) { - return arrayFill.apply(aTypedArray$o(this), arguments); + exportTypedArrayMethod$q('fill', function fill(value /* , start, end */) { + var length = arguments.length; + return functionCall( + arrayFill, + aTypedArray$p(this), + value, + length > 1 ? arguments[1] : undefined, + length > 2 ? arguments[2] : undefined + ); }); - var aTypedArrayConstructor$3 = arrayBufferViewCore.aTypedArrayConstructor; - - - var typedArrayFromSpeciesAndList = function (instance, list) { - var C = speciesConstructor(instance, instance.constructor); + var arrayFromConstructorAndList = function (Constructor, list) { var index = 0; var length = list.length; - var result = new (aTypedArrayConstructor$3(C))(length); + var result = new Constructor(length); while (length > index) { result[index] = list[index++]; } return result; }; + var TYPED_ARRAY_CONSTRUCTOR = arrayBufferViewCore.TYPED_ARRAY_CONSTRUCTOR; + var aTypedArrayConstructor$2 = arrayBufferViewCore.aTypedArrayConstructor; + + // a part of `TypedArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#typedarray-species-create + var typedArraySpeciesConstructor = function (originalArray) { + return aTypedArrayConstructor$2(speciesConstructor(originalArray, originalArray[TYPED_ARRAY_CONSTRUCTOR])); + }; + + var typedArrayFromSpeciesAndList = function (instance, list) { + return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list); + }; + var $filter = arrayIteration.filter; - var aTypedArray$n = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$o = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$o = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$p = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.filter` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter - exportTypedArrayMethod$o('filter', function filter(callbackfn /* , thisArg */) { - var list = $filter(aTypedArray$n(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$p('filter', function filter(callbackfn /* , thisArg */) { + var list = $filter(aTypedArray$o(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); return typedArrayFromSpeciesAndList(this, list); }); var $find$1 = arrayIteration.find; - var aTypedArray$m = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$n = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$n = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$o = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.find` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.find - exportTypedArrayMethod$n('find', function find(predicate /* , thisArg */) { - return $find$1(aTypedArray$m(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$o('find', function find(predicate /* , thisArg */) { + return $find$1(aTypedArray$n(this), predicate, arguments.length > 1 ? arguments[1] : undefined); }); var $findIndex = arrayIteration.findIndex; - var aTypedArray$l = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$m = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$m = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$n = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findIndex` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex - exportTypedArrayMethod$m('findIndex', function findIndex(predicate /* , thisArg */) { - return $findIndex(aTypedArray$l(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$n('findIndex', function findIndex(predicate /* , thisArg */) { + return $findIndex(aTypedArray$m(this), predicate, arguments.length > 1 ? arguments[1] : undefined); }); var $forEach$1 = arrayIteration.forEach; - var aTypedArray$k = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$l = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$l = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$m = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.forEach` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach - exportTypedArrayMethod$l('forEach', function forEach(callbackfn /* , thisArg */) { - $forEach$1(aTypedArray$k(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$m('forEach', function forEach(callbackfn /* , thisArg */) { + $forEach$1(aTypedArray$l(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }); - var exportTypedArrayStaticMethod$1 = arrayBufferViewCore.exportTypedArrayStaticMethod; + var exportTypedArrayStaticMethod$2 = arrayBufferViewCore.exportTypedArrayStaticMethod; // `%TypedArray%.from` method // https://tc39.es/ecma262/#sec-%typedarray%.from - exportTypedArrayStaticMethod$1('from', typedArrayFrom, typedArrayConstructorsRequireWrappers); + exportTypedArrayStaticMethod$2('from', typedArrayFrom, typedArrayConstructorsRequireWrappers); var $includes = arrayIncludes.includes; - var aTypedArray$j = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$k = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$k = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$l = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.includes` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes - exportTypedArrayMethod$k('includes', function includes(searchElement /* , fromIndex */) { - return $includes(aTypedArray$j(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$l('includes', function includes(searchElement /* , fromIndex */) { + return $includes(aTypedArray$k(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); }); var $indexOf = arrayIncludes.indexOf; - var aTypedArray$i = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$j = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$j = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$k = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.indexOf` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof - exportTypedArrayMethod$j('indexOf', function indexOf(searchElement /* , fromIndex */) { - return $indexOf(aTypedArray$i(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$k('indexOf', function indexOf(searchElement /* , fromIndex */) { + return $indexOf(aTypedArray$j(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); }); + var PROPER_FUNCTION_NAME = functionName.PROPER; + + + + var ITERATOR$3 = wellKnownSymbol('iterator'); var Uint8Array$2 = global_1.Uint8Array; - var arrayValues = es_array_iterator.values; - var arrayKeys = es_array_iterator.keys; - var arrayEntries = es_array_iterator.entries; - var aTypedArray$h = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$i = arrayBufferViewCore.exportTypedArrayMethod; + var arrayValues = functionUncurryThis(es_array_iterator.values); + var arrayKeys = functionUncurryThis(es_array_iterator.keys); + var arrayEntries = functionUncurryThis(es_array_iterator.entries); + var aTypedArray$i = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$j = arrayBufferViewCore.exportTypedArrayMethod; var nativeTypedArrayIterator = Uint8Array$2 && Uint8Array$2.prototype[ITERATOR$3]; - var CORRECT_ITER_NAME = !!nativeTypedArrayIterator - && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined); + var PROPER_ARRAY_VALUES_NAME = !!nativeTypedArrayIterator && nativeTypedArrayIterator.name === 'values'; var typedArrayValues = function values() { - return arrayValues.call(aTypedArray$h(this)); + return arrayValues(aTypedArray$i(this)); }; // `%TypedArray%.prototype.entries` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries - exportTypedArrayMethod$i('entries', function entries() { - return arrayEntries.call(aTypedArray$h(this)); + exportTypedArrayMethod$j('entries', function entries() { + return arrayEntries(aTypedArray$i(this)); }); // `%TypedArray%.prototype.keys` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys - exportTypedArrayMethod$i('keys', function keys() { - return arrayKeys.call(aTypedArray$h(this)); + exportTypedArrayMethod$j('keys', function keys() { + return arrayKeys(aTypedArray$i(this)); }); // `%TypedArray%.prototype.values` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.values - exportTypedArrayMethod$i('values', typedArrayValues, !CORRECT_ITER_NAME); + exportTypedArrayMethod$j('values', typedArrayValues, PROPER_FUNCTION_NAME && !PROPER_ARRAY_VALUES_NAME); // `%TypedArray%.prototype[@@iterator]` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator - exportTypedArrayMethod$i(ITERATOR$3, typedArrayValues, !CORRECT_ITER_NAME); + exportTypedArrayMethod$j(ITERATOR$3, typedArrayValues, PROPER_FUNCTION_NAME && !PROPER_ARRAY_VALUES_NAME); - var aTypedArray$g = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$h = arrayBufferViewCore.exportTypedArrayMethod; - var $join = [].join; + var aTypedArray$h = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$i = arrayBufferViewCore.exportTypedArrayMethod; + var $join = functionUncurryThis([].join); // `%TypedArray%.prototype.join` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.join - // eslint-disable-next-line no-unused-vars -- required for `.length` - exportTypedArrayMethod$h('join', function join(separator) { - return $join.apply(aTypedArray$g(this), arguments); + exportTypedArrayMethod$i('join', function join(separator) { + return $join(aTypedArray$h(this), separator); }); - var aTypedArray$f = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$g = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$g = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$h = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.lastIndexOf` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof - // eslint-disable-next-line no-unused-vars -- required for `.length` - exportTypedArrayMethod$g('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { - return arrayLastIndexOf.apply(aTypedArray$f(this), arguments); + exportTypedArrayMethod$h('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) { + var length = arguments.length; + return functionApply(arrayLastIndexOf, aTypedArray$g(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]); }); var $map = arrayIteration.map; - var aTypedArray$e = arrayBufferViewCore.aTypedArray; - var aTypedArrayConstructor$2 = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayMethod$f = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$f = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$g = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.map` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.map - exportTypedArrayMethod$f('map', function map(mapfn /* , thisArg */) { - return $map(aTypedArray$e(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { - return new (aTypedArrayConstructor$2(speciesConstructor(O, O.constructor)))(length); + exportTypedArrayMethod$g('map', function map(mapfn /* , thisArg */) { + return $map(aTypedArray$f(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) { + return new (typedArraySpeciesConstructor(O))(length); }); }); var aTypedArrayConstructor$1 = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayStaticMethod = arrayBufferViewCore.exportTypedArrayStaticMethod; + var exportTypedArrayStaticMethod$1 = arrayBufferViewCore.exportTypedArrayStaticMethod; // `%TypedArray%.of` method // https://tc39.es/ecma262/#sec-%typedarray%.of - exportTypedArrayStaticMethod('of', function of(/* ...items */) { + exportTypedArrayStaticMethod$1('of', function of(/* ...items */) { var arguments$1 = arguments; var index = 0; @@ -9155,35 +9998,37 @@ var doric = (function (exports) { var $reduce = arrayReduce.left; - var aTypedArray$d = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$e = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$e = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$f = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduce` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce - exportTypedArrayMethod$e('reduce', function reduce(callbackfn /* , initialValue */) { - return $reduce(aTypedArray$d(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$f('reduce', function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(aTypedArray$e(this), callbackfn, length, length > 1 ? arguments[1] : undefined); }); var $reduceRight = arrayReduce.right; - var aTypedArray$c = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$d = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$d = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$e = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.reduceRicht` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright - exportTypedArrayMethod$d('reduceRight', function reduceRight(callbackfn /* , initialValue */) { - return $reduceRight(aTypedArray$c(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$e('reduceRight', function reduceRight(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduceRight(aTypedArray$d(this), callbackfn, length, length > 1 ? arguments[1] : undefined); }); - var aTypedArray$b = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$c = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$c = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$d = arrayBufferViewCore.exportTypedArrayMethod; var floor$2 = Math.floor; // `%TypedArray%.prototype.reverse` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse - exportTypedArrayMethod$c('reverse', function reverse() { + exportTypedArrayMethod$d('reverse', function reverse() { var that = this; - var length = aTypedArray$b(that).length; + var length = aTypedArray$c(that).length; var middle = floor$2(length / 2); var index = 0; var value; @@ -9194,8 +10039,9 @@ var doric = (function (exports) { } return that; }); - var aTypedArray$a = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$b = arrayBufferViewCore.exportTypedArrayMethod; + var RangeError$3 = global_1.RangeError; + var aTypedArray$b = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$c = arrayBufferViewCore.exportTypedArrayMethod; var FORCED$5 = fails(function () { // eslint-disable-next-line es/no-typed-arrays -- required for testing @@ -9204,21 +10050,19 @@ var doric = (function (exports) { // `%TypedArray%.prototype.set` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.set - exportTypedArrayMethod$b('set', function set(arrayLike /* , offset */) { - aTypedArray$a(this); + exportTypedArrayMethod$c('set', function set(arrayLike /* , offset */) { + aTypedArray$b(this); var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1); var length = this.length; var src = toObject(arrayLike); - var len = toLength(src.length); + var len = lengthOfArrayLike(src); var index = 0; - if (len + offset > length) { throw RangeError('Wrong length'); } + if (len + offset > length) { throw RangeError$3('Wrong length'); } while (index < len) { this[offset + index] = src[index++]; } }, FORCED$5); - var aTypedArray$9 = arrayBufferViewCore.aTypedArray; - var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor; - var exportTypedArrayMethod$a = arrayBufferViewCore.exportTypedArrayMethod; - var $slice$1 = [].slice; + var aTypedArray$a = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$b = arrayBufferViewCore.exportTypedArrayMethod; var FORCED$4 = fails(function () { // eslint-disable-next-line es/no-typed-arrays -- required for testing @@ -9227,40 +10071,41 @@ var doric = (function (exports) { // `%TypedArray%.prototype.slice` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice - exportTypedArrayMethod$a('slice', function slice(start, end) { - var list = $slice$1.call(aTypedArray$9(this), start, end); - var C = speciesConstructor(this, this.constructor); + exportTypedArrayMethod$b('slice', function slice(start, end) { + var list = arraySlice$1(aTypedArray$a(this), start, end); + var C = typedArraySpeciesConstructor(this); var index = 0; var length = list.length; - var result = new (aTypedArrayConstructor(C))(length); + var result = new C(length); while (length > index) { result[index] = list[index++]; } return result; }, FORCED$4); var $some$1 = arrayIteration.some; - var aTypedArray$8 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$9 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$9 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$a = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.some` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.some - exportTypedArrayMethod$9('some', function some(callbackfn /* , thisArg */) { - return $some$1(aTypedArray$8(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$a('some', function some(callbackfn /* , thisArg */) { + return $some$1(aTypedArray$9(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); }); - var aTypedArray$7 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$8 = arrayBufferViewCore.exportTypedArrayMethod; + var Array$3 = global_1.Array; + var aTypedArray$8 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$9 = arrayBufferViewCore.exportTypedArrayMethod; var Uint16Array = global_1.Uint16Array; - var nativeSort = Uint16Array && Uint16Array.prototype.sort; + var un$Sort = Uint16Array && functionUncurryThis(Uint16Array.prototype.sort); // WebKit - var ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !fails(function () { - var array = new Uint16Array(2); - array.sort(null); - array.sort({}); - }); + var ACCEPT_INCORRECT_ARGUMENTS = !!un$Sort && !(fails(function () { + un$Sort(new Uint16Array(2), null); + }) && fails(function () { + un$Sort(new Uint16Array(2), {}); + })); - var STABLE_SORT = !!nativeSort && !fails(function () { + var STABLE_SORT = !!un$Sort && !fails(function () { // feature detection can be too slow, so check engines versions if (engineV8Version) { return engineV8Version < 74; } if (engineFfVersion) { return engineFfVersion < 67; } @@ -9268,7 +10113,7 @@ var doric = (function (exports) { if (engineWebkitVersion) { return engineWebkitVersion < 602; } var array = new Uint16Array(516); - var expected = Array(516); + var expected = Array$3(516); var index, mod; for (index = 0; index < 516; index++) { @@ -9277,7 +10122,7 @@ var doric = (function (exports) { expected[index] = index - 2 * mod + 3; } - array.sort(function (a, b) { + un$Sort(array, function (a, b) { return (a / 4 | 0) - (b / 4 | 0); }); @@ -9300,39 +10145,24 @@ var doric = (function (exports) { // `%TypedArray%.prototype.sort` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort - exportTypedArrayMethod$8('sort', function sort(comparefn) { - var array = this; - if (comparefn !== undefined) { aFunction(comparefn); } - if (STABLE_SORT) { return nativeSort.call(array, comparefn); } + exportTypedArrayMethod$9('sort', function sort(comparefn) { + if (comparefn !== undefined) { aCallable(comparefn); } + if (STABLE_SORT) { return un$Sort(this, comparefn); } - aTypedArray$7(array); - var arrayLength = toLength(array.length); - var items = Array(arrayLength); - var index; - - for (index = 0; index < arrayLength; index++) { - items[index] = array[index]; - } - - items = arraySort(array, getSortCompare(comparefn)); - - for (index = 0; index < arrayLength; index++) { - array[index] = items[index]; - } - - return array; + return arraySort(aTypedArray$8(this), getSortCompare(comparefn)); }, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS); - var aTypedArray$6 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$7 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$7 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$8 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.subarray` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray - exportTypedArrayMethod$7('subarray', function subarray(begin, end) { - var O = aTypedArray$6(this); + exportTypedArrayMethod$8('subarray', function subarray(begin, end) { + var O = aTypedArray$7(this); var length = O.length; var beginIndex = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O.constructor))( + var C = typedArraySpeciesConstructor(O); + return new C( O.buffer, O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex) @@ -9340,10 +10170,9 @@ var doric = (function (exports) { }); var Int8Array$1 = global_1.Int8Array; - var aTypedArray$5 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$6 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$6 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$7 = arrayBufferViewCore.exportTypedArrayMethod; var $toLocaleString = [].toLocaleString; - var $slice = [].slice; // iOS Safari 6.x fails here var TO_LOCALE_STRING_BUG = !!Int8Array$1 && fails(function () { @@ -9358,22 +10187,27 @@ var doric = (function (exports) { // `%TypedArray%.prototype.toLocaleString` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring - exportTypedArrayMethod$6('toLocaleString', function toLocaleString() { - return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray$5(this)) : aTypedArray$5(this), arguments); + exportTypedArrayMethod$7('toLocaleString', function toLocaleString() { + return functionApply( + $toLocaleString, + TO_LOCALE_STRING_BUG ? arraySlice$1(aTypedArray$6(this)) : aTypedArray$6(this), + arraySlice$1(arguments) + ); }, FORCED$3); - var exportTypedArrayMethod$5 = arrayBufferViewCore.exportTypedArrayMethod; + var exportTypedArrayMethod$6 = arrayBufferViewCore.exportTypedArrayMethod; + var Uint8Array$1 = global_1.Uint8Array; var Uint8ArrayPrototype = Uint8Array$1 && Uint8Array$1.prototype || {}; var arrayToString = [].toString; - var arrayJoin = [].join; + var join$3 = functionUncurryThis([].join); if (fails(function () { arrayToString.call({}); })) { arrayToString = function toString() { - return arrayJoin.call(this); + return join$3(this); }; } @@ -9381,7 +10215,48 @@ var doric = (function (exports) { // `%TypedArray%.prototype.toString` method // https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring - exportTypedArrayMethod$5('toString', arrayToString, IS_NOT_ARRAY_METHOD); + exportTypedArrayMethod$6('toString', arrayToString, IS_NOT_ARRAY_METHOD); + + var fromCharCode$1 = String.fromCharCode; + var charAt$5 = functionUncurryThis(''.charAt); + var exec$3 = functionUncurryThis(/./.exec); + var stringSlice$3 = functionUncurryThis(''.slice); + + var hex2 = /^[\da-f]{2}$/i; + var hex4 = /^[\da-f]{4}$/i; + + // `unescape` method + // https://tc39.es/ecma262/#sec-unescape-string + _export({ global: true }, { + unescape: function unescape(string) { + var str = toString_1(string); + var result = ''; + var length = str.length; + var index = 0; + var chr, part; + while (index < length) { + chr = charAt$5(str, index++); + if (chr === '%') { + if (charAt$5(str, index) === 'u') { + part = stringSlice$3(str, index + 1, index + 5); + if (exec$3(hex4, part)) { + result += fromCharCode$1(parseInt(part, 16)); + index += 5; + continue; + } + } else { + part = stringSlice$3(str, index, index + 2); + if (exec$3(hex2, part)) { + result += fromCharCode$1(parseInt(part, 16)); + index += 2; + continue; + } + } + } + result += chr; + } return result; + } + }); var getWeakData = internalMetadata.getWeakData; @@ -9392,10 +10267,11 @@ var doric = (function (exports) { - var setInternalState$9 = internalState.set; + var setInternalState$a = internalState.set; var internalStateGetterFor = internalState.getterFor; var find$1 = arrayIteration.find; var findIndex = arrayIteration.findIndex; + var splice$1 = functionUncurryThis([].splice); var id = 0; // fallback for uncaught frozen keys @@ -9430,16 +10306,16 @@ var doric = (function (exports) { var index = findIndex(this.entries, function (it) { return it[0] === key; }); - if (~index) { this.entries.splice(index, 1); } + if (~index) { splice$1(this.entries, index, 1); } return !!~index; } }; var collectionWeak = { getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState$9(that, { + var Constructor = wrapper(function (that, iterable) { + anInstance(that, Prototype); + setInternalState$a(that, { type: CONSTRUCTOR_NAME, id: id++, frozen: undefined @@ -9447,6 +10323,8 @@ var doric = (function (exports) { if (iterable != undefined) { iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); } }); + var Prototype = Constructor.prototype; + var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); var define = function (that, key, value) { @@ -9457,7 +10335,7 @@ var doric = (function (exports) { return that; }; - redefineAll(C.prototype, { + redefineAll(Prototype, { // `{ WeakMap, WeakSet }.prototype.delete(key)` methods // https://tc39.es/ecma262/#sec-weakmap.prototype.delete // https://tc39.es/ecma262/#sec-weakset.prototype.delete @@ -9466,7 +10344,7 @@ var doric = (function (exports) { if (!isObject(key)) { return false; } var data = getWeakData(key); if (data === true) { return uncaughtFrozenStore(state)['delete'](key); } - return data && has$1(data, state.id) && delete data[state.id]; + return data && hasOwnProperty_1(data, state.id) && delete data[state.id]; }, // `{ WeakMap, WeakSet }.prototype.has(key)` methods // https://tc39.es/ecma262/#sec-weakmap.prototype.has @@ -9476,11 +10354,11 @@ var doric = (function (exports) { if (!isObject(key)) { return false; } var data = getWeakData(key); if (data === true) { return uncaughtFrozenStore(state).has(key); } - return data && has$1(data, state.id); + return data && hasOwnProperty_1(data, state.id); } }); - redefineAll(C.prototype, IS_MAP ? { + redefineAll(Prototype, IS_MAP ? { // `WeakMap.prototype.get(key)` method // https://tc39.es/ecma262/#sec-weakmap.prototype.get get: function get(key) { @@ -9504,17 +10382,10 @@ var doric = (function (exports) { } }); - return C; + return Constructor; } }; - var es_weakMap = createCommonjsModule(function (module) { - - - - - - var enforceIternalState = internalState.enforce; @@ -9531,52 +10402,51 @@ var doric = (function (exports) { // `WeakMap` constructor // https://tc39.es/ecma262/#sec-weakmap-constructor - var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak); + var $WeakMap = collection('WeakMap', wrapper, collectionWeak); // IE11 WeakMap frozen keys fix // We can't use feature detection because it crash some old IE builds // https://github.com/zloirock/core-js/issues/485 if (nativeWeakMap && IS_IE11) { InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); - internalMetadata.REQUIRED = true; + internalMetadata.enable(); var WeakMapPrototype = $WeakMap.prototype; - var nativeDelete = WeakMapPrototype['delete']; - var nativeHas = WeakMapPrototype.has; - var nativeGet = WeakMapPrototype.get; - var nativeSet = WeakMapPrototype.set; + var nativeDelete = functionUncurryThis(WeakMapPrototype['delete']); + var nativeHas = functionUncurryThis(WeakMapPrototype.has); + var nativeGet = functionUncurryThis(WeakMapPrototype.get); + var nativeSet = functionUncurryThis(WeakMapPrototype.set); redefineAll(WeakMapPrototype, { 'delete': function (key) { if (isObject(key) && !isExtensible(key)) { var state = enforceIternalState(this); if (!state.frozen) { state.frozen = new InternalWeakMap(); } - return nativeDelete.call(this, key) || state.frozen['delete'](key); - } return nativeDelete.call(this, key); + return nativeDelete(this, key) || state.frozen['delete'](key); + } return nativeDelete(this, key); }, has: function has(key) { if (isObject(key) && !isExtensible(key)) { var state = enforceIternalState(this); if (!state.frozen) { state.frozen = new InternalWeakMap(); } - return nativeHas.call(this, key) || state.frozen.has(key); - } return nativeHas.call(this, key); + return nativeHas(this, key) || state.frozen.has(key); + } return nativeHas(this, key); }, get: function get(key) { if (isObject(key) && !isExtensible(key)) { var state = enforceIternalState(this); if (!state.frozen) { state.frozen = new InternalWeakMap(); } - return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); - } return nativeGet.call(this, key); + return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key); + } return nativeGet(this, key); }, set: function set(key, value) { if (isObject(key) && !isExtensible(key)) { var state = enforceIternalState(this); if (!state.frozen) { state.frozen = new InternalWeakMap(); } - nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); - } else { nativeSet.call(this, key, value); } + nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value); + } else { nativeSet(this, key, value); } return this; } }); } - }); // `WeakSet` constructor // https://tc39.es/ecma262/#sec-weakset-constructor @@ -9584,61 +10454,279 @@ var doric = (function (exports) { return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionWeak); - // `Array.prototype.at` method - // https://github.com/tc39/proposal-relative-indexing-method - _export({ target: 'Array', proto: true }, { - at: function at(index) { - var O = toObject(this); - var len = toLength(O.length); - var relativeIndex = toInteger(index); - var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; - return (k < 0 || k >= len) ? undefined : O[k]; + var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; + var ASYNC_ITERATOR$3 = wellKnownSymbol('asyncIterator'); + var AsyncIterator = global_1.AsyncIterator; + var PassedAsyncIteratorPrototype = sharedStore.AsyncIteratorPrototype; + var AsyncIteratorPrototype, prototype; + + if (PassedAsyncIteratorPrototype) { + AsyncIteratorPrototype = PassedAsyncIteratorPrototype; + } else if (isCallable(AsyncIterator)) { + AsyncIteratorPrototype = AsyncIterator.prototype; + } else if (sharedStore[USE_FUNCTION_CONSTRUCTOR] || global_1[USE_FUNCTION_CONSTRUCTOR]) { + try { + // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax + prototype = objectGetPrototypeOf(objectGetPrototypeOf(objectGetPrototypeOf(Function('return async function*(){}()')()))); + if (objectGetPrototypeOf(prototype) === Object.prototype) { AsyncIteratorPrototype = prototype; } + } catch (error) { /* empty */ } + } + + if (!AsyncIteratorPrototype) { AsyncIteratorPrototype = {}; } + + if (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR$3])) { + redefine(AsyncIteratorPrototype, ASYNC_ITERATOR$3, function () { + return this; + }); + } + + var asyncIteratorPrototype = AsyncIteratorPrototype; + + var Promise$3 = getBuiltIn('Promise'); + + var setInternalState$9 = internalState.set; + var getInternalState$7 = internalState.get; + + var asyncFromSyncIteratorContinuation = function (result, resolve, reject) { + var done = result.done; + Promise$3.resolve(result.value).then(function (value) { + resolve({ done: done, value: value }); + }, reject); + }; + + var AsyncFromSyncIterator = function AsyncIterator(iterator) { + setInternalState$9(this, { + iterator: anObject(iterator), + next: iterator.next + }); + }; + + AsyncFromSyncIterator.prototype = redefineAll(objectCreate(asyncIteratorPrototype), { + next: function next(arg) { + var state = getInternalState$7(this); + var hasArg = !!arguments.length; + return new Promise$3(function (resolve, reject) { + var result = anObject(functionApply(state.next, state.iterator, hasArg ? [arg] : [])); + asyncFromSyncIteratorContinuation(result, resolve, reject); + }); + }, + 'return': function (arg) { + var iterator = getInternalState$7(this).iterator; + var hasArg = !!arguments.length; + return new Promise$3(function (resolve, reject) { + var $return = getMethod(iterator, 'return'); + if ($return === undefined) { return resolve({ done: true, value: arg }); } + var result = anObject(functionApply($return, iterator, hasArg ? [arg] : [])); + asyncFromSyncIteratorContinuation(result, resolve, reject); + }); + }, + 'throw': function (arg) { + var iterator = getInternalState$7(this).iterator; + var hasArg = !!arguments.length; + return new Promise$3(function (resolve, reject) { + var $throw = getMethod(iterator, 'throw'); + if ($throw === undefined) { return reject(arg); } + var result = anObject(functionApply($throw, iterator, hasArg ? [arg] : [])); + asyncFromSyncIteratorContinuation(result, resolve, reject); + }); } }); - addToUnscopables('at'); + var asyncFromSyncIterator = AsyncFromSyncIterator; - var $filterOut$1 = arrayIteration.filterOut; + var ASYNC_ITERATOR$2 = wellKnownSymbol('asyncIterator'); + + var getAsyncIterator = function (it, usingIterator) { + var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR$2) : usingIterator; + return method ? anObject(functionCall(method, it)) : new asyncFromSyncIterator(getIterator(it)); + }; + + var entryVirtual = function (CONSTRUCTOR) { + return global_1[CONSTRUCTOR].prototype; + }; + + // https://github.com/tc39/proposal-iterator-helpers + // https://github.com/tc39/proposal-array-from-async + + + + + + + + var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; + var TypeError$e = global_1.TypeError; + + var createMethod$1 = function (TYPE) { + var IS_TO_ARRAY = TYPE == 0; + var IS_FOR_EACH = TYPE == 1; + var IS_EVERY = TYPE == 2; + var IS_SOME = TYPE == 3; + return function (iterator, fn, target) { + anObject(iterator); + var Promise = getBuiltIn('Promise'); + var next = aCallable(iterator.next); + var index = 0; + var MAPPING = fn !== undefined; + if (MAPPING || !IS_TO_ARRAY) { aCallable(fn); } + + return new Promise(function (resolve, reject) { + var closeIteration = function (method, argument) { + try { + var returnMethod = getMethod(iterator, 'return'); + if (returnMethod) { + return Promise.resolve(functionCall(returnMethod, iterator)).then(function () { + method(argument); + }, function (error) { + reject(error); + }); + } + } catch (error2) { + return reject(error2); + } method(argument); + }; + + var onError = function (error) { + closeIteration(reject, error); + }; + + var loop = function () { + try { + if (IS_TO_ARRAY && (index > MAX_SAFE_INTEGER) && MAPPING) { + throw TypeError$e('The allowed number of iterations has been exceeded'); + } + Promise.resolve(anObject(functionCall(next, iterator))).then(function (step) { + try { + if (anObject(step).done) { + if (IS_TO_ARRAY) { + target.length = index; + resolve(target); + } else { resolve(IS_SOME ? false : IS_EVERY || undefined); } + } else { + var value = step.value; + if (MAPPING) { + Promise.resolve(IS_TO_ARRAY ? fn(value, index) : fn(value)).then(function (result) { + if (IS_FOR_EACH) { + loop(); + } else if (IS_EVERY) { + result ? loop() : closeIteration(resolve, false); + } else if (IS_TO_ARRAY) { + target[index++] = result; + loop(); + } else { + result ? closeIteration(resolve, IS_SOME || value) : loop(); + } + }, onError); + } else { + target[index++] = value; + loop(); + } + } + } catch (error) { onError(error); } + }, onError); + } catch (error2) { onError(error2); } + }; + + loop(); + }); + }; + }; + + var asyncIteratorIteration = { + toArray: createMethod$1(0), + forEach: createMethod$1(1), + every: createMethod$1(2), + some: createMethod$1(3), + find: createMethod$1(4) + }; + + var toArray = asyncIteratorIteration.toArray; + + var ASYNC_ITERATOR$1 = wellKnownSymbol('asyncIterator'); + var arrayIterator = entryVirtual('Array').values; + + // `Array.fromAsync` method implementation + // https://github.com/tc39/proposal-array-from-async + var arrayFromAsync = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { + var C = this; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var thisArg = argumentsLength > 2 ? arguments[2] : undefined; + return new (getBuiltIn('Promise'))(function (resolve) { + var O = toObject(asyncItems); + if (mapfn !== undefined) { mapfn = functionBindContext(mapfn, thisArg); } + var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR$1); + var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || arrayIterator; + var A = isConstructor(C) ? new C() : []; + var iterator = usingAsyncIterator + ? getAsyncIterator(O, usingAsyncIterator) + : new asyncFromSyncIterator(getIterator(O, usingSyncIterator)); + resolve(toArray(iterator, mapfn, A)); + }); + }; + + // `Array.fromAsync` method + // https://github.com/tc39/proposal-array-from-async + _export({ target: 'Array', stat: true }, { + fromAsync: arrayFromAsync + }); + + // TODO: remove from `core-js@4` + + var $filterReject$3 = arrayIteration.filterReject; // `Array.prototype.filterOut` method // https://github.com/tc39/proposal-array-filtering _export({ target: 'Array', proto: true }, { filterOut: function filterOut(callbackfn /* , thisArg */) { - return $filterOut$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return $filterReject$3(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); addToUnscopables('filterOut'); + var $filterReject$2 = arrayIteration.filterReject; + + + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + _export({ target: 'Array', proto: true }, { + filterReject: function filterReject(callbackfn /* , thisArg */) { + return $filterReject$2(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + addToUnscopables('filterReject'); + // `Array.prototype.{ findLast, findLastIndex }` methods implementation - var createMethod$1 = function (TYPE) { - var IS_FIND_INDEX = TYPE == 6; + var createMethod = function (TYPE) { + var IS_FIND_LAST_INDEX = TYPE == 1; return function ($this, callbackfn, that) { var O = toObject($this); var self = indexedObject(O); - var boundFunction = functionBindContext(callbackfn, that, 3); - var index = toLength(self.length); + var boundFunction = functionBindContext(callbackfn, that); + var index = lengthOfArrayLike(self); var value, result; while (index-- > 0) { value = self[index]; result = boundFunction(value, index, O); if (result) { switch (TYPE) { - case 5: return value; // find - case 6: return index; // findIndex + case 0: return value; // findLast + case 1: return index; // findLastIndex } } } - return IS_FIND_INDEX ? -1 : undefined; + return IS_FIND_LAST_INDEX ? -1 : undefined; }; }; var arrayIterationFromLast = { // `Array.prototype.findLast` method // https://github.com/tc39/proposal-array-find-from-last - findLast: createMethod$1(5), + findLast: createMethod(0), // `Array.prototype.findLastIndex` method // https://github.com/tc39/proposal-array-find-from-last - findLastIndex: createMethod$1(6) + findLastIndex: createMethod(1) }; var $findLast$1 = arrayIterationFromLast.findLast; @@ -9667,6 +10755,44 @@ var doric = (function (exports) { addToUnscopables('findLastIndex'); + var Array$2 = global_1.Array; + var push$9 = functionUncurryThis([].push); + + var arrayGroupBy = function ($this, callbackfn, that, specificConstructor) { + var O = toObject($this); + var self = indexedObject(O); + var boundFunction = functionBindContext(callbackfn, that); + var target = objectCreate(null); + var length = lengthOfArrayLike(self); + var index = 0; + var Constructor, key, value; + for (;length > index; index++) { + value = self[index]; + key = toPropertyKey(boundFunction(value, index, O)); + // in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys + // but since it's a `null` prototype object, we can safely use `in` + if (key in target) { push$9(target[key], value); } + else { target[key] = [value]; } + } + if (specificConstructor) { + Constructor = specificConstructor(O); + if (Constructor !== Array$2) { + for (key in target) { target[key] = arrayFromConstructorAndList(Constructor, target[key]); } + } + } return target; + }; + + // `Array.prototype.groupBy` method + // https://github.com/tc39/proposal-array-grouping + _export({ target: 'Array', proto: true }, { + groupBy: function groupBy(callbackfn /* , thisArg */) { + var thisArg = arguments.length > 1 ? arguments[1] : undefined; + return arrayGroupBy(this, callbackfn, thisArg, arraySpeciesConstructor); + } + }); + + addToUnscopables('groupBy'); + // eslint-disable-next-line es/no-object-isfrozen -- safe var isFrozen = Object.isFrozen; @@ -9677,7 +10803,7 @@ var doric = (function (exports) { var element; while (index < length) { element = array[index++]; - if (!(typeof element === 'string' || (allowUndefined && typeof element === 'undefined'))) { + if (!(typeof element == 'string' || (allowUndefined && typeof element == 'undefined'))) { return false; } } return length !== 0; @@ -9703,7 +10829,7 @@ var doric = (function (exports) { configurable: true, get: function lastIndex() { var O = toObject(this); - var len = toLength(O.length); + var len = lengthOfArrayLike(O); return len == 0 ? 0 : len - 1; } }); @@ -9720,12 +10846,12 @@ var doric = (function (exports) { configurable: true, get: function lastItem() { var O = toObject(this); - var len = toLength(O.length); + var len = lengthOfArrayLike(O); return len == 0 ? undefined : O[len - 1]; }, set: function lastItem(value) { var O = toObject(this); - var len = toLength(O.length); + var len = lengthOfArrayLike(O); return O[len == 0 ? 0 : len - 1] = value; } }); @@ -9733,29 +10859,31 @@ var doric = (function (exports) { addToUnscopables('lastItem'); } - var push$2 = [].push; + var Map$3 = getBuiltIn('Map'); + var MapPrototype = Map$3.prototype; + var mapForEach = functionUncurryThis(MapPrototype.forEach); + var mapHas = functionUncurryThis(MapPrototype.has); + var mapSet = functionUncurryThis(MapPrototype.set); + var push$8 = functionUncurryThis([].push); // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique - var arrayUniqueBy = function uniqueBy(resolver) { + var arrayUniqueBy$2 = function uniqueBy(resolver) { var that = toObject(this); - var length = toLength(that.length); + var length = lengthOfArrayLike(that); var result = arraySpeciesCreate(that, 0); - var Map = getBuiltIn('Map'); - var map = new Map(); - var resolverFunction, index, item, key; - if (typeof resolver == 'function') { resolverFunction = resolver; } - else if (resolver == null) { resolverFunction = function (value) { + var map = new Map$3(); + var resolverFunction = resolver != null ? aCallable(resolver) : function (value) { return value; - }; } - else { throw new TypeError('Incorrect resolver!'); } + }; + var index, item, key; for (index = 0; index < length; index++) { item = that[index]; key = resolverFunction(item); - if (!map.has(key)) { map.set(key, item); } + if (!mapHas(map, key)) { mapSet(map, key, item); } } - map.forEach(function (value) { - push$2.call(result, value); + mapForEach(map, function (value) { + push$8(result, value); }); return result; }; @@ -9763,41 +10891,11 @@ var doric = (function (exports) { // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique _export({ target: 'Array', proto: true }, { - uniqueBy: arrayUniqueBy + uniqueBy: arrayUniqueBy$2 }); addToUnscopables('uniqueBy'); - var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; - var ASYNC_ITERATOR$1 = wellKnownSymbol('asyncIterator'); - var AsyncIterator$1 = global_1.AsyncIterator; - var PassedAsyncIteratorPrototype = sharedStore.AsyncIteratorPrototype; - var AsyncIteratorPrototype, prototype; - - { - if (PassedAsyncIteratorPrototype) { - AsyncIteratorPrototype = PassedAsyncIteratorPrototype; - } else if (typeof AsyncIterator$1 == 'function') { - AsyncIteratorPrototype = AsyncIterator$1.prototype; - } else if (sharedStore[USE_FUNCTION_CONSTRUCTOR] || global_1[USE_FUNCTION_CONSTRUCTOR]) { - try { - // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax - prototype = objectGetPrototypeOf(objectGetPrototypeOf(objectGetPrototypeOf(Function('return async function*(){}()')()))); - if (objectGetPrototypeOf(prototype) === Object.prototype) { AsyncIteratorPrototype = prototype; } - } catch (error) { /* empty */ } - } - } - - if (!AsyncIteratorPrototype) { AsyncIteratorPrototype = {}; } - - if (!has$1(AsyncIteratorPrototype, ASYNC_ITERATOR$1)) { - createNonEnumerableProperty(AsyncIteratorPrototype, ASYNC_ITERATOR$1, function () { - return this; - }); - } - - var asyncIteratorPrototype = AsyncIteratorPrototype; - // https://github.com/tc39/proposal-iterator-helpers @@ -9810,16 +10908,16 @@ var doric = (function (exports) { var TO_STRING_TAG$4 = wellKnownSymbol('toStringTag'); var AsyncIteratorConstructor = function AsyncIterator() { - anInstance(this, AsyncIteratorConstructor); + anInstance(this, asyncIteratorPrototype); }; AsyncIteratorConstructor.prototype = asyncIteratorPrototype; - if (!has$1(asyncIteratorPrototype, TO_STRING_TAG$4)) { + if (!hasOwnProperty_1(asyncIteratorPrototype, TO_STRING_TAG$4)) { createNonEnumerableProperty(asyncIteratorPrototype, TO_STRING_TAG$4, 'AsyncIterator'); } - if (!has$1(asyncIteratorPrototype, 'constructor') || asyncIteratorPrototype.constructor === Object) { + if (!hasOwnProperty_1(asyncIteratorPrototype, 'constructor') || asyncIteratorPrototype.constructor === Object) { createNonEnumerableProperty(asyncIteratorPrototype, 'constructor', AsyncIteratorConstructor); } @@ -9827,48 +10925,57 @@ var doric = (function (exports) { AsyncIterator: AsyncIteratorConstructor }); - var Promise$3 = getBuiltIn('Promise'); + var Promise$2 = getBuiltIn('Promise'); var setInternalState$8 = internalState.set; var getInternalState$6 = internalState.get; var TO_STRING_TAG$3 = wellKnownSymbol('toStringTag'); - var $return$1 = function (value) { - var iterator = getInternalState$6(this).iterator; - var $$return = iterator['return']; - return $$return === undefined - ? Promise$3.resolve({ done: true, value: value }) - : anObject($$return.call(iterator, value)); - }; - - var $throw$1 = function (value) { - var iterator = getInternalState$6(this).iterator; - var $$throw = iterator['throw']; - return $$throw === undefined - ? Promise$3.reject(value) - : $$throw.call(iterator, value); - }; - var asyncIteratorCreateProxy = function (nextHandler, IS_ITERATOR) { var AsyncIteratorProxy = function AsyncIterator(state) { - state.next = aFunction(state.iterator.next); + state.next = aCallable(state.iterator.next); state.done = false; + state.ignoreArgument = !IS_ITERATOR; setInternalState$8(this, state); }; - AsyncIteratorProxy.prototype = redefineAll(objectCreate(path.AsyncIterator.prototype), { + AsyncIteratorProxy.prototype = redefineAll(objectCreate(asyncIteratorPrototype), { next: function next(arg) { - var state = getInternalState$6(this); - if (state.done) { return Promise$3.resolve({ done: true, value: undefined }); } - try { - return Promise$3.resolve(anObject(nextHandler.call(state, arg, Promise$3))); - } catch (error) { - return Promise$3.reject(error); - } + var that = this; + var hasArgument = !!arguments.length; + return new Promise$2(function (resolve) { + var state = getInternalState$6(that); + var args = hasArgument ? [state.ignoreArgument ? undefined : arg] : IS_ITERATOR ? [] : [undefined]; + state.ignoreArgument = false; + resolve(state.done ? { done: true, value: undefined } : anObject(functionCall(nextHandler, state, Promise$2, args))); + }); }, - 'return': $return$1, - 'throw': $throw$1 + 'return': function (value) { + var that = this; + return new Promise$2(function (resolve, reject) { + var state = getInternalState$6(that); + var iterator = state.iterator; + state.done = true; + var $$return = getMethod(iterator, 'return'); + if ($$return === undefined) { return resolve({ done: true, value: value }); } + Promise$2.resolve(functionCall($$return, iterator, value)).then(function (result) { + anObject(result); + resolve({ done: true, value: value }); + }, reject); + }); + }, + 'throw': function (value) { + var that = this; + return new Promise$2(function (resolve, reject) { + var state = getInternalState$6(that); + var iterator = state.iterator; + state.done = true; + var $$throw = getMethod(iterator, 'throw'); + if ($$throw === undefined) { return reject(value); } + resolve(functionCall($$throw, iterator, value)); + }); + } }); if (!IS_ITERATOR) { @@ -9883,11 +10990,12 @@ var doric = (function (exports) { - var AsyncIteratorProxy$6 = asyncIteratorCreateProxy(function (arg, Promise) { + + var AsyncIteratorProxy$6 = asyncIteratorCreateProxy(function (Promise, args) { var state = this; var iterator = state.iterator; - return Promise.resolve(anObject(state.next.call(iterator, arg))).then(function (step) { + return Promise.resolve(anObject(functionApply(state.next, iterator, args))).then(function (step) { if (anObject(step).done) { state.done = true; return { done: true, value: undefined }; @@ -9911,14 +11019,15 @@ var doric = (function (exports) { - var AsyncIteratorProxy$5 = asyncIteratorCreateProxy(function (arg, Promise) { + + var AsyncIteratorProxy$5 = asyncIteratorCreateProxy(function (Promise, args) { var state = this; return new Promise(function (resolve, reject) { var loop = function () { try { Promise.resolve( - anObject(state.next.call(state.iterator, state.remaining ? undefined : arg)) + anObject(functionApply(state.next, state.iterator, state.remaining ? [] : args)) ).then(function (step) { try { if (anObject(step).done) { @@ -9948,86 +11057,6 @@ var doric = (function (exports) { // https://github.com/tc39/proposal-iterator-helpers - - - - var Promise$2 = getBuiltIn('Promise'); - var push$1 = [].push; - - var createMethod = function (TYPE) { - var IS_TO_ARRAY = TYPE == 0; - var IS_FOR_EACH = TYPE == 1; - var IS_EVERY = TYPE == 2; - var IS_SOME = TYPE == 3; - return function (iterator, fn) { - anObject(iterator); - var next = aFunction(iterator.next); - var array = IS_TO_ARRAY ? [] : undefined; - if (!IS_TO_ARRAY) { aFunction(fn); } - - return new Promise$2(function (resolve, reject) { - var closeIteration = function (method, argument) { - try { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) { - return Promise$2.resolve(returnMethod.call(iterator)).then(function () { - method(argument); - }, function (error) { - reject(error); - }); - } - } catch (error2) { - return reject(error2); - } method(argument); - }; - - var onError = function (error) { - closeIteration(reject, error); - }; - - var loop = function () { - try { - Promise$2.resolve(anObject(next.call(iterator))).then(function (step) { - try { - if (anObject(step).done) { - resolve(IS_TO_ARRAY ? array : IS_SOME ? false : IS_EVERY || undefined); - } else { - var value = step.value; - if (IS_TO_ARRAY) { - push$1.call(array, value); - loop(); - } else { - Promise$2.resolve(fn(value)).then(function (result) { - if (IS_FOR_EACH) { - loop(); - } else if (IS_EVERY) { - result ? loop() : closeIteration(resolve, false); - } else { - result ? closeIteration(resolve, IS_SOME || value) : loop(); - } - }, onError); - } - } - } catch (error) { onError(error); } - }, onError); - } catch (error2) { onError(error2); } - }; - - loop(); - }); - }; - }; - - var asyncIteratorIteration = { - toArray: createMethod(0), - forEach: createMethod(1), - every: createMethod(2), - some: createMethod(3), - find: createMethod(4) - }; - - // https://github.com/tc39/proposal-iterator-helpers - var $every = asyncIteratorIteration.every; _export({ target: 'AsyncIterator', proto: true, real: true }, { @@ -10042,14 +11071,15 @@ var doric = (function (exports) { - var AsyncIteratorProxy$4 = asyncIteratorCreateProxy(function (arg, Promise) { + + var AsyncIteratorProxy$4 = asyncIteratorCreateProxy(function (Promise, args) { var state = this; var filterer = state.filterer; return new Promise(function (resolve, reject) { var loop = function () { try { - Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) { + Promise.resolve(anObject(functionApply(state.next, state.iterator, args))).then(function (step) { try { if (anObject(step).done) { state.done = true; @@ -10073,7 +11103,7 @@ var doric = (function (exports) { filter: function filter(filterer) { return new AsyncIteratorProxy$4({ iterator: anObject(this), - filterer: aFunction(filterer) + filterer: aCallable(filterer) }); } }); @@ -10088,13 +11118,6 @@ var doric = (function (exports) { } }); - var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); - - var getAsyncIteratorMethod = function (it) { - var method = it[ASYNC_ITERATOR]; - return method === undefined ? getIteratorMethod(it) : method; - }; - // https://github.com/tc39/proposal-iterator-helpers @@ -10102,15 +11125,16 @@ var doric = (function (exports) { - var AsyncIteratorProxy$3 = asyncIteratorCreateProxy(function (arg, Promise) { + + var AsyncIteratorProxy$3 = asyncIteratorCreateProxy(function (Promise) { var state = this; var mapper = state.mapper; - var innerIterator, iteratorMethod; + var innerIterator; return new Promise(function (resolve, reject) { var outerLoop = function () { try { - Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) { + Promise.resolve(anObject(functionCall(state.next, state.iterator))).then(function (step) { try { if (anObject(step).done) { state.done = true; @@ -10118,12 +11142,9 @@ var doric = (function (exports) { } else { Promise.resolve(mapper(step.value)).then(function (mapped) { try { - iteratorMethod = getAsyncIteratorMethod(mapped); - if (iteratorMethod !== undefined) { - state.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped)); - state.innerNext = aFunction(innerIterator.next); - return innerLoop(); - } reject(TypeError('.flatMap callback should return an iterable object')); + state.innerIterator = innerIterator = getAsyncIterator(mapped); + state.innerNext = aCallable(innerIterator.next); + return innerLoop(); } catch (error2) { reject(error2); } }, reject); } @@ -10135,7 +11156,7 @@ var doric = (function (exports) { var innerLoop = function () { if (innerIterator = state.innerIterator) { try { - Promise.resolve(anObject(state.innerNext.call(innerIterator))).then(function (result) { + Promise.resolve(anObject(functionCall(state.innerNext, innerIterator))).then(function (result) { try { if (anObject(result).done) { state.innerIterator = state.innerNext = null; @@ -10155,7 +11176,7 @@ var doric = (function (exports) { flatMap: function flatMap(mapper) { return new AsyncIteratorProxy$3({ iterator: anObject(this), - mapper: aFunction(mapper), + mapper: aCallable(mapper), innerIterator: null, innerNext: null }); @@ -10181,25 +11202,32 @@ var doric = (function (exports) { - var AsyncIterator = path.AsyncIterator; - var AsyncIteratorProxy$2 = asyncIteratorCreateProxy(function (arg) { - return anObject(this.next.call(this.iterator, arg)); + + + + + + var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); + + var AsyncIteratorProxy$2 = asyncIteratorCreateProxy(function (Promise, args) { + return anObject(functionApply(this.next, this.iterator, args)); }, true); _export({ target: 'AsyncIterator', stat: true }, { from: function from(O) { var object = toObject(O); - var usingIterator = getAsyncIteratorMethod(object); + var usingIterator = getMethod(object, ASYNC_ITERATOR); var iterator; - if (usingIterator != null) { - iterator = aFunction(usingIterator).call(object); - if (iterator instanceof AsyncIterator) { return iterator; } - } else { - iterator = object; - } return new AsyncIteratorProxy$2({ - iterator: iterator - }); + if (usingIterator) { + iterator = getAsyncIterator(object, usingIterator); + if (objectIsPrototypeOf(asyncIteratorPrototype, iterator)) { return iterator; } + } + if (iterator === undefined) { + usingIterator = getIteratorMethod(object); + if (usingIterator) { return new asyncFromSyncIterator(getIterator(object, usingIterator)); } + } + return new AsyncIteratorProxy$2({ iterator: iterator !== undefined ? iterator : object }); } }); @@ -10209,11 +11237,12 @@ var doric = (function (exports) { - var AsyncIteratorProxy$1 = asyncIteratorCreateProxy(function (arg, Promise) { + + var AsyncIteratorProxy$1 = asyncIteratorCreateProxy(function (Promise, args) { var state = this; var mapper = state.mapper; - return Promise.resolve(anObject(state.next.call(state.iterator, arg))).then(function (step) { + return Promise.resolve(anObject(functionApply(state.next, state.iterator, args))).then(function (step) { if (anObject(step).done) { state.done = true; return { done: true, value: undefined }; @@ -10228,7 +11257,7 @@ var doric = (function (exports) { map: function map(mapper) { return new AsyncIteratorProxy$1({ iterator: anObject(this), - mapper: aFunction(mapper) + mapper: aCallable(mapper) }); } }); @@ -10239,23 +11268,26 @@ var doric = (function (exports) { + + var Promise$1 = getBuiltIn('Promise'); + var TypeError$d = global_1.TypeError; _export({ target: 'AsyncIterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { var iterator = anObject(this); - var next = aFunction(iterator.next); + var next = aCallable(iterator.next); var noInitial = arguments.length < 2; var accumulator = noInitial ? undefined : arguments[1]; - aFunction(reducer); + aCallable(reducer); return new Promise$1(function (resolve, reject) { var loop = function () { try { - Promise$1.resolve(anObject(next.call(iterator))).then(function (step) { + Promise$1.resolve(anObject(functionCall(next, iterator))).then(function (step) { try { if (anObject(step).done) { - noInitial ? reject(TypeError('Reduce of empty iterator with no initial value')) : resolve(accumulator); + noInitial ? reject(TypeError$d('Reduce of empty iterator with no initial value')) : resolve(accumulator); } else { var value = step.value; if (noInitial) { @@ -10295,7 +11327,9 @@ var doric = (function (exports) { - var AsyncIteratorProxy = asyncIteratorCreateProxy(function (arg, Promise) { + + + var AsyncIteratorProxy = asyncIteratorCreateProxy(function (Promise, args) { var iterator = this.iterator; var returnMethod, result; if (!this.remaining--) { @@ -10303,12 +11337,12 @@ var doric = (function (exports) { this.done = true; returnMethod = iterator['return']; if (returnMethod !== undefined) { - return Promise.resolve(returnMethod.call(iterator)).then(function () { + return Promise.resolve(functionCall(returnMethod, iterator)).then(function () { return result; }); } return result; - } return this.next.call(iterator, arg); + } return functionApply(this.next, iterator, args); }); _export({ target: 'AsyncIterator', proto: true, real: true }, { @@ -10326,7 +11360,7 @@ var doric = (function (exports) { _export({ target: 'AsyncIterator', proto: true, real: true }, { toArray: function toArray() { - return $toArray(this); + return $toArray(this, undefined, []); } }); @@ -10336,12 +11370,15 @@ var doric = (function (exports) { var setInternalState$7 = internalState.set; var getInternalState$5 = internalState.getterFor(NUMERIC_RANGE_ITERATOR); + var RangeError$2 = global_1.RangeError; + var TypeError$c = global_1.TypeError; + var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) { if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) { - throw new TypeError(INCORRECT_RANGE); + throw new TypeError$c(INCORRECT_RANGE); } if (start === Infinity || start === -Infinity) { - throw new RangeError(INCORRECT_RANGE); + throw new RangeError$2(INCORRECT_RANGE); } var ifIncrease = end > start; var inclusiveEnd = false; @@ -10354,16 +11391,16 @@ var doric = (function (exports) { } else if (typeof option == type) { step = option; } else { - throw new TypeError(INCORRECT_RANGE); + throw new TypeError$c(INCORRECT_RANGE); } if (step == null) { step = ifIncrease ? one : -one; } if (typeof step != type) { - throw new TypeError(INCORRECT_RANGE); + throw new TypeError$c(INCORRECT_RANGE); } if (step === Infinity || step === -Infinity || (step === zero && start !== end)) { - throw new RangeError(INCORRECT_RANGE); + throw new RangeError$2(INCORRECT_RANGE); } // eslint-disable-next-line no-self-compare -- NaN check var hitsEnd = start != start || end != end || step != step || (end > start) !== (step > zero); @@ -10446,6 +11483,13 @@ var doric = (function (exports) { + + + var Object$2 = global_1.Object; + var TypeError$b = global_1.TypeError; + var Map$2 = getBuiltIn('Map'); + var WeakMap$2 = getBuiltIn('WeakMap'); + var Node = function () { // keys this.object = null; @@ -10461,8 +11505,8 @@ var doric = (function (exports) { Node.prototype.next = function (i, it, IS_OBJECT) { var store = IS_OBJECT - ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new es_weakMap()) - : this.primitives || (this.primitives = new es_map()); + ? this.objectsByIndex[i] || (this.objectsByIndex[i] = new WeakMap$2()) + : this.primitives || (this.primitives = new Map$2()); var entry = store.get(it); if (!entry) { store.set(it, entry = new Node()); } return entry; @@ -10480,12 +11524,14 @@ var doric = (function (exports) { for (i = 0; i < length; i++) { if (isObject(it = arguments$1[i])) { active = active.next(i, it, true); } } - if (this === Object && active === root) { throw TypeError('Composite keys must contain a non-primitive component'); } + if (this === Object$2 && active === root) { throw TypeError$b('Composite keys must contain a non-primitive component'); } for (i = 0; i < length; i++) { if (!isObject(it = arguments$1[i])) { active = active.next(i, it, false); } } return active; }; + var Object$1 = global_1.Object; + var initializer = function () { var freeze = getBuiltIn('Object', 'freeze'); return freeze ? freeze(objectCreate(null)) : objectCreate(null); @@ -10494,15 +11540,15 @@ var doric = (function (exports) { // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey _export({ global: true }, { compositeKey: function compositeKey$1() { - return compositeKey.apply(Object, arguments).get('object', initializer); + return functionApply(compositeKey, Object$1, arguments).get('object', initializer); } }); // https://github.com/tc39/proposal-richer-keys/tree/master/compositeKey _export({ global: true }, { compositeSymbol: function compositeSymbol() { - if (arguments.length === 1 && typeof arguments[0] === 'string') { return getBuiltIn('Symbol')['for'](arguments[0]); } - return compositeKey.apply(null, arguments).get('symbol', getBuiltIn('Symbol')); + if (arguments.length == 1 && typeof arguments[0] == 'string') { return getBuiltIn('Symbol')['for'](arguments[0]); } + return functionApply(compositeKey, null, arguments).get('symbol', getBuiltIn('Symbol')); } }); @@ -10514,71 +11560,76 @@ var doric = (function (exports) { - var IteratorPrototype = iteratorsCore.IteratorPrototype; + + var IteratorPrototype$2 = iteratorsCore.IteratorPrototype; - wellKnownSymbol('iterator'); var TO_STRING_TAG$2 = wellKnownSymbol('toStringTag'); var NativeIterator = global_1.Iterator; // FF56- have non-standard global helper `Iterator` - var FORCED$2 = typeof NativeIterator != 'function' - || NativeIterator.prototype !== IteratorPrototype + var FORCED$2 = !isCallable(NativeIterator) + || NativeIterator.prototype !== IteratorPrototype$2 // FF44- non-standard `Iterator` passes previous tests || !fails(function () { NativeIterator({}); }); var IteratorConstructor = function Iterator() { - anInstance(this, IteratorConstructor); + anInstance(this, IteratorPrototype$2); }; - if (!has$1(IteratorPrototype, TO_STRING_TAG$2)) { - createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG$2, 'Iterator'); + if (!hasOwnProperty_1(IteratorPrototype$2, TO_STRING_TAG$2)) { + createNonEnumerableProperty(IteratorPrototype$2, TO_STRING_TAG$2, 'Iterator'); } - if (FORCED$2 || !has$1(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) { - createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor); + if (FORCED$2 || !hasOwnProperty_1(IteratorPrototype$2, 'constructor') || IteratorPrototype$2.constructor === Object) { + createNonEnumerableProperty(IteratorPrototype$2, 'constructor', IteratorConstructor); } - IteratorConstructor.prototype = IteratorPrototype; + IteratorConstructor.prototype = IteratorPrototype$2; _export({ global: true, forced: FORCED$2 }, { Iterator: IteratorConstructor }); + var IteratorPrototype$1 = iteratorsCore.IteratorPrototype; + var setInternalState$6 = internalState.set; var getInternalState$4 = internalState.get; var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag'); - var $return = function (value) { - var iterator = getInternalState$4(this).iterator; - var $$return = iterator['return']; - return $$return === undefined ? { done: true, value: value } : anObject($$return.call(iterator, value)); - }; - - var $throw = function (value) { - var iterator = getInternalState$4(this).iterator; - var $$throw = iterator['throw']; - if ($$throw === undefined) { throw value; } - return $$throw.call(iterator, value); - }; - var iteratorCreateProxy = function (nextHandler, IS_ITERATOR) { var IteratorProxy = function Iterator(state) { - state.next = aFunction(state.iterator.next); + state.next = aCallable(state.iterator.next); state.done = false; + state.ignoreArg = !IS_ITERATOR; setInternalState$6(this, state); }; - IteratorProxy.prototype = redefineAll(objectCreate(path.Iterator.prototype), { - next: function next() { + IteratorProxy.prototype = redefineAll(objectCreate(IteratorPrototype$1), { + next: function next(arg) { var state = getInternalState$4(this); - var result = state.done ? undefined : nextHandler.apply(state, arguments); + var args = arguments.length ? [state.ignoreArg ? undefined : arg] : IS_ITERATOR ? [] : [undefined]; + state.ignoreArg = false; + var result = state.done ? undefined : functionCall(nextHandler, state, args); return { done: state.done, value: result }; }, - 'return': $return, - 'throw': $throw + 'return': function (value) { + var state = getInternalState$4(this); + var iterator = state.iterator; + state.done = true; + var $$return = getMethod(iterator, 'return'); + return { done: true, value: $$return ? anObject(functionCall($$return, iterator, value)).value : value }; + }, + 'throw': function (value) { + var state = getInternalState$4(this); + var iterator = state.iterator; + state.done = true; + var $$throw = getMethod(iterator, 'throw'); + if ($$throw) { return functionCall($$throw, iterator, value); } + throw value; + } }); if (!IS_ITERATOR) { @@ -10593,8 +11644,9 @@ var doric = (function (exports) { - var IteratorProxy$6 = iteratorCreateProxy(function (arg) { - var result = anObject(this.next.call(this.iterator, arg)); + + var IteratorProxy$6 = iteratorCreateProxy(function (args) { + var result = anObject(functionApply(this.next, this.iterator, args)); var done = this.done = !!result.done; if (!done) { return [this.index++, result.value]; } }); @@ -10614,17 +11666,19 @@ var doric = (function (exports) { - var IteratorProxy$5 = iteratorCreateProxy(function (arg) { + + + var IteratorProxy$5 = iteratorCreateProxy(function (args) { var iterator = this.iterator; var next = this.next; var result, done; while (this.remaining) { this.remaining--; - result = anObject(next.call(iterator)); + result = anObject(functionCall(next, iterator)); done = this.done = !!result.done; if (done) { return; } } - result = anObject(next.call(iterator, arg)); + result = anObject(functionApply(next, iterator, args)); done = this.done = !!result.done; if (!done) { return result.value; } }); @@ -10647,7 +11701,7 @@ var doric = (function (exports) { _export({ target: 'Iterator', proto: true, real: true }, { every: function every(fn) { anObject(this); - aFunction(fn); + aCallable(fn); return !iterate(this, function (value, stop) { if (!fn(value)) { return stop(); } }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; @@ -10661,13 +11715,14 @@ var doric = (function (exports) { - var IteratorProxy$4 = iteratorCreateProxy(function (arg) { + + var IteratorProxy$4 = iteratorCreateProxy(function (args) { var iterator = this.iterator; var filterer = this.filterer; var next = this.next; var result, done, value; while (true) { - result = anObject(next.call(iterator, arg)); + result = anObject(functionApply(next, iterator, args)); done = this.done = !!result.done; if (done) { return; } value = result.value; @@ -10679,7 +11734,7 @@ var doric = (function (exports) { filter: function filter(filterer) { return new IteratorProxy$4({ iterator: anObject(this), - filterer: aFunction(filterer) + filterer: aCallable(filterer) }); } }); @@ -10693,7 +11748,7 @@ var doric = (function (exports) { _export({ target: 'Iterator', proto: true, real: true }, { find: function find(fn) { anObject(this); - aFunction(fn); + aCallable(fn); return iterate(this, function (value, stop) { if (fn(value)) { return stop(value); } }, { IS_ITERATOR: true, INTERRUPTED: true }).result; @@ -10708,7 +11763,11 @@ var doric = (function (exports) { - var IteratorProxy$3 = iteratorCreateProxy(function (arg) { + + + var TypeError$a = global_1.TypeError; + + var IteratorProxy$3 = iteratorCreateProxy(function () { var iterator = this.iterator; var mapper = this.mapper; var result, mapped, iteratorMethod, innerIterator; @@ -10716,27 +11775,26 @@ var doric = (function (exports) { while (true) { try { if (innerIterator = this.innerIterator) { - result = anObject(this.innerNext.call(innerIterator)); + result = anObject(functionCall(this.innerNext, innerIterator)); if (!result.done) { return result.value; } this.innerIterator = this.innerNext = null; } - result = anObject(this.next.call(iterator, arg)); + result = anObject(functionCall(this.next, iterator)); if (this.done = !!result.done) { return; } mapped = mapper(result.value); iteratorMethod = getIteratorMethod(mapped); - if (iteratorMethod === undefined) { - throw TypeError('.flatMap callback should return an iterable object'); + if (!iteratorMethod) { + throw TypeError$a('.flatMap callback should return an iterable object'); } - this.innerIterator = innerIterator = anObject(iteratorMethod.call(mapped)); - this.innerNext = aFunction(innerIterator.next); + this.innerIterator = innerIterator = anObject(functionCall(iteratorMethod, mapped)); + this.innerNext = aCallable(innerIterator.next); } catch (error) { - iteratorClose(iterator); - throw error; + iteratorClose(iterator, 'throw', error); } } }); @@ -10745,7 +11803,7 @@ var doric = (function (exports) { flatMap: function flatMap(mapper) { return new IteratorProxy$3({ iterator: anObject(this), - mapper: aFunction(mapper), + mapper: aCallable(mapper), innerIterator: null, innerNext: null }); @@ -10769,13 +11827,13 @@ var doric = (function (exports) { + var IteratorPrototype = iteratorsCore.IteratorPrototype; - var Iterator = path.Iterator; - var IteratorProxy$2 = iteratorCreateProxy(function (arg) { - var result = anObject(this.next.call(this.iterator, arg)); + var IteratorProxy$2 = iteratorCreateProxy(function (args) { + var result = anObject(functionApply(this.next, this.iterator, args)); var done = this.done = !!result.done; if (!done) { return result.value; } }, true); @@ -10785,14 +11843,12 @@ var doric = (function (exports) { var object = toObject(O); var usingIterator = getIteratorMethod(object); var iterator; - if (usingIterator != null) { - iterator = aFunction(usingIterator).call(object); - if (iterator instanceof Iterator) { return iterator; } + if (usingIterator) { + iterator = getIterator(object, usingIterator); + if (objectIsPrototypeOf(IteratorPrototype, iterator)) { return iterator; } } else { iterator = object; - } return new IteratorProxy$2({ - iterator: iterator - }); + } return new IteratorProxy$2({ iterator: iterator }); } }); @@ -10803,9 +11859,10 @@ var doric = (function (exports) { - var IteratorProxy$1 = iteratorCreateProxy(function (arg) { + + var IteratorProxy$1 = iteratorCreateProxy(function (args) { var iterator = this.iterator; - var result = anObject(this.next.call(iterator, arg)); + var result = anObject(functionApply(this.next, iterator, args)); var done = this.done = !!result.done; if (!done) { return callWithSafeIterationClosing(iterator, this.mapper, result.value); } }); @@ -10814,7 +11871,7 @@ var doric = (function (exports) { map: function map(mapper) { return new IteratorProxy$1({ iterator: anObject(this), - mapper: aFunction(mapper) + mapper: aCallable(mapper) }); } }); @@ -10825,10 +11882,13 @@ var doric = (function (exports) { + + var TypeError$9 = global_1.TypeError; + _export({ target: 'Iterator', proto: true, real: true }, { reduce: function reduce(reducer /* , initialValue */) { anObject(this); - aFunction(reducer); + aCallable(reducer); var noInitial = arguments.length < 2; var accumulator = noInitial ? undefined : arguments[1]; iterate(this, function (value) { @@ -10839,7 +11899,7 @@ var doric = (function (exports) { accumulator = reducer(accumulator, value); } }, { IS_ITERATOR: true }); - if (noInitial) { throw TypeError('Reduce of empty iterator with no initial value'); } + if (noInitial) { throw TypeError$9('Reduce of empty iterator with no initial value'); } return accumulator; } }); @@ -10853,7 +11913,7 @@ var doric = (function (exports) { _export({ target: 'Iterator', proto: true, real: true }, { some: function some(fn) { anObject(this); - aFunction(fn); + aCallable(fn); return iterate(this, function (value, stop) { if (fn(value)) { return stop(); } }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; @@ -10867,13 +11927,14 @@ var doric = (function (exports) { - var IteratorProxy = iteratorCreateProxy(function (arg) { + + var IteratorProxy = iteratorCreateProxy(function (args) { var iterator = this.iterator; if (!this.remaining--) { this.done = true; - return iteratorClose(iterator); + return iteratorClose(iterator, 'normal', undefined); } - var result = anObject(this.next.call(iterator, arg)); + var result = anObject(functionApply(this.next, iterator, args)); var done = this.done = !!result.done; if (!done) { return result.value; } }); @@ -10892,26 +11953,26 @@ var doric = (function (exports) { - var push = [].push; + var push$7 = [].push; _export({ target: 'Iterator', proto: true, real: true }, { toArray: function toArray() { var result = []; - iterate(anObject(this), push, { that: result, IS_ITERATOR: true }); + iterate(anObject(this), push$7, { that: result, IS_ITERATOR: true }); return result; } }); // https://github.com/tc39/collection-methods - var collectionDeleteAll = function (/* ...elements */) { + var collectionDeleteAll = function deleteAll(/* ...elements */) { var arguments$1 = arguments; var collection = anObject(this); - var remover = aFunction(collection['delete']); + var remover = aCallable(collection['delete']); var allDeleted = true; var wasDeleted; for (var k = 0, len = arguments.length; k < len; k++) { - wasDeleted = remover.call(collection, arguments$1[k]); + wasDeleted = functionCall(remover, collection, arguments$1[k]); allDeleted = allDeleted && wasDeleted; } return !!allDeleted; @@ -10920,19 +11981,20 @@ var doric = (function (exports) { // `Map.prototype.deleteAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Map', proto: true, real: true, forced: isPure }, { - deleteAll: function deleteAll(/* ...elements */) { - return collectionDeleteAll.apply(this, arguments); - } + deleteAll: collectionDeleteAll }); // `Map.prototype.emplace` method // https://github.com/thumbsupep/proposal-upsert var mapEmplace = function emplace(key, handler) { var map = anObject(this); - var value = (map.has(key) && 'update' in handler) - ? handler.update(map.get(key), key, map) + var get = aCallable(map.get); + var has = aCallable(map.has); + var set = aCallable(map.set); + var value = (functionCall(has, map, key) && 'update' in handler) + ? handler.update(functionCall(get, map, key), key, map) : handler.insert(key, map); - map.set(key, value); + functionCall(set, map, key, value); return value; }; @@ -10942,16 +12004,9 @@ var doric = (function (exports) { emplace: mapEmplace }); - var getIterator = function (it) { - var iteratorMethod = getIteratorMethod(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } return anObject(iteratorMethod.call(it)); - }; - var getMapIterator = function (it) { // eslint-disable-next-line es/no-map -- safe - return Map.prototype.entries.call(it); + return functionCall(Map.prototype.entries, it); }; // `Map.prototype.every` method @@ -10960,7 +12015,7 @@ var doric = (function (exports) { every: function every(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return !iterate(iterator, function (key, value, stop) { if (!boundFunction(value, key, map)) { return stop(); } }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped; @@ -10973,11 +12028,11 @@ var doric = (function (exports) { filter: function filter(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var newMap = new (speciesConstructor(map, getBuiltIn('Map')))(); - var setter = aFunction(newMap.set); + var setter = aCallable(newMap.set); iterate(iterator, function (key, value) { - if (boundFunction(value, key, map)) { setter.call(newMap, key, value); } + if (boundFunction(value, key, map)) { functionCall(setter, newMap, key, value); } }, { AS_ENTRIES: true, IS_ITERATOR: true }); return newMap; } @@ -10989,7 +12044,7 @@ var doric = (function (exports) { find: function find(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return iterate(iterator, function (key, value, stop) { if (boundFunction(value, key, map)) { return stop(value); } }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result; @@ -11002,7 +12057,7 @@ var doric = (function (exports) { findKey: function findKey(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return iterate(iterator, function (key, value, stop) { if (boundFunction(value, key, map)) { return stop(key); } }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).result; @@ -11014,23 +12069,27 @@ var doric = (function (exports) { + + + var push$6 = [].push; + var collectionFrom = function from(source /* , mapFn, thisArg */) { var length = arguments.length; var mapFn = length > 1 ? arguments[1] : undefined; var mapping, array, n, boundFunction; - aFunction(this); + aConstructor(this); mapping = mapFn !== undefined; - if (mapping) { aFunction(mapFn); } + if (mapping) { aCallable(mapFn); } if (source == undefined) { return new this(); } array = []; if (mapping) { n = 0; - boundFunction = functionBindContext(mapFn, length > 2 ? arguments[2] : undefined, 2); + boundFunction = functionBindContext(mapFn, length > 2 ? arguments[2] : undefined); iterate(source, function (nextItem) { - array.push(boundFunction(nextItem, n++)); + functionCall(push$6, array, boundFunction(nextItem, n++)); }); } else { - iterate(source, array.push, { that: array }); + iterate(source, push$6, { that: array }); } return new this(array); }; @@ -11041,20 +12100,23 @@ var doric = (function (exports) { from: collectionFrom }); + var push$5 = functionUncurryThis([].push); + // `Map.groupBy` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Map', stat: true }, { groupBy: function groupBy(iterable, keyDerivative) { + aCallable(keyDerivative); + var iterator = getIterator(iterable); var newMap = new this(); - aFunction(keyDerivative); - var has = aFunction(newMap.has); - var get = aFunction(newMap.get); - var set = aFunction(newMap.set); - iterate(iterable, function (element) { + var has = aCallable(newMap.has); + var get = aCallable(newMap.get); + var set = aCallable(newMap.set); + iterate(iterator, function (element) { var derivedKey = keyDerivative(element); - if (!has.call(newMap, derivedKey)) { set.call(newMap, derivedKey, [element]); } - else { get.call(newMap, derivedKey).push(element); } - }); + if (!functionCall(has, newMap, derivedKey)) { functionCall(set, newMap, derivedKey, [element]); } + else { push$5(functionCall(get, newMap, derivedKey), element); } + }, { IS_ITERATOR: true }); return newMap; } }); @@ -11081,16 +12143,16 @@ var doric = (function (exports) { _export({ target: 'Map', stat: true }, { keyBy: function keyBy(iterable, keyDerivative) { var newMap = new this(); - aFunction(keyDerivative); - var setter = aFunction(newMap.set); + aCallable(keyDerivative); + var setter = aCallable(newMap.set); iterate(iterable, function (element) { - setter.call(newMap, keyDerivative(element), element); + functionCall(setter, newMap, keyDerivative(element), element); }); return newMap; } }); - // `Map.prototype.includes` method + // `Map.prototype.keyOf` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Map', proto: true, real: true, forced: isPure }, { keyOf: function keyOf(searchElement) { @@ -11106,11 +12168,11 @@ var doric = (function (exports) { mapKeys: function mapKeys(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var newMap = new (speciesConstructor(map, getBuiltIn('Map')))(); - var setter = aFunction(newMap.set); + var setter = aCallable(newMap.set); iterate(iterator, function (key, value) { - setter.call(newMap, boundFunction(value, key, map), value); + functionCall(setter, newMap, boundFunction(value, key, map), value); }, { AS_ENTRIES: true, IS_ITERATOR: true }); return newMap; } @@ -11122,11 +12184,11 @@ var doric = (function (exports) { mapValues: function mapValues(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var newMap = new (speciesConstructor(map, getBuiltIn('Map')))(); - var setter = aFunction(newMap.set); + var setter = aCallable(newMap.set); iterate(iterator, function (key, value) { - setter.call(newMap, key, boundFunction(value, key, map)); + functionCall(setter, newMap, key, boundFunction(value, key, map)); }, { AS_ENTRIES: true, IS_ITERATOR: true }); return newMap; } @@ -11140,9 +12202,10 @@ var doric = (function (exports) { var arguments$1 = arguments; var map = anObject(this); - var setter = aFunction(map.set); + var setter = aCallable(map.set); + var argumentsLength = arguments.length; var i = 0; - while (i < arguments.length) { + while (i < argumentsLength) { iterate(arguments$1[i++], setter, { that: map, AS_ENTRIES: true }); } return map; @@ -11151,12 +12214,7 @@ var doric = (function (exports) { // https://tc39.github.io/proposal-setmap-offrom/ var collectionOf = function of() { - var arguments$1 = arguments; - - var length = arguments.length; - var A = new Array(length); - while (length--) { A[length] = arguments$1[length]; } - return new this(A); + return new this(arraySlice$1(arguments)); }; // `Map.of` method @@ -11165,6 +12223,8 @@ var doric = (function (exports) { of: collectionOf }); + var TypeError$8 = global_1.TypeError; + // `Map.prototype.reduce` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Map', proto: true, real: true, forced: isPure }, { @@ -11173,7 +12233,7 @@ var doric = (function (exports) { var iterator = getMapIterator(map); var noInitial = arguments.length < 2; var accumulator = noInitial ? undefined : arguments[1]; - aFunction(callbackfn); + aCallable(callbackfn); iterate(iterator, function (key, value) { if (noInitial) { noInitial = false; @@ -11182,7 +12242,7 @@ var doric = (function (exports) { accumulator = callbackfn(accumulator, value, key, map); } }, { AS_ENTRIES: true, IS_ITERATOR: true }); - if (noInitial) { throw TypeError('Reduce of empty map with no initial value'); } + if (noInitial) { throw TypeError$8('Reduce of empty map with no initial value'); } return accumulator; } }); @@ -11193,48 +12253,58 @@ var doric = (function (exports) { some: function some(callbackfn /* , thisArg */) { var map = anObject(this); var iterator = getMapIterator(map); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return iterate(iterator, function (key, value, stop) { if (boundFunction(value, key, map)) { return stop(); } }, { AS_ENTRIES: true, IS_ITERATOR: true, INTERRUPTED: true }).stopped; } }); + var TypeError$7 = global_1.TypeError; + // `Set.prototype.update` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Map', proto: true, real: true, forced: isPure }, { update: function update(key, callback /* , thunk */) { var map = anObject(this); + var get = aCallable(map.get); + var has = aCallable(map.has); + var set = aCallable(map.set); var length = arguments.length; - aFunction(callback); - var isPresentInMap = map.has(key); + aCallable(callback); + var isPresentInMap = functionCall(has, map, key); if (!isPresentInMap && length < 3) { - throw TypeError('Updating absent value'); + throw TypeError$7('Updating absent value'); } - var value = isPresentInMap ? map.get(key) : aFunction(length > 2 ? arguments[2] : undefined)(key, map); - map.set(key, callback(value, key, map)); + var value = isPresentInMap ? functionCall(get, map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map); + functionCall(set, map, key, callback(value, key, map)); return map; } }); + var TypeError$6 = global_1.TypeError; + // `Map.prototype.upsert` method // https://github.com/thumbsupep/proposal-upsert var mapUpsert = function upsert(key, updateFn /* , insertFn */) { var map = anObject(this); + var get = aCallable(map.get); + var has = aCallable(map.has); + var set = aCallable(map.set); var insertFn = arguments.length > 2 ? arguments[2] : undefined; var value; - if (typeof updateFn != 'function' && typeof insertFn != 'function') { - throw TypeError('At least one callback required'); + if (!isCallable(updateFn) && !isCallable(insertFn)) { + throw TypeError$6('At least one callback required'); } - if (map.has(key)) { - value = map.get(key); - if (typeof updateFn == 'function') { + if (functionCall(has, map, key)) { + value = functionCall(get, map, key); + if (isCallable(updateFn)) { value = updateFn(value); - map.set(key, value); + functionCall(set, map, key, value); } - } else if (typeof insertFn == 'function') { + } else if (isCallable(insertFn)) { value = insertFn(); - map.set(key, value); + functionCall(set, map, key, value); } return value; }; @@ -11245,7 +12315,7 @@ var doric = (function (exports) { // `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`) // https://github.com/thumbsupep/proposal-upsert - _export({ target: 'Map', proto: true, real: true, forced: isPure }, { + _export({ target: 'Map', proto: true, real: true, name: 'upsert', forced: isPure }, { updateOrInsert: mapUpsert }); @@ -11290,18 +12360,15 @@ var doric = (function (exports) { // `Math.scale` method implementation // https://rwaldron.github.io/proposal-math-extensions/ var mathScale = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { - if ( - arguments.length === 0 - /* eslint-disable no-self-compare -- NaN check */ - || x != x - || inLow != inLow - || inHigh != inHigh - || outLow != outLow - || outHigh != outHigh - /* eslint-enable no-self-compare -- NaN check */ - ) { return NaN; } - if (x === Infinity || x === -Infinity) { return x; } - return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; + var nx = +x; + var nInLow = +inLow; + var nInHigh = +inHigh; + var nOutLow = +outLow; + var nOutHigh = +outHigh; + // eslint-disable-next-line no-self-compare -- NaN check + if (nx != nx || nInLow != nInLow || nInHigh != nInHigh || nOutLow != nOutLow || nOutHigh != nOutHigh) { return NaN; } + if (nx === Infinity || nx === -Infinity) { return nx; } + return (nx - nInLow) * (nOutHigh - nOutLow) / (nInHigh - nInLow) + nOutLow; }; // `Math.fscale` method @@ -11377,9 +12444,10 @@ var doric = (function (exports) { var SEEDED_RANDOM = 'Seeded Random'; var SEEDED_RANDOM_GENERATOR = SEEDED_RANDOM + ' Generator'; + var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.'; var setInternalState$5 = internalState.set; var getInternalState$3 = internalState.getterFor(SEEDED_RANDOM_GENERATOR); - var SEED_TYPE_ERROR = 'Math.seededPRNG() argument should have a "seed" field with a finite value.'; + var TypeError$5 = global_1.TypeError; var $SeededRandomGenerator = createIteratorConstructor(function SeededRandomGenerator(seed) { setInternalState$5(this, { @@ -11398,7 +12466,7 @@ var doric = (function (exports) { _export({ target: 'Math', stat: true, forced: true }, { seededPRNG: function seededPRNG(it) { var seed = anObject(it).seed; - if (!numberIsFinite(seed)) { throw TypeError(SEED_TYPE_ERROR); } + if (!numberIsFinite(seed)) { throw TypeError$5(SEED_TYPE_ERROR); } return new $SeededRandomGenerator(seed); } }); @@ -11430,7 +12498,14 @@ var doric = (function (exports) { var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation'; var INVALID_RADIX = 'Invalid radix'; + var RangeError$1 = global_1.RangeError; + var SyntaxError = global_1.SyntaxError; + var TypeError$4 = global_1.TypeError; var valid = /^[\da-z]+$/; + var charAt$4 = functionUncurryThis(''.charAt); + var exec$2 = functionUncurryThis(valid.exec); + var numberToString$1 = functionUncurryThis(1.0.toString); + var stringSlice$2 = functionUncurryThis(''.slice); // `Number.fromString` method // https://github.com/tc39/proposal-number-fromstring @@ -11438,16 +12513,16 @@ var doric = (function (exports) { fromString: function fromString(string, radix) { var sign = 1; var R, mathNum; - if (typeof string != 'string') { throw TypeError(INVALID_NUMBER_REPRESENTATION); } + if (typeof string != 'string') { throw TypeError$4(INVALID_NUMBER_REPRESENTATION); } if (!string.length) { throw SyntaxError(INVALID_NUMBER_REPRESENTATION); } - if (string.charAt(0) == '-') { + if (charAt$4(string, 0) == '-') { sign = -1; - string = string.slice(1); + string = stringSlice$2(string, 1); if (!string.length) { throw SyntaxError(INVALID_NUMBER_REPRESENTATION); } } - R = radix === undefined ? 10 : toInteger(radix); - if (R < 2 || R > 36) { throw RangeError(INVALID_RADIX); } - if (!valid.test(string) || (mathNum = numberParseInt(string, R)).toString(R) !== string) { + R = radix === undefined ? 10 : toIntegerOrInfinity(radix); + if (R < 2 || R > 36) { throw RangeError$1(INVALID_RADIX); } + if (!exec$2(valid, string) || numberToString$1(mathNum = numberParseInt(string, R), R) !== string) { throw SyntaxError(INVALID_NUMBER_REPRESENTATION); } return sign * mathNum; @@ -11462,12 +12537,6 @@ var doric = (function (exports) { } }); - // `Object.hasOwn` method - // https://github.com/tc39/proposal-accessible-object-hasownproperty - _export({ target: 'Object', stat: true }, { - hasOwn: has$1 - }); - var OBJECT_ITERATOR = 'Object Iterator'; var setInternalState$4 = internalState.set; var getInternalState$2 = internalState.getterFor(OBJECT_ITERATOR); @@ -11491,7 +12560,7 @@ var doric = (function (exports) { } var key = keys[state.index++]; var object = state.object; - if (!has$1(object, key)) { continue; } + if (!hasOwnProperty_1(object, key)) { continue; } switch (state.mode) { case 'keys': return { value: key, done: false }; case 'values': return { value: object[key], done: false }; @@ -11531,6 +12600,10 @@ var doric = (function (exports) { + + + + var defineProperty = objectDefineProperty.f; @@ -11540,13 +12613,11 @@ var doric = (function (exports) { + var OBSERVABLE = wellKnownSymbol('observable'); var getInternalState$1 = internalState.get; var setInternalState$3 = internalState.set; - - var getMethod = function (fn) { - return fn == null ? undefined : aFunction(fn); - }; + var Array$1 = global_1.Array; var cleanupSubscription = function (subscriptionState) { var cleanup = subscriptionState.cleanup; @@ -11582,7 +12653,7 @@ var doric = (function (exports) { var start; if (!descriptors) { this.closed = false; } try { - if (start = getMethod(observer.start)) { start.call(observer, this); } + if (start = getMethod(observer, 'start')) { functionCall(start, observer, this); } } catch (error) { hostReportErrors(error); } @@ -11591,9 +12662,9 @@ var doric = (function (exports) { try { var cleanup = subscriber(subscriptionObserver); var subscription = cleanup; - if (cleanup != null) { subscriptionState.cleanup = typeof cleanup.unsubscribe === 'function' + if (cleanup != null) { subscriptionState.cleanup = isCallable(cleanup.unsubscribe) ? function () { subscription.unsubscribe(); } - : aFunction(cleanup); } + : aCallable(cleanup); } } catch (error$1) { subscriptionObserver.error(error$1); return; @@ -11628,8 +12699,8 @@ var doric = (function (exports) { if (!subscriptionClosed(subscriptionState)) { var observer = subscriptionState.observer; try { - var nextMethod = getMethod(observer.next); - if (nextMethod) { nextMethod.call(observer, value); } + var nextMethod = getMethod(observer, 'next'); + if (nextMethod) { functionCall(nextMethod, observer, value); } } catch (error) { hostReportErrors(error); } @@ -11641,8 +12712,8 @@ var doric = (function (exports) { var observer = subscriptionState.observer; close(subscriptionState); try { - var errorMethod = getMethod(observer.error); - if (errorMethod) { errorMethod.call(observer, value); } + var errorMethod = getMethod(observer, 'error'); + if (errorMethod) { functionCall(errorMethod, observer, value); } else { hostReportErrors(value); } } catch (err) { hostReportErrors(err); @@ -11655,8 +12726,8 @@ var doric = (function (exports) { var observer = subscriptionState.observer; close(subscriptionState); try { - var completeMethod = getMethod(observer.complete); - if (completeMethod) { completeMethod.call(observer); } + var completeMethod = getMethod(observer, 'complete'); + if (completeMethod) { functionCall(completeMethod, observer); } } catch (error) { hostReportErrors(error); } cleanupSubscription(subscriptionState); @@ -11672,14 +12743,16 @@ var doric = (function (exports) { }); } var $Observable = function Observable(subscriber) { - anInstance(this, $Observable, 'Observable'); - setInternalState$3(this, { subscriber: aFunction(subscriber) }); + anInstance(this, ObservablePrototype); + setInternalState$3(this, { subscriber: aCallable(subscriber) }); }; - redefineAll($Observable.prototype, { + var ObservablePrototype = $Observable.prototype; + + redefineAll(ObservablePrototype, { subscribe: function subscribe(observer) { var length = arguments.length; - return new Subscription(typeof observer === 'function' ? { + return new Subscription(isCallable(observer) ? { next: observer, error: length > 1 ? arguments[1] : undefined, complete: length > 2 ? arguments[2] : undefined @@ -11689,10 +12762,10 @@ var doric = (function (exports) { redefineAll($Observable, { from: function from(x) { - var C = typeof this === 'function' ? this : $Observable; - var observableMethod = getMethod(anObject(x)[OBSERVABLE]); + var C = isConstructor(this) ? this : $Observable; + var observableMethod = getMethod(anObject(x), OBSERVABLE); if (observableMethod) { - var observable = anObject(observableMethod.call(x)); + var observable = anObject(functionCall(observableMethod, x)); return observable.constructor === C ? observable : new C(function (observer) { return observable.subscribe(observer); }); @@ -11709,9 +12782,9 @@ var doric = (function (exports) { of: function of() { var arguments$1 = arguments; - var C = typeof this === 'function' ? this : $Observable; + var C = isConstructor(this) ? this : $Observable; var length = arguments.length; - var items = new Array(length); + var items = Array$1(length); var index = 0; while (index < length) { items[index] = arguments$1[index++]; } return new C(function (observer) { @@ -11723,7 +12796,7 @@ var doric = (function (exports) { } }); - createNonEnumerableProperty($Observable.prototype, OBSERVABLE, function () { return this; }); + redefine(ObservablePrototype, OBSERVABLE, function () { return this; }); _export({ global: true }, { Observable: $Observable @@ -11747,19 +12820,25 @@ var doric = (function (exports) { + + + var Map$1 = getBuiltIn('Map'); + var WeakMap$1 = getBuiltIn('WeakMap'); + var push$4 = functionUncurryThis([].push); + var metadata = shared('metadata'); - var store$1 = metadata.store || (metadata.store = new es_weakMap()); + var store$1 = metadata.store || (metadata.store = new WeakMap$1()); var getOrCreateMetadataMap$1 = function (target, targetKey, create) { var targetMetadata = store$1.get(target); if (!targetMetadata) { if (!create) { return; } - store$1.set(target, targetMetadata = new es_map()); + store$1.set(target, targetMetadata = new Map$1()); } var keyMetadata = targetMetadata.get(targetKey); if (!keyMetadata) { if (!create) { return; } - targetMetadata.set(targetKey, keyMetadata = new es_map()); + targetMetadata.set(targetKey, keyMetadata = new Map$1()); } return keyMetadata; }; @@ -11780,7 +12859,7 @@ var doric = (function (exports) { var ordinaryOwnMetadataKeys$2 = function (target, targetKey) { var metadataMap = getOrCreateMetadataMap$1(target, targetKey, false); var keys = []; - if (metadataMap) { metadataMap.forEach(function (_, key) { keys.push(key); }); } + if (metadataMap) { metadataMap.forEach(function (_, key) { push$4(keys, key); }); } return keys; }; @@ -11848,28 +12927,17 @@ var doric = (function (exports) { } }); - // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` - - - - - - + var arrayUniqueBy$1 = functionUncurryThis(arrayUniqueBy$2); + var concat = functionUncurryThis([].concat); var ordinaryOwnMetadataKeys$1 = reflectMetadata.keys; var toMetadataKey$5 = reflectMetadata.toKey; - var from = function (iter) { - var result = []; - iterate(iter, result.push, { that: result }); - return result; - }; - var ordinaryMetadataKeys = function (O, P) { var oKeys = ordinaryOwnMetadataKeys$1(O, P); var parent = objectGetPrototypeOf(O); if (parent === null) { return oKeys; } var pKeys = ordinaryMetadataKeys(parent, P); - return pKeys.length ? oKeys.length ? from(new es_set(oKeys.concat(pKeys))) : pKeys : oKeys; + return pKeys.length ? oKeys.length ? arrayUniqueBy$1(concat(oKeys, pKeys)) : pKeys : oKeys; }; // `Reflect.getMetadataKeys` method @@ -11950,13 +13018,13 @@ var doric = (function (exports) { }); // https://github.com/tc39/collection-methods - var collectionAddAll = function (/* ...elements */) { + var collectionAddAll = function addAll(/* ...elements */) { var arguments$1 = arguments; var set = anObject(this); - var adder = aFunction(set.add); + var adder = aCallable(set.add); for (var k = 0, len = arguments.length; k < len; k++) { - adder.call(set, arguments$1[k]); + functionCall(adder, set, arguments$1[k]); } return set; }; @@ -11964,17 +13032,13 @@ var doric = (function (exports) { // `Set.prototype.addAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Set', proto: true, real: true, forced: isPure }, { - addAll: function addAll(/* ...elements */) { - return collectionAddAll.apply(this, arguments); - } + addAll: collectionAddAll }); // `Set.prototype.deleteAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Set', proto: true, real: true, forced: isPure }, { - deleteAll: function deleteAll(/* ...elements */) { - return collectionDeleteAll.apply(this, arguments); - } + deleteAll: collectionDeleteAll }); // `Set.prototype.difference` method @@ -11983,9 +13047,9 @@ var doric = (function (exports) { difference: function difference(iterable) { var set = anObject(this); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set); - var remover = aFunction(newSet['delete']); + var remover = aCallable(newSet['delete']); iterate(iterable, function (value) { - remover.call(newSet, value); + functionCall(remover, newSet, value); }); return newSet; } @@ -11993,7 +13057,7 @@ var doric = (function (exports) { var getSetIterator = function (it) { // eslint-disable-next-line es/no-set -- safe - return Set.prototype.values.call(it); + return functionCall(Set.prototype.values, it); }; // `Set.prototype.every` method @@ -12002,7 +13066,7 @@ var doric = (function (exports) { every: function every(callbackfn /* , thisArg */) { var set = anObject(this); var iterator = getSetIterator(set); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return !iterate(iterator, function (value, stop) { if (!boundFunction(value, value, set)) { return stop(); } }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; @@ -12015,11 +13079,11 @@ var doric = (function (exports) { filter: function filter(callbackfn /* , thisArg */) { var set = anObject(this); var iterator = getSetIterator(set); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(); - var adder = aFunction(newSet.add); + var adder = aCallable(newSet.add); iterate(iterator, function (value) { - if (boundFunction(value, value, set)) { adder.call(newSet, value); } + if (boundFunction(value, value, set)) { functionCall(adder, newSet, value); } }, { IS_ITERATOR: true }); return newSet; } @@ -12031,7 +13095,7 @@ var doric = (function (exports) { find: function find(callbackfn /* , thisArg */) { var set = anObject(this); var iterator = getSetIterator(set); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return iterate(iterator, function (value, stop) { if (boundFunction(value, value, set)) { return stop(value); } }, { IS_ITERATOR: true, INTERRUPTED: true }).result; @@ -12050,10 +13114,10 @@ var doric = (function (exports) { intersection: function intersection(iterable) { var set = anObject(this); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(); - var hasCheck = aFunction(set.has); - var adder = aFunction(newSet.add); + var hasCheck = aCallable(set.has); + var adder = aCallable(newSet.add); iterate(iterable, function (value) { - if (hasCheck.call(set, value)) { adder.call(newSet, value); } + if (functionCall(hasCheck, set, value)) { functionCall(adder, newSet, value); } }); return newSet; } @@ -12064,9 +13128,9 @@ var doric = (function (exports) { _export({ target: 'Set', proto: true, real: true, forced: isPure }, { isDisjointFrom: function isDisjointFrom(iterable) { var set = anObject(this); - var hasCheck = aFunction(set.has); + var hasCheck = aCallable(set.has); return !iterate(iterable, function (value, stop) { - if (hasCheck.call(set, value) === true) { return stop(); } + if (functionCall(hasCheck, set, value) === true) { return stop(); } }, { INTERRUPTED: true }).stopped; } }); @@ -12078,12 +13142,12 @@ var doric = (function (exports) { var iterator = getIterator(this); var otherSet = anObject(iterable); var hasCheck = otherSet.has; - if (typeof hasCheck != 'function') { + if (!isCallable(hasCheck)) { otherSet = new (getBuiltIn('Set'))(iterable); - hasCheck = aFunction(otherSet.has); + hasCheck = aCallable(otherSet.has); } return !iterate(iterator, function (value, stop) { - if (hasCheck.call(otherSet, value) === false) { return stop(); } + if (functionCall(hasCheck, otherSet, value) === false) { return stop(); } }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; } }); @@ -12093,23 +13157,26 @@ var doric = (function (exports) { _export({ target: 'Set', proto: true, real: true, forced: isPure }, { isSupersetOf: function isSupersetOf(iterable) { var set = anObject(this); - var hasCheck = aFunction(set.has); + var hasCheck = aCallable(set.has); return !iterate(iterable, function (value, stop) { - if (hasCheck.call(set, value) === false) { return stop(); } + if (functionCall(hasCheck, set, value) === false) { return stop(); } }, { INTERRUPTED: true }).stopped; } }); + var arrayJoin = functionUncurryThis([].join); + var push$3 = [].push; + // `Set.prototype.join` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Set', proto: true, real: true, forced: isPure }, { join: function join(separator) { var set = anObject(this); var iterator = getSetIterator(set); - var sep = separator === undefined ? ',' : String(separator); + var sep = separator === undefined ? ',' : toString_1(separator); var result = []; - iterate(iterator, result.push, { that: result, IS_ITERATOR: true }); - return result.join(sep); + iterate(iterator, push$3, { that: result, IS_ITERATOR: true }); + return arrayJoin(result, sep); } }); @@ -12119,11 +13186,11 @@ var doric = (function (exports) { map: function map(callbackfn /* , thisArg */) { var set = anObject(this); var iterator = getSetIterator(set); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(); - var adder = aFunction(newSet.add); + var adder = aCallable(newSet.add); iterate(iterator, function (value) { - adder.call(newSet, boundFunction(value, value, set)); + functionCall(adder, newSet, boundFunction(value, value, set)); }, { IS_ITERATOR: true }); return newSet; } @@ -12135,6 +13202,8 @@ var doric = (function (exports) { of: collectionOf }); + var TypeError$3 = global_1.TypeError; + // `Set.prototype.reduce` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'Set', proto: true, real: true, forced: isPure }, { @@ -12143,7 +13212,7 @@ var doric = (function (exports) { var iterator = getSetIterator(set); var noInitial = arguments.length < 2; var accumulator = noInitial ? undefined : arguments[1]; - aFunction(callbackfn); + aCallable(callbackfn); iterate(iterator, function (value) { if (noInitial) { noInitial = false; @@ -12152,7 +13221,7 @@ var doric = (function (exports) { accumulator = callbackfn(accumulator, value, value, set); } }, { IS_ITERATOR: true }); - if (noInitial) { throw TypeError('Reduce of empty set with no initial value'); } + if (noInitial) { throw TypeError$3('Reduce of empty set with no initial value'); } return accumulator; } }); @@ -12163,7 +13232,7 @@ var doric = (function (exports) { some: function some(callbackfn /* , thisArg */) { var set = anObject(this); var iterator = getSetIterator(set); - var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callbackfn, arguments.length > 1 ? arguments[1] : undefined); return iterate(iterator, function (value, stop) { if (boundFunction(value, value, set)) { return stop(); } }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped; @@ -12176,10 +13245,10 @@ var doric = (function (exports) { symmetricDifference: function symmetricDifference(iterable) { var set = anObject(this); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set); - var remover = aFunction(newSet['delete']); - var adder = aFunction(newSet.add); + var remover = aCallable(newSet['delete']); + var adder = aCallable(newSet.add); iterate(iterable, function (value) { - remover.call(newSet, value) || adder.call(newSet, value); + functionCall(remover, newSet, value) || functionCall(adder, newSet, value); }); return newSet; } @@ -12191,12 +13260,12 @@ var doric = (function (exports) { union: function union(iterable) { var set = anObject(this); var newSet = new (speciesConstructor(set, getBuiltIn('Set')))(set); - iterate(iterable, aFunction(newSet.add), { that: newSet }); + iterate(iterable, aCallable(newSet.add), { that: newSet }); return newSet; } }); - var charAt$1 = stringMultibyte.charAt; + var charAt$3 = stringMultibyte.charAt; var FORCED$1 = fails(function () { @@ -12207,12 +13276,12 @@ var doric = (function (exports) { // https://github.com/mathiasbynens/String.prototype.at _export({ target: 'String', proto: true, forced: FORCED$1 }, { at: function at(pos) { - return charAt$1(this, pos); + return charAt$3(this, pos); } }); var codeAt$1 = stringMultibyte.codeAt; - var charAt = stringMultibyte.charAt; + var charAt$2 = stringMultibyte.charAt; var STRING_ITERATOR = 'String Iterator'; var setInternalState$2 = internalState.set; var getInternalState = internalState.getterFor(STRING_ITERATOR); @@ -12230,7 +13299,7 @@ var doric = (function (exports) { var index = state.index; var point; if (index >= string.length) { return { value: undefined, done: true }; } - point = charAt(string, index); + point = charAt$2(string, index); state.index += point.length; return { value: { codePoint: codeAt$1(point, 0), position: index }, done: false }; }); @@ -12239,7 +13308,7 @@ var doric = (function (exports) { // https://github.com/tc39/proposal-string-prototype-codepoints _export({ target: 'String', proto: true }, { codePoints: function codePoints() { - return new $StringIterator(String(requireObjectCoercible(this))); + return new $StringIterator(toString_1(requireObjectCoercible(this))); } }); @@ -12275,69 +13344,98 @@ var doric = (function (exports) { defineWellKnownSymbol('replaceAll'); - var aTypedArray$4 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$4 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArrayConstructor = arrayBufferViewCore.aTypedArrayConstructor; + var exportTypedArrayStaticMethod = arrayBufferViewCore.exportTypedArrayStaticMethod; - // `%TypedArray%.prototype.at` method - // https://github.com/tc39/proposal-relative-indexing-method - exportTypedArrayMethod$4('at', function at(index) { - var O = aTypedArray$4(this); - var len = toLength(O.length); - var relativeIndex = toInteger(index); - var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; - return (k < 0 || k >= len) ? undefined : O[k]; - }); + // `%TypedArray%.fromAsync` method + // https://github.com/tc39/proposal-array-from-async + exportTypedArrayStaticMethod('fromAsync', function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { + var C = this; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var thisArg = argumentsLength > 2 ? arguments[2] : undefined; + return new (getBuiltIn('Promise'))(function (resolve) { + aConstructor(C); + resolve(arrayFromAsync(asyncItems, mapfn, thisArg)); + }).then(function (list) { + return arrayFromConstructorAndList(aTypedArrayConstructor(C), list); + }); + }, typedArrayConstructorsRequireWrappers); - var $filterOut = arrayIteration.filterOut; + // TODO: Remove from `core-js@4` + + var $filterReject$1 = arrayIteration.filterReject; - var aTypedArray$3 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$3 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$5 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$5 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.filterOut` method // https://github.com/tc39/proposal-array-filtering - exportTypedArrayMethod$3('filterOut', function filterOut(callbackfn /* , thisArg */) { - var list = $filterOut(aTypedArray$3(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$5('filterOut', function filterOut(callbackfn /* , thisArg */) { + var list = $filterReject$1(aTypedArray$5(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + return typedArrayFromSpeciesAndList(this, list); + }); + + var $filterReject = arrayIteration.filterReject; + + + var aTypedArray$4 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$4 = arrayBufferViewCore.exportTypedArrayMethod; + + // `%TypedArray%.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + exportTypedArrayMethod$4('filterReject', function filterReject(callbackfn /* , thisArg */) { + var list = $filterReject(aTypedArray$4(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); return typedArrayFromSpeciesAndList(this, list); }); var $findLast = arrayIterationFromLast.findLast; - var aTypedArray$2 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$2 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$3 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$3 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findLast` method // https://github.com/tc39/proposal-array-find-from-last - exportTypedArrayMethod$2('findLast', function findLast(predicate /* , thisArg */) { - return $findLast(aTypedArray$2(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$3('findLast', function findLast(predicate /* , thisArg */) { + return $findLast(aTypedArray$3(this), predicate, arguments.length > 1 ? arguments[1] : undefined); }); var $findLastIndex = arrayIterationFromLast.findLastIndex; - var aTypedArray$1 = arrayBufferViewCore.aTypedArray; - var exportTypedArrayMethod$1 = arrayBufferViewCore.exportTypedArrayMethod; + var aTypedArray$2 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$2 = arrayBufferViewCore.exportTypedArrayMethod; // `%TypedArray%.prototype.findLastIndex` method // https://github.com/tc39/proposal-array-find-from-last - exportTypedArrayMethod$1('findLastIndex', function findLastIndex(predicate /* , thisArg */) { - return $findLastIndex(aTypedArray$1(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + exportTypedArrayMethod$2('findLastIndex', function findLastIndex(predicate /* , thisArg */) { + return $findLastIndex(aTypedArray$2(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }); + + var aTypedArray$1 = arrayBufferViewCore.aTypedArray; + var exportTypedArrayMethod$1 = arrayBufferViewCore.exportTypedArrayMethod; + + // `%TypedArray%.prototype.groupBy` method + // https://github.com/tc39/proposal-array-grouping + exportTypedArrayMethod$1('groupBy', function groupBy(callbackfn /* , thisArg */) { + var thisArg = arguments.length > 1 ? arguments[1] : undefined; + return arrayGroupBy(aTypedArray$1(this), callbackfn, thisArg, typedArraySpeciesConstructor); }); var aTypedArray = arrayBufferViewCore.aTypedArray; var exportTypedArrayMethod = arrayBufferViewCore.exportTypedArrayMethod; + var arrayUniqueBy = functionUncurryThis(arrayUniqueBy$2); // `%TypedArray%.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique exportTypedArrayMethod('uniqueBy', function uniqueBy(resolver) { - return typedArrayFromSpeciesAndList(this, arrayUniqueBy.call(aTypedArray(this), resolver)); + return typedArrayFromSpeciesAndList(this, arrayUniqueBy(aTypedArray(this), resolver)); }); // `WeakMap.prototype.deleteAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'WeakMap', proto: true, real: true, forced: isPure }, { - deleteAll: function deleteAll(/* ...elements */) { - return collectionDeleteAll.apply(this, arguments); - } + deleteAll: collectionDeleteAll }); // `WeakMap.from` method @@ -12372,17 +13470,13 @@ var doric = (function (exports) { // `WeakSet.prototype.addAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'WeakSet', proto: true, real: true, forced: isPure }, { - addAll: function addAll(/* ...elements */) { - return collectionAddAll.apply(this, arguments); - } + addAll: collectionAddAll }); // `WeakSet.prototype.deleteAll` method // https://github.com/tc39/proposal-collection-methods _export({ target: 'WeakSet', proto: true, real: true, forced: isPure }, { - deleteAll: function deleteAll(/* ...elements */) { - return collectionDeleteAll.apply(this, arguments); - } + deleteAll: collectionDeleteAll }); // `WeakSet.from` method @@ -12433,24 +13527,36 @@ var doric = (function (exports) { TouchList: 0 }; - for (var COLLECTION_NAME$1 in domIterables) { - var Collection$1 = global_1[COLLECTION_NAME$1]; - var CollectionPrototype$1 = Collection$1 && Collection$1.prototype; + // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` + + + var classList = documentCreateElement('span').classList; + var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; + + var domTokenListPrototype = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; + + var handlePrototype$1 = function (CollectionPrototype) { // some Chrome versions have non-configurable methods on DOMTokenList - if (CollectionPrototype$1 && CollectionPrototype$1.forEach !== arrayForEach) { try { - createNonEnumerableProperty(CollectionPrototype$1, 'forEach', arrayForEach); + if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) { try { + createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach); } catch (error) { - CollectionPrototype$1.forEach = arrayForEach; + CollectionPrototype.forEach = arrayForEach; } } + }; + + for (var COLLECTION_NAME$1 in domIterables) { + if (domIterables[COLLECTION_NAME$1]) { + handlePrototype$1(global_1[COLLECTION_NAME$1] && global_1[COLLECTION_NAME$1].prototype); + } } + handlePrototype$1(domTokenListPrototype); + var ITERATOR$2 = wellKnownSymbol('iterator'); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var ArrayValues = es_array_iterator.values; - for (var COLLECTION_NAME in domIterables) { - var Collection = global_1[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; + var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { if (CollectionPrototype) { // some Chrome versions have non-configurable methods on DOMTokenList if (CollectionPrototype[ITERATOR$2] !== ArrayValues) { try { @@ -12470,8 +13576,14 @@ var doric = (function (exports) { } } } } } + }; + + for (var COLLECTION_NAME in domIterables) { + handlePrototype(global_1[COLLECTION_NAME] && global_1[COLLECTION_NAME].prototype, COLLECTION_NAME); } + handlePrototype(domTokenListPrototype, 'DOMTokenList'); + var FORCED = !global_1.setImmediate || !global_1.clearImmediate; // http://w3c.github.io/setImmediate/ @@ -12495,16 +13607,15 @@ var doric = (function (exports) { } }); - var slice = [].slice; var MSIE = /MSIE .\./.test(engineUserAgent); // <- dirty ie9- check + var Function$1 = global_1.Function; var wrap = function (scheduler) { return function (handler, timeout /* , ...arguments */) { var boundArgs = arguments.length > 2; - var args = boundArgs ? slice.call(arguments, 2) : undefined; + var args = boundArgs ? arraySlice$1(arguments, 2) : undefined; return scheduler(boundArgs ? function () { - // eslint-disable-next-line no-new-func -- spec requirement - (typeof handler == 'function' ? handler : Function(handler)).apply(this, args); + functionApply(isCallable(handler) ? handler : Function$1(handler), this, args); } : handler, timeout); }; }; @@ -12551,6 +13662,9 @@ var doric = (function (exports) { }); // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js + + + var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 var base = 36; var tMin = 1; @@ -12564,8 +13678,17 @@ var doric = (function (exports) { var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; var baseMinusTMin = base - tMin; + + var RangeError = global_1.RangeError; + var exec$1 = functionUncurryThis(regexSeparators.exec); var floor$1 = Math.floor; - var stringFromCharCode = String.fromCharCode; + var fromCharCode = String.fromCharCode; + var charCodeAt = functionUncurryThis(''.charCodeAt); + var join$2 = functionUncurryThis([].join); + var push$2 = functionUncurryThis([].push); + var replace$2 = functionUncurryThis(''.replace); + var split$2 = functionUncurryThis(''.split); + var toLowerCase$1 = functionUncurryThis(''.toLowerCase); /** * Creates an array containing the numeric code points of each Unicode @@ -12579,20 +13702,20 @@ var doric = (function (exports) { var counter = 0; var length = string.length; while (counter < length) { - var value = string.charCodeAt(counter++); + var value = charCodeAt(string, counter++); if (value >= 0xD800 && value <= 0xDBFF && counter < length) { // It's a high surrogate, and there is a next character. - var extra = string.charCodeAt(counter++); + var extra = charCodeAt(string, counter++); if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + push$2(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); } else { // It's an unmatched surrogate; only append this code unit, in case the // next code unit is the high surrogate of a surrogate pair. - output.push(value); + push$2(output, value); counter--; } } else { - output.push(value); + push$2(output, value); } } return output; @@ -12645,7 +13768,7 @@ var doric = (function (exports) { for (i = 0; i < input.length; i++) { currentValue = input[i]; if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); + push$2(output, fromCharCode(currentValue)); } } @@ -12654,7 +13777,7 @@ var doric = (function (exports) { // Finish the basic string with a delimiter unless it's empty. if (basicLength) { - output.push(delimiter); + push$2(output, delimiter); } // Main encoding loop: @@ -12690,11 +13813,11 @@ var doric = (function (exports) { if (q < t) { break; } var qMinusT = q - t; var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); + push$2(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT))); q = floor$1(qMinusT / baseMinusT); } - output.push(stringFromCharCode(digitToBasic(q))); + push$2(output, fromCharCode(digitToBasic(q))); bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); delta = 0; ++handledCPCount; @@ -12704,18 +13827,18 @@ var doric = (function (exports) { ++delta; ++n; } - return output.join(''); + return join$2(output, ''); }; var stringPunycodeToAscii = function (input) { var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); + var labels = split$2(replace$2(toLowerCase$1(input), regexSeparators, '\u002E'), '.'); var i, label; for (i = 0; i < labels.length; i++) { label = labels[i]; - encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); + push$2(encoded, exec$1(regexNonASCII, label) ? 'xn--' + encode(label) : label); } - return encoded.join('.'); + return join$2(encoded, '.'); }; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` @@ -12740,8 +13863,12 @@ var doric = (function (exports) { - var $fetch = getBuiltIn('fetch'); - var Headers = getBuiltIn('Headers'); + + + + + + var ITERATOR = wellKnownSymbol('iterator'); var URL_SEARCH_PARAMS = 'URLSearchParams'; var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; @@ -12749,11 +13876,29 @@ var doric = (function (exports) { var getInternalParamsState = internalState.getterFor(URL_SEARCH_PARAMS); var getInternalIteratorState = internalState.getterFor(URL_SEARCH_PARAMS_ITERATOR); + var n$Fetch = getBuiltIn('fetch'); + var N$Request = getBuiltIn('Request'); + var Headers = getBuiltIn('Headers'); + var RequestPrototype = N$Request && N$Request.prototype; + var HeadersPrototype = Headers && Headers.prototype; + var RegExp$1 = global_1.RegExp; + var TypeError$2 = global_1.TypeError; + var decodeURIComponent = global_1.decodeURIComponent; + var encodeURIComponent$1 = global_1.encodeURIComponent; + var charAt$1 = functionUncurryThis(''.charAt); + var join$1 = functionUncurryThis([].join); + var push$1 = functionUncurryThis([].push); + var replace$1 = functionUncurryThis(''.replace); + var shift$1 = functionUncurryThis([].shift); + var splice = functionUncurryThis([].splice); + var split$1 = functionUncurryThis(''.split); + var stringSlice$1 = functionUncurryThis(''.slice); + var plus = /\+/g; var sequences = Array(4); var percentSequence = function (bytes) { - return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); + return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp$1('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); }; var percentDecode = function (sequence) { @@ -12765,13 +13910,13 @@ var doric = (function (exports) { }; var deserialize = function (it) { - var result = it.replace(plus, ' '); + var result = replace$1(it, plus, ' '); var bytes = 4; try { return decodeURIComponent(result); } catch (error) { while (bytes) { - result = result.replace(percentSequence(bytes--), percentDecode); + result = replace$1(result, percentSequence(bytes--), percentDecode); } return result; } @@ -12779,7 +13924,7 @@ var doric = (function (exports) { var find = /[!'()~]|%20/g; - var replace = { + var replacements = { '!': '%21', "'": '%27', '(': '%28', @@ -12789,25 +13934,25 @@ var doric = (function (exports) { }; var replacer = function (match) { - return replace[match]; + return replacements[match]; }; var serialize = function (it) { - return encodeURIComponent(it).replace(find, replacer); + return replace$1(encodeURIComponent$1(it), find, replacer); }; var parseSearchParams = function (result, query) { if (query) { - var attributes = query.split('&'); + var attributes = split$1(query, '&'); var index = 0; var attribute, entry; while (index < attributes.length) { attribute = attributes[index++]; if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize(entry.shift()), - value: deserialize(entry.join('=')) + entry = split$1(attribute, '='); + push$1(result, { + key: deserialize(shift$1(entry)), + value: deserialize(join$1(entry, '=')) }); } } @@ -12820,7 +13965,7 @@ var doric = (function (exports) { }; var validateArgumentsLength = function (passed, required) { - if (passed < required) { throw TypeError('Not enough arguments'); } + if (passed < required) { throw TypeError$2('Not enough arguments'); } }; var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { @@ -12842,7 +13987,7 @@ var doric = (function (exports) { // `URLSearchParams` constructor // https://url.spec.whatwg.org/#interface-urlsearchparams var URLSearchParamsConstructor = function URLSearchParams(/* init */) { - anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); + anInstance(this, URLSearchParamsPrototype); var init = arguments.length > 0 ? arguments[0] : undefined; var that = this; var entries = []; @@ -12858,22 +14003,25 @@ var doric = (function (exports) { if (init !== undefined) { if (isObject(init)) { iteratorMethod = getIteratorMethod(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); + if (iteratorMethod) { + iterator = getIterator(init, iteratorMethod); next = iterator.next; - while (!(step = next.call(iterator)).done) { + while (!(step = functionCall(next, iterator)).done) { entryIterator = getIterator(anObject(step.value)); entryNext = entryIterator.next; if ( - (first = entryNext.call(entryIterator)).done || - (second = entryNext.call(entryIterator)).done || - !entryNext.call(entryIterator).done - ) { throw TypeError('Expected sequence with length 2'); } - entries.push({ key: first.value + '', value: second.value + '' }); + (first = functionCall(entryNext, entryIterator)).done || + (second = functionCall(entryNext, entryIterator)).done || + !functionCall(entryNext, entryIterator).done + ) { throw TypeError$2('Expected sequence with length 2'); } + push$1(entries, { key: toString_1(first.value), value: toString_1(second.value) }); } - } else { for (key in init) { if (has$1(init, key)) { entries.push({ key: key, value: init[key] + '' }); } } } + } else { for (key in init) { if (hasOwnProperty_1(init, key)) { push$1(entries, { key: key, value: toString_1(init[key]) }); } } } } else { - parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); + parseSearchParams( + entries, + typeof init == 'string' ? charAt$1(init, 0) === '?' ? stringSlice$1(init, 1) : init : toString_1(init) + ); } } }; @@ -12886,7 +14034,7 @@ var doric = (function (exports) { append: function append(name, value) { validateArgumentsLength(arguments.length, 2); var state = getInternalParamsState(this); - state.entries.push({ key: name + '', value: value + '' }); + push$1(state.entries, { key: toString_1(name), value: toString_1(value) }); state.updateURL(); }, // `URLSearchParams.prototype.delete` method @@ -12895,10 +14043,10 @@ var doric = (function (exports) { validateArgumentsLength(arguments.length, 1); var state = getInternalParamsState(this); var entries = state.entries; - var key = name + ''; + var key = toString_1(name); var index = 0; while (index < entries.length) { - if (entries[index].key === key) { entries.splice(index, 1); } + if (entries[index].key === key) { splice(entries, index, 1); } else { index++; } } state.updateURL(); @@ -12908,7 +14056,7 @@ var doric = (function (exports) { get: function get(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; - var key = name + ''; + var key = toString_1(name); var index = 0; for (; index < entries.length; index++) { if (entries[index].key === key) { return entries[index].value; } @@ -12920,11 +14068,11 @@ var doric = (function (exports) { getAll: function getAll(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; - var key = name + ''; + var key = toString_1(name); var result = []; var index = 0; for (; index < entries.length; index++) { - if (entries[index].key === key) { result.push(entries[index].value); } + if (entries[index].key === key) { push$1(result, entries[index].value); } } return result; }, @@ -12933,7 +14081,7 @@ var doric = (function (exports) { has: function has(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; - var key = name + ''; + var key = toString_1(name); var index = 0; while (index < entries.length) { if (entries[index++].key === key) { return true; } @@ -12947,48 +14095,36 @@ var doric = (function (exports) { var state = getInternalParamsState(this); var entries = state.entries; var found = false; - var key = name + ''; - var val = value + ''; + var key = toString_1(name); + var val = toString_1(value); var index = 0; var entry; for (; index < entries.length; index++) { entry = entries[index]; if (entry.key === key) { - if (found) { entries.splice(index--, 1); } + if (found) { splice(entries, index--, 1); } else { found = true; entry.value = val; } } } - if (!found) { entries.push({ key: key, value: val }); } + if (!found) { push$1(entries, { key: key, value: val }); } state.updateURL(); }, // `URLSearchParams.prototype.sort` method // https://url.spec.whatwg.org/#dom-urlsearchparams-sort sort: function sort() { var state = getInternalParamsState(this); - var entries = state.entries; - // Array#sort is not stable in some engines - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) { entries.push(entry); } - } + arraySort(state.entries, function (a, b) { + return a.key > b.key ? 1 : -1; + }); state.updateURL(); }, // `URLSearchParams.prototype.forEach` method forEach: function forEach(callback /* , thisArg */) { var entries = getInternalParamsState(this).entries; - var boundFunction = functionBindContext(callback, arguments.length > 1 ? arguments[1] : undefined, 3); + var boundFunction = functionBindContext(callback, arguments.length > 1 ? arguments[1] : undefined); var index = 0; var entry; while (index < entries.length) { @@ -13011,7 +14147,7 @@ var doric = (function (exports) { }, { enumerable: true }); // `URLSearchParams.prototype[@@iterator]` method - redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); + redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); // `URLSearchParams.prototype.toString` method // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior @@ -13022,8 +14158,8 @@ var doric = (function (exports) { var entry; while (index < entries.length) { entry = entries[index++]; - result.push(serialize(entry.key) + '=' + serialize(entry.value)); - } return result.join('&'); + push$1(result, serialize(entry.key) + '=' + serialize(entry.value)); + } return join$1(result, '&'); }, { enumerable: true }); setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); @@ -13032,32 +14168,49 @@ var doric = (function (exports) { URLSearchParams: URLSearchParamsConstructor }); - // Wrap `fetch` for correct work with polyfilled `URLSearchParams` - // https://github.com/zloirock/core-js/issues/674 - if (!nativeUrl && typeof $fetch == 'function' && typeof Headers == 'function') { - _export({ global: true, enumerable: true, forced: true }, { - fetch: function fetch(input /* , init */) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject(init)) { - body = init.body; - if (classof(body) === URL_SEARCH_PARAMS) { - headers = init.headers ? new Headers(init.headers) : new Headers(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = objectCreate(init, { - body: createPropertyDescriptor(0, String(body)), - headers: createPropertyDescriptor(0, headers) - }); - } + // Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` + if (!nativeUrl && isCallable(Headers)) { + var headersHas = functionUncurryThis(HeadersPrototype.has); + var headersSet = functionUncurryThis(HeadersPrototype.set); + + var wrapRequestOptions = function (init) { + if (isObject(init)) { + var body = init.body; + var headers; + if (classof(body) === URL_SEARCH_PARAMS) { + headers = init.headers ? new Headers(init.headers) : new Headers(); + if (!headersHas(headers, 'content-type')) { + headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); } - args.push(init); - } return $fetch.apply(this, args); - } - }); + return objectCreate(init, { + body: createPropertyDescriptor(0, toString_1(body)), + headers: createPropertyDescriptor(0, headers) + }); + } + } return init; + }; + + if (isCallable(n$Fetch)) { + _export({ global: true, enumerable: true, forced: true }, { + fetch: function fetch(input /* , init */) { + return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + } + }); + } + + if (isCallable(N$Request)) { + var RequestConstructor = function Request(input /* , init */) { + anInstance(this, RequestPrototype); + return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); + }; + + RequestPrototype.constructor = RequestConstructor; + RequestConstructor.prototype = RequestPrototype; + + _export({ global: true, forced: true }, { + Request: RequestConstructor + }); + } } var web_urlSearchParams = { @@ -13077,51 +14230,71 @@ var doric = (function (exports) { + + + + var codeAt = stringMultibyte.codeAt; - var NativeURL = global_1.URL; - var URLSearchParams$1 = web_urlSearchParams.URLSearchParams; - var getInternalSearchParamsState = web_urlSearchParams.getState; + var setInternalState = internalState.set; var getInternalURLState = internalState.getterFor('URL'); + var URLSearchParams$1 = web_urlSearchParams.URLSearchParams; + var getInternalSearchParamsState = web_urlSearchParams.getState; + + var NativeURL = global_1.URL; + var TypeError$1 = global_1.TypeError; + var parseInt$1 = global_1.parseInt; var floor = Math.floor; var pow = Math.pow; + var charAt = functionUncurryThis(''.charAt); + var exec = functionUncurryThis(/./.exec); + var join = functionUncurryThis([].join); + var numberToString = functionUncurryThis(1.0.toString); + var pop = functionUncurryThis([].pop); + var push = functionUncurryThis([].push); + var replace = functionUncurryThis(''.replace); + var shift = functionUncurryThis([].shift); + var split = functionUncurryThis(''.split); + var stringSlice = functionUncurryThis(''.slice); + var toLowerCase = functionUncurryThis(''.toLowerCase); + var unshift = functionUncurryThis([].unshift); var INVALID_AUTHORITY = 'Invalid authority'; var INVALID_SCHEME = 'Invalid scheme'; var INVALID_HOST = 'Invalid host'; var INVALID_PORT = 'Invalid port'; - var ALPHA = /[A-Za-z]/; + var ALPHA = /[a-z]/i; // eslint-disable-next-line regexp/no-obscure-range -- safe - var ALPHANUMERIC = /[\d+-.A-Za-z]/; + var ALPHANUMERIC = /[\d+-.a-z]/i; var DIGIT = /\d/; - var HEX_START = /^(0x|0X)/; + var HEX_START = /^0x/i; var OCT = /^[0-7]+$/; var DEC = /^\d+$/; - var HEX = /^[\dA-Fa-f]+$/; - /* eslint-disable no-control-regex -- safe */ - var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:?@[\\]]/; - var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:?@[\\]]/; - var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; + var HEX = /^[\da-f]+$/i; + /* eslint-disable regexp/no-control-character -- safe */ + var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/; + var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/; + var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+|[\u0000-\u0020]+$/g; var TAB_AND_NEW_LINE = /[\t\n\r]/g; - /* eslint-enable no-control-regex -- safe */ + /* eslint-enable regexp/no-control-character -- safe */ var EOF; var parseHost = function (url, input) { var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') { return INVALID_HOST; } - result = parseIPv6(input.slice(1, -1)); + if (charAt(input, 0) == '[') { + if (charAt(input, input.length - 1) != ']') { return INVALID_HOST; } + result = parseIPv6(stringSlice(input, 1, -1)); if (!result) { return INVALID_HOST; } url.host = result; // opaque host } else if (!isSpecial(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) { return INVALID_HOST; } + if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) { return INVALID_HOST; } result = ''; codePoints = arrayFrom(input); for (index = 0; index < codePoints.length; index++) { @@ -13130,7 +14303,7 @@ var doric = (function (exports) { url.host = result; } else { input = stringPunycodeToAscii(input); - if (FORBIDDEN_HOST_CODE_POINT.test(input)) { return INVALID_HOST; } + if (exec(FORBIDDEN_HOST_CODE_POINT, input)) { return INVALID_HOST; } result = parseIPv4(input); if (result === null) { return INVALID_HOST; } url.host = result; @@ -13138,10 +14311,10 @@ var doric = (function (exports) { }; var parseIPv4 = function (input) { - var parts = input.split('.'); + var parts = split(input, '.'); var partsLength, numbers, index, part, radix, number, ipv4; if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); + parts.length--; } partsLength = parts.length; if (partsLength > 4) { return input; } @@ -13150,17 +14323,17 @@ var doric = (function (exports) { part = parts[index]; if (part == '') { return input; } radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); + if (part.length > 1 && charAt(part, 0) == '0') { + radix = exec(HEX_START, part) ? 16 : 8; + part = stringSlice(part, radix == 8 ? 1 : 2); } if (part === '') { number = 0; } else { - if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) { return input; } - number = parseInt(part, radix); + if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) { return input; } + number = parseInt$1(part, radix); } - numbers.push(number); + push(numbers, number); } for (index = 0; index < partsLength; index++) { number = numbers[index]; @@ -13168,7 +14341,7 @@ var doric = (function (exports) { if (number >= pow(256, 5 - partsLength)) { return null; } } else if (number > 255) { return null; } } - ipv4 = numbers.pop(); + ipv4 = pop(numbers); for (index = 0; index < numbers.length; index++) { ipv4 += numbers[index] * pow(256, 3 - index); } @@ -13183,19 +14356,19 @@ var doric = (function (exports) { var pointer = 0; var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - var char = function () { - return input.charAt(pointer); + var chr = function () { + return charAt(input, pointer); }; - if (char() == ':') { - if (input.charAt(1) != ':') { return; } + if (chr() == ':') { + if (charAt(input, 1) != ':') { return; } pointer += 2; pieceIndex++; compress = pieceIndex; } - while (char()) { + while (chr()) { if (pieceIndex == 8) { return; } - if (char() == ':') { + if (chr() == ':') { if (compress !== null) { return; } pointer++; pieceIndex++; @@ -13203,25 +14376,25 @@ var doric = (function (exports) { continue; } value = length = 0; - while (length < 4 && HEX.test(char())) { - value = value * 16 + parseInt(char(), 16); + while (length < 4 && exec(HEX, chr())) { + value = value * 16 + parseInt$1(chr(), 16); pointer++; length++; } - if (char() == '.') { + if (chr() == '.') { if (length == 0) { return; } pointer -= length; if (pieceIndex > 6) { return; } numbersSeen = 0; - while (char()) { + while (chr()) { ipv4Piece = null; if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) { pointer++; } + if (chr() == '.' && numbersSeen < 4) { pointer++; } else { return; } } - if (!DIGIT.test(char())) { return; } - while (DIGIT.test(char())) { - number = parseInt(char(), 10); + if (!exec(DIGIT, chr())) { return; } + while (exec(DIGIT, chr())) { + number = parseInt$1(chr(), 10); if (ipv4Piece === null) { ipv4Piece = number; } else if (ipv4Piece == 0) { return; } else { ipv4Piece = ipv4Piece * 10 + number; } @@ -13234,10 +14407,10 @@ var doric = (function (exports) { } if (numbersSeen != 4) { return; } break; - } else if (char() == ':') { + } else if (chr() == ':') { pointer++; - if (!char()) { return; } - } else if (char()) { return; } + if (!chr()) { return; } + } else if (chr()) { return; } address[pieceIndex++] = value; } if (compress !== null) { @@ -13284,9 +14457,9 @@ var doric = (function (exports) { if (typeof host == 'number') { result = []; for (index = 0; index < 4; index++) { - result.unshift(host % 256); + unshift(result, host % 256); host = floor(host / 256); - } return result.join('.'); + } return join(result, '.'); // ipv6 } else if (typeof host == 'object') { result = ''; @@ -13298,7 +14471,7 @@ var doric = (function (exports) { result += index ? ':' : '::'; ignore0 = true; } else { - result += host[index].toString(16); + result += numberToString(host[index], 16); if (index < 7) { result += ':'; } } } @@ -13317,9 +14490,9 @@ var doric = (function (exports) { '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 }); - var percentEncode = function (char, set) { - var code = codeAt(char, 0); - return code > 0x20 && code < 0x7F && !has$1(set, char) ? char : encodeURIComponent(char); + var percentEncode = function (chr, set) { + var code = codeAt(chr, 0); + return code > 0x20 && code < 0x7F && !hasOwnProperty_1(set, chr) ? chr : encodeURIComponent(chr); }; var specialSchemes = { @@ -13332,7 +14505,7 @@ var doric = (function (exports) { }; var isSpecial = function (url) { - return has$1(specialSchemes, url.scheme); + return hasOwnProperty_1(specialSchemes, url.scheme); }; var includesCredentials = function (url) { @@ -13345,15 +14518,15 @@ var doric = (function (exports) { var isWindowsDriveLetter = function (string, normalized) { var second; - return string.length == 2 && ALPHA.test(string.charAt(0)) - && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); + return string.length == 2 && exec(ALPHA, charAt(string, 0)) + && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|')); }; var startsWithWindowsDriveLetter = function (string) { var third; - return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && ( + return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && ( string.length == 2 || - ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') + ((third = charAt(string, 2)) === '/' || third === '\\' || third === '?' || third === '#') ); }; @@ -13361,16 +14534,16 @@ var doric = (function (exports) { var path = url.path; var pathSize = path.length; if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { - path.pop(); + path.length--; } }; var isSingleDot = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; + return segment === '.' || toLowerCase(segment) === '%2e'; }; var isDoubleDot = function (segment) { - segment = segment.toLowerCase(); + segment = toLowerCase(segment); return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; }; @@ -13405,7 +14578,7 @@ var doric = (function (exports) { var seenAt = false; var seenBracket = false; var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; + var codePoints, chr, bufferCodePoints, failure; if (!stateOverride) { url.scheme = ''; @@ -13417,19 +14590,19 @@ var doric = (function (exports) { url.query = null; url.fragment = null; url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); + input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); } - input = input.replace(TAB_AND_NEW_LINE, ''); + input = replace(input, TAB_AND_NEW_LINE, ''); codePoints = arrayFrom(input); while (pointer <= codePoints.length) { - char = codePoints[pointer]; + chr = codePoints[pointer]; switch (state) { case SCHEME_START: - if (char && ALPHA.test(char)) { - buffer += char.toLowerCase(); + if (chr && exec(ALPHA, chr)) { + buffer += toLowerCase(chr); state = SCHEME; } else if (!stateOverride) { state = NO_SCHEME; @@ -13438,11 +14611,11 @@ var doric = (function (exports) { break; case SCHEME: - if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { + if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) { + buffer += toLowerCase(chr); + } else if (chr == ':') { if (stateOverride && ( - (isSpecial(url) != has$1(specialSchemes, buffer)) || + (isSpecial(url) != hasOwnProperty_1(specialSchemes, buffer)) || (buffer == 'file' && (includesCredentials(url) || url.port !== null)) || (url.scheme == 'file' && !url.host) )) { return; } @@ -13463,7 +14636,7 @@ var doric = (function (exports) { pointer++; } else { url.cannotBeABaseURL = true; - url.path.push(''); + push(url.path, ''); state = CANNOT_BE_A_BASE_URL_PATH; } } else if (!stateOverride) { @@ -13475,10 +14648,10 @@ var doric = (function (exports) { break; case NO_SCHEME: - if (!base || (base.cannotBeABaseURL && char != '#')) { return INVALID_SCHEME; } - if (base.cannotBeABaseURL && char == '#') { + if (!base || (base.cannotBeABaseURL && chr != '#')) { return INVALID_SCHEME; } + if (base.cannotBeABaseURL && chr == '#') { url.scheme = base.scheme; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = base.query; url.fragment = ''; url.cannotBeABaseURL = true; @@ -13489,7 +14662,7 @@ var doric = (function (exports) { continue; case SPECIAL_RELATIVE_OR_AUTHORITY: - if (char == '/' && codePoints[pointer + 1] == '/') { + if (chr == '/' && codePoints[pointer + 1] == '/') { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; pointer++; } else { @@ -13498,7 +14671,7 @@ var doric = (function (exports) { } break; case PATH_OR_AUTHORITY: - if (char == '/') { + if (chr == '/') { state = AUTHORITY; break; } else { @@ -13508,29 +14681,29 @@ var doric = (function (exports) { case RELATIVE: url.scheme = base.scheme; - if (char == EOF) { + if (chr == EOF) { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = base.query; - } else if (char == '/' || (char == '\\' && isSpecial(url))) { + } else if (chr == '/' || (chr == '\\' && isSpecial(url))) { state = RELATIVE_SLASH; - } else if (char == '?') { + } else if (chr == '?') { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = ''; state = QUERY; - } else if (char == '#') { + } else if (chr == '#') { url.username = base.username; url.password = base.password; url.host = base.host; url.port = base.port; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = base.query; url.fragment = ''; state = FRAGMENT; @@ -13539,16 +14712,16 @@ var doric = (function (exports) { url.password = base.password; url.host = base.host; url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); + url.path = arraySlice$1(base.path); + url.path.length--; state = PATH; continue; } break; case RELATIVE_SLASH: - if (isSpecial(url) && (char == '/' || char == '\\')) { + if (isSpecial(url) && (chr == '/' || chr == '\\')) { state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (char == '/') { + } else if (chr == '/') { state = AUTHORITY; } else { url.username = base.username; @@ -13561,18 +14734,18 @@ var doric = (function (exports) { case SPECIAL_AUTHORITY_SLASHES: state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (char != '/' || buffer.charAt(pointer + 1) != '/') { continue; } + if (chr != '/' || charAt(buffer, pointer + 1) != '/') { continue; } pointer++; break; case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (char != '/' && char != '\\') { + if (chr != '/' && chr != '\\') { state = AUTHORITY; continue; } break; case AUTHORITY: - if (char == '@') { + if (chr == '@') { if (seenAt) { buffer = '%40' + buffer; } seenAt = true; bufferCodePoints = arrayFrom(buffer); @@ -13588,14 +14761,14 @@ var doric = (function (exports) { } buffer = ''; } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) + chr == EOF || chr == '/' || chr == '?' || chr == '#' || + (chr == '\\' && isSpecial(url)) ) { if (seenAt && buffer == '') { return INVALID_AUTHORITY; } pointer -= arrayFrom(buffer).length + 1; buffer = ''; state = HOST; - } else { buffer += char; } + } else { buffer += chr; } break; case HOST: @@ -13603,7 +14776,7 @@ var doric = (function (exports) { if (stateOverride && url.scheme == 'file') { state = FILE_HOST; continue; - } else if (char == ':' && !seenBracket) { + } else if (chr == ':' && !seenBracket) { if (buffer == '') { return INVALID_HOST; } failure = parseHost(url, buffer); if (failure) { return failure; } @@ -13611,8 +14784,8 @@ var doric = (function (exports) { state = PORT; if (stateOverride == HOSTNAME) { return; } } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) + chr == EOF || chr == '/' || chr == '?' || chr == '#' || + (chr == '\\' && isSpecial(url)) ) { if (isSpecial(url) && buffer == '') { return INVALID_HOST; } if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) { return; } @@ -13623,21 +14796,21 @@ var doric = (function (exports) { if (stateOverride) { return; } continue; } else { - if (char == '[') { seenBracket = true; } - else if (char == ']') { seenBracket = false; } - buffer += char; + if (chr == '[') { seenBracket = true; } + else if (chr == ']') { seenBracket = false; } + buffer += chr; } break; case PORT: - if (DIGIT.test(char)) { - buffer += char; + if (exec(DIGIT, chr)) { + buffer += chr; } else if ( - char == EOF || char == '/' || char == '?' || char == '#' || - (char == '\\' && isSpecial(url)) || + chr == EOF || chr == '/' || chr == '?' || chr == '#' || + (chr == '\\' && isSpecial(url)) || stateOverride ) { if (buffer != '') { - var port = parseInt(buffer, 10); + var port = parseInt$1(buffer, 10); if (port > 0xFFFF) { return INVALID_PORT; } url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port; buffer = ''; @@ -13650,27 +14823,27 @@ var doric = (function (exports) { case FILE: url.scheme = 'file'; - if (char == '/' || char == '\\') { state = FILE_SLASH; } + if (chr == '/' || chr == '\\') { state = FILE_SLASH; } else if (base && base.scheme == 'file') { - if (char == EOF) { + if (chr == EOF) { url.host = base.host; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = base.query; - } else if (char == '?') { + } else if (chr == '?') { url.host = base.host; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = ''; state = QUERY; - } else if (char == '#') { + } else if (chr == '#') { url.host = base.host; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); url.query = base.query; url.fragment = ''; state = FRAGMENT; } else { - if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { + if (!startsWithWindowsDriveLetter(join(arraySlice$1(codePoints, pointer), ''))) { url.host = base.host; - url.path = base.path.slice(); + url.path = arraySlice$1(base.path); shortenURLsPath(url); } state = PATH; @@ -13682,19 +14855,19 @@ var doric = (function (exports) { } break; case FILE_SLASH: - if (char == '/' || char == '\\') { + if (chr == '/' || chr == '\\') { state = FILE_HOST; break; } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter(base.path[0], true)) { url.path.push(base.path[0]); } + if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice$1(codePoints, pointer), ''))) { + if (isWindowsDriveLetter(base.path[0], true)) { push(url.path, base.path[0]); } else { url.host = base.host; } } state = PATH; continue; case FILE_HOST: - if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { + if (chr == EOF || chr == '/' || chr == '\\' || chr == '?' || chr == '#') { if (!stateOverride && isWindowsDriveLetter(buffer)) { state = PATH; } else if (buffer == '') { @@ -13709,86 +14882,86 @@ var doric = (function (exports) { buffer = ''; state = PATH_START; } continue; - } else { buffer += char; } + } else { buffer += chr; } break; case PATH_START: if (isSpecial(url)) { state = PATH; - if (char != '/' && char != '\\') { continue; } - } else if (!stateOverride && char == '?') { + if (chr != '/' && chr != '\\') { continue; } + } else if (!stateOverride && chr == '?') { url.query = ''; state = QUERY; - } else if (!stateOverride && char == '#') { + } else if (!stateOverride && chr == '#') { url.fragment = ''; state = FRAGMENT; - } else if (char != EOF) { + } else if (chr != EOF) { state = PATH; - if (char != '/') { continue; } + if (chr != '/') { continue; } } break; case PATH: if ( - char == EOF || char == '/' || - (char == '\\' && isSpecial(url)) || - (!stateOverride && (char == '?' || char == '#')) + chr == EOF || chr == '/' || + (chr == '\\' && isSpecial(url)) || + (!stateOverride && (chr == '?' || chr == '#')) ) { if (isDoubleDot(buffer)) { shortenURLsPath(url); - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); + if (chr != '/' && !(chr == '\\' && isSpecial(url))) { + push(url.path, ''); } } else if (isSingleDot(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); + if (chr != '/' && !(chr == '\\' && isSpecial(url))) { + push(url.path, ''); } } else { if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { if (url.host) { url.host = ''; } - buffer = buffer.charAt(0) + ':'; // normalize windows drive letter + buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter } - url.path.push(buffer); + push(url.path, buffer); } buffer = ''; - if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { + if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) { while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); + shift(url.path); } } - if (char == '?') { + if (chr == '?') { url.query = ''; state = QUERY; - } else if (char == '#') { + } else if (chr == '#') { url.fragment = ''; state = FRAGMENT; } } else { - buffer += percentEncode(char, pathPercentEncodeSet); + buffer += percentEncode(chr, pathPercentEncodeSet); } break; case CANNOT_BE_A_BASE_URL_PATH: - if (char == '?') { + if (chr == '?') { url.query = ''; state = QUERY; - } else if (char == '#') { + } else if (chr == '#') { url.fragment = ''; state = FRAGMENT; - } else if (char != EOF) { - url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); + } else if (chr != EOF) { + url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet); } break; case QUERY: - if (!stateOverride && char == '#') { + if (!stateOverride && chr == '#') { url.fragment = ''; state = FRAGMENT; - } else if (char != EOF) { - if (char == "'" && isSpecial(url)) { url.query += '%27'; } - else if (char == '#') { url.query += '%23'; } - else { url.query += percentEncode(char, C0ControlPercentEncodeSet); } + } else if (chr != EOF) { + if (chr == "'" && isSpecial(url)) { url.query += '%27'; } + else if (chr == '#') { url.query += '%23'; } + else { url.query += percentEncode(chr, C0ControlPercentEncodeSet); } } break; case FRAGMENT: - if (char != EOF) { url.fragment += percentEncode(char, fragmentPercentEncodeSet); } + if (chr != EOF) { url.fragment += percentEncode(chr, fragmentPercentEncodeSet); } break; } @@ -13799,39 +14972,40 @@ var doric = (function (exports) { // `URL` constructor // https://url.spec.whatwg.org/#url-class var URLConstructor = function URL(url /* , base */) { - var that = anInstance(this, URLConstructor, 'URL'); + var that = anInstance(this, URLPrototype); var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); + var urlString = toString_1(url); var state = setInternalState(that, { type: 'URL' }); var baseState, failure; if (base !== undefined) { - if (base instanceof URLConstructor) { baseState = getInternalURLState(base); } - else { - failure = parseURL(baseState = {}, String(base)); - if (failure) { throw TypeError(failure); } + try { + baseState = getInternalURLState(base); + } catch (error) { + failure = parseURL(baseState = {}, toString_1(base)); + if (failure) { throw TypeError$1(failure); } } } failure = parseURL(state, urlString, null, baseState); - if (failure) { throw TypeError(failure); } + if (failure) { throw TypeError$1(failure); } var searchParams = state.searchParams = new URLSearchParams$1(); var searchParamsState = getInternalSearchParamsState(searchParams); searchParamsState.updateSearchParams(state.query); searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; + state.query = toString_1(searchParams) || null; }; if (!descriptors) { - that.href = serializeURL.call(that); - that.origin = getOrigin.call(that); - that.protocol = getProtocol.call(that); - that.username = getUsername.call(that); - that.password = getPassword.call(that); - that.host = getHost.call(that); - that.hostname = getHostname.call(that); - that.port = getPort.call(that); - that.pathname = getPathname.call(that); - that.search = getSearch.call(that); - that.searchParams = getSearchParams.call(that); - that.hash = getHash.call(that); + that.href = functionCall(serializeURL, that); + that.origin = functionCall(getOrigin, that); + that.protocol = functionCall(getProtocol, that); + that.username = functionCall(getUsername, that); + that.password = functionCall(getPassword, that); + that.host = functionCall(getHost, that); + that.hostname = functionCall(getHostname, that); + that.port = functionCall(getPort, that); + that.pathname = functionCall(getPathname, that); + that.search = functionCall(getSearch, that); + that.searchParams = functionCall(getSearchParams, that); + that.hash = functionCall(getHash, that); } }; @@ -13856,7 +15030,7 @@ var doric = (function (exports) { output += serializeHost(host); if (port !== null) { output += ':' + port; } } else if (scheme == 'file') { output += '//'; } - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; + output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; if (query !== null) { output += '?' + query; } if (fragment !== null) { output += '#' + fragment; } return output; @@ -13903,13 +15077,13 @@ var doric = (function (exports) { var getPort = function () { var port = getInternalURLState(this).port; - return port === null ? '' : String(port); + return port === null ? '' : toString_1(port); }; var getPathname = function () { var url = getInternalURLState(this); var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; + return url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : ''; }; var getSearch = function () { @@ -13936,9 +15110,9 @@ var doric = (function (exports) { // https://url.spec.whatwg.org/#dom-url-href href: accessorDescriptor(serializeURL, function (href) { var url = getInternalURLState(this); - var urlString = String(href); + var urlString = toString_1(href); var failure = parseURL(url, urlString); - if (failure) { throw TypeError(failure); } + if (failure) { throw TypeError$1(failure); } getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); }), // `URL.prototype.origin` getter @@ -13948,13 +15122,13 @@ var doric = (function (exports) { // https://url.spec.whatwg.org/#dom-url-protocol protocol: accessorDescriptor(getProtocol, function (protocol) { var url = getInternalURLState(this); - parseURL(url, String(protocol) + ':', SCHEME_START); + parseURL(url, toString_1(protocol) + ':', SCHEME_START); }), // `URL.prototype.username` accessors pair // https://url.spec.whatwg.org/#dom-url-username username: accessorDescriptor(getUsername, function (username) { var url = getInternalURLState(this); - var codePoints = arrayFrom(String(username)); + var codePoints = arrayFrom(toString_1(username)); if (cannotHaveUsernamePasswordPort(url)) { return; } url.username = ''; for (var i = 0; i < codePoints.length; i++) { @@ -13965,7 +15139,7 @@ var doric = (function (exports) { // https://url.spec.whatwg.org/#dom-url-password password: accessorDescriptor(getPassword, function (password) { var url = getInternalURLState(this); - var codePoints = arrayFrom(String(password)); + var codePoints = arrayFrom(toString_1(password)); if (cannotHaveUsernamePasswordPort(url)) { return; } url.password = ''; for (var i = 0; i < codePoints.length; i++) { @@ -13977,21 +15151,21 @@ var doric = (function (exports) { host: accessorDescriptor(getHost, function (host) { var url = getInternalURLState(this); if (url.cannotBeABaseURL) { return; } - parseURL(url, String(host), HOST); + parseURL(url, toString_1(host), HOST); }), // `URL.prototype.hostname` accessors pair // https://url.spec.whatwg.org/#dom-url-hostname hostname: accessorDescriptor(getHostname, function (hostname) { var url = getInternalURLState(this); if (url.cannotBeABaseURL) { return; } - parseURL(url, String(hostname), HOSTNAME); + parseURL(url, toString_1(hostname), HOSTNAME); }), // `URL.prototype.port` accessors pair // https://url.spec.whatwg.org/#dom-url-port port: accessorDescriptor(getPort, function (port) { var url = getInternalURLState(this); if (cannotHaveUsernamePasswordPort(url)) { return; } - port = String(port); + port = toString_1(port); if (port == '') { url.port = null; } else { parseURL(url, port, PORT); } }), @@ -14001,17 +15175,17 @@ var doric = (function (exports) { var url = getInternalURLState(this); if (url.cannotBeABaseURL) { return; } url.path = []; - parseURL(url, pathname + '', PATH_START); + parseURL(url, toString_1(pathname), PATH_START); }), // `URL.prototype.search` accessors pair // https://url.spec.whatwg.org/#dom-url-search search: accessorDescriptor(getSearch, function (search) { var url = getInternalURLState(this); - search = String(search); + search = toString_1(search); if (search == '') { url.query = null; } else { - if ('?' == search.charAt(0)) { search = search.slice(1); } + if ('?' == charAt(search, 0)) { search = stringSlice(search, 1); } url.query = ''; parseURL(url, search, QUERY); } @@ -14024,12 +15198,12 @@ var doric = (function (exports) { // https://url.spec.whatwg.org/#dom-url-hash hash: accessorDescriptor(getHash, function (hash) { var url = getInternalURLState(this); - hash = String(hash); + hash = toString_1(hash); if (hash == '') { url.fragment = null; return; } - if ('#' == hash.charAt(0)) { hash = hash.slice(1); } + if ('#' == charAt(hash, 0)) { hash = stringSlice(hash, 1); } url.fragment = ''; parseURL(url, hash, FRAGMENT); }) @@ -14039,13 +15213,13 @@ var doric = (function (exports) { // `URL.prototype.toJSON` method // https://url.spec.whatwg.org/#dom-url-tojson redefine(URLPrototype, 'toJSON', function toJSON() { - return serializeURL.call(this); + return functionCall(serializeURL, this); }, { enumerable: true }); // `URL.prototype.toString` method // https://url.spec.whatwg.org/#URL-stringification-behavior redefine(URLPrototype, 'toString', function toString() { - return serializeURL.call(this); + return functionCall(serializeURL, this); }, { enumerable: true }); if (NativeURL) { @@ -14053,16 +15227,10 @@ var doric = (function (exports) { var nativeRevokeObjectURL = NativeURL.revokeObjectURL; // `URL.createObjectURL` method // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeCreateObjectURL) { redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL.apply(NativeURL, arguments); - }); } + if (nativeCreateObjectURL) { redefine(URLConstructor, 'createObjectURL', functionBindContext(nativeCreateObjectURL, NativeURL)); } // `URL.revokeObjectURL` method // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL - // eslint-disable-next-line no-unused-vars -- required for `.length` - if (nativeRevokeObjectURL) { redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL.apply(NativeURL, arguments); - }); } + if (nativeRevokeObjectURL) { redefine(URLConstructor, 'revokeObjectURL', functionBindContext(nativeRevokeObjectURL, NativeURL)); } } setToStringTag(URLConstructor, 'URL'); @@ -14075,7 +15243,7 @@ var doric = (function (exports) { // https://url.spec.whatwg.org/#dom-url-tojson _export({ target: 'URL', proto: true, enumerable: true }, { toJSON: function toJSON() { - return URL.prototype.toString.call(this); + return functionCall(URL.prototype.toString, this); } }); @@ -14160,4 +15328,4 @@ var doric = (function (exports) { return exports; -}({})); +})({}); diff --git a/doric-js/bundle/doric-sandbox.js b/doric-js/bundle/doric-sandbox.js index 6ce71e50..6a105ae5 100644 --- a/doric-js/bundle/doric-sandbox.js +++ b/doric-js/bundle/doric-sandbox.js @@ -1565,4 +1565,4 @@ var doric = (function (exports) { return exports; -}({})); +})({}); diff --git a/doric-js/bundle/doric-vm.js b/doric-js/bundle/doric-vm.js index 360bb3a3..1e8405c7 100644 --- a/doric-js/bundle/doric-vm.js +++ b/doric-js/bundle/doric-vm.js @@ -4913,7 +4913,7 @@ function initNativeEnvironment(source) { return __awaiter(this, void 0, void 0, function* () { // dev kit client return new Promise((resolve, reject) => { - const ws = new WebSocket__default['default']('ws://localhost:7777') + const ws = new WebSocket__default["default"]('ws://localhost:7777') .on('open', () => { console.log('Connectted Devkit on port', '7777'); ws.send(JSON.stringify({ @@ -5049,7 +5049,7 @@ global$1.Entry = function () { Reflect.apply(jsObtainEntry(contextId), doric, args); }); if (entryHooks.length <= 1) { - const source = path__default['default'].basename(jsFile); + const source = path__default["default"].basename(jsFile); console.log(`Debugging ${source}`); initNativeEnvironment(source).then(ret => { contextId = ret; diff --git a/doric-js/package.json b/doric-js/package.json index 20abb011..40f4bcc2 100644 --- a/doric-js/package.json +++ b/doric-js/package.json @@ -23,11 +23,6 @@ }, "homepage": "https://github.com/doric-pub/doric#readme", "dependencies": { - "@types/ws": "^7.2.6", - "core-js": "^3.9.1", - "proxy-polyfill": "^0.3.2", - "reflect-metadata": "^0.1.13", - "rollup": "^2.40.0", "typescript": "^4.2.2", "ws": "^7.4.3" }, @@ -35,6 +30,11 @@ "registry": "https://registry.npmjs.org" }, "devDependencies": { + "@types/ws": "^7.2.6", + "core-js": "^3.9.1", + "proxy-polyfill": "^0.3.2", + "reflect-metadata": "^0.1.13", + "rollup": "^2.40.0", "dts-bundle": "^0.7.3", "@rollup/plugin-buble": "^0.21.3", "@rollup/plugin-commonjs": "^14.0.0", diff --git a/doric-web/dist/index.js b/doric-web/dist/index.js index 2dd326d3..4254d52c 100644 --- a/doric-web/dist/index.js +++ b/doric-web/dist/index.js @@ -1567,7 +1567,7 @@ var doric = (function (exports) { return exports; -}({})); +})({}); /**--------SandBox--------*/ diff --git a/doric-web/package.json b/doric-web/package.json index 8607bdff..be2e1a43 100644 --- a/doric-web/package.json +++ b/doric-web/package.json @@ -19,19 +19,22 @@ }, "homepage": "https://github.com/doric-pub/doric#readme", "dependencies": { - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-node-resolve": "^8.4.0", "axios": ">=0.21.1", - "doric": "file:../doric-js", - "rollup": "^2.24.0", - "smoothscroll-polyfill": "^0.4.4", - "typescript": "^4.2.2" + "smoothscroll-polyfill": "^0.4.4" }, "publishConfig": { "registry": "https://registry.npmjs.org" }, + "peerDependencies": { + "doric": ">=0.9.0" + }, "devDependencies": { - "@types/smoothscroll-polyfill": "^0.3.1" + "typescript": "^4.2.2", + "rollup": "^2.24.0", + "doric": "file:../doric-js", + "@types/smoothscroll-polyfill": "^0.3.1", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^8.4.0" } }