core-js 3.17.2 → 3.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configurator.js +7 -3
- package/es/promise/all-settled.js +2 -1
- package/es/promise/any.js +2 -1
- package/features/array/from-async.js +8 -0
- package/features/array/index.js +2 -0
- package/features/index.js +2 -0
- package/features/map/from.js +2 -1
- package/features/map/group-by.js +2 -1
- package/features/map/key-by.js +2 -1
- package/features/map/of.js +2 -1
- package/features/promise/try.js +2 -1
- package/features/set/from.js +2 -1
- package/features/set/of.js +2 -1
- package/features/typed-array/from-async.js +1 -0
- package/features/typed-array/index.js +2 -0
- package/features/typed-array/methods.js +2 -0
- package/features/weak-map/from.js +2 -1
- package/features/weak-map/of.js +2 -1
- package/features/weak-set/from.js +2 -1
- package/features/weak-set/of.js +2 -1
- package/internals/a-callable.js +8 -0
- package/internals/a-constructor.js +8 -0
- package/internals/a-possible-prototype.js +4 -5
- package/internals/an-instance.js +2 -3
- package/internals/an-object.js +4 -4
- package/internals/array-buffer-view-core.js +13 -12
- package/internals/array-buffer.js +9 -3
- package/internals/array-copy-within.js +2 -2
- package/internals/array-fill.js +2 -2
- package/internals/array-from-async.js +36 -0
- package/internals/array-from.js +8 -7
- package/internals/array-group-by.js +2 -2
- package/internals/array-includes.js +2 -2
- package/internals/array-iteration-from-last.js +2 -2
- package/internals/array-iteration.js +2 -2
- package/internals/array-last-index-of.js +4 -4
- package/internals/array-reduce.js +4 -4
- package/internals/array-species-constructor.js +3 -2
- package/internals/array-unique-by.js +5 -5
- package/internals/async-from-sync-iterator.js +4 -4
- package/internals/async-iterator-create-proxy.js +7 -6
- package/internals/async-iterator-iteration.js +27 -15
- package/internals/async-iterator-prototype.js +16 -16
- package/internals/classof.js +2 -1
- package/internals/collection-add-all.js +2 -2
- package/internals/collection-delete-all.js +2 -2
- package/internals/collection-from.js +4 -3
- package/internals/collection-weak.js +3 -3
- package/internals/collection.js +2 -1
- package/internals/copy-constructor-properties.js +2 -2
- package/internals/define-iterator.js +21 -13
- package/internals/define-well-known-symbol.js +2 -2
- package/internals/dom-token-list-prototype.js +7 -0
- package/internals/export.js +1 -0
- package/internals/flatten-into-array.js +4 -3
- package/internals/function-bind-context.js +2 -2
- package/internals/function-bind.js +2 -2
- package/internals/function-name.js +17 -0
- package/internals/get-async-iterator.js +2 -5
- package/internals/get-built-in.js +3 -2
- package/internals/get-iterator-method.js +3 -2
- package/internals/get-iterator.js +5 -5
- package/internals/get-method.js +4 -3
- package/internals/{has.js → has-own-property.js} +2 -0
- package/internals/inherit-if-required.js +2 -1
- package/internals/inspect-source.js +2 -1
- package/internals/install-error-cause.js +10 -0
- package/internals/internal-metadata.js +4 -4
- package/internals/internal-state.js +4 -4
- package/internals/is-array.js +2 -2
- package/internals/is-callable.js +5 -0
- package/internals/is-constructor.js +41 -0
- package/internals/is-data-descriptor.js +2 -2
- package/internals/is-forced.js +2 -1
- package/internals/is-integral-number.js +10 -0
- package/internals/is-object.js +3 -1
- package/internals/is-symbol.js +2 -1
- package/internals/iterate.js +3 -3
- package/internals/iterator-close.js +3 -2
- package/internals/iterator-create-proxy.js +10 -9
- package/internals/iterators-core.js +8 -6
- package/internals/length-of-array-like.js +7 -0
- package/internals/map-upsert.js +4 -3
- package/internals/native-weak-map.js +2 -1
- package/internals/new-promise-capability.js +3 -3
- package/internals/number-parse-float.js +6 -1
- package/internals/number-parse-int.js +6 -1
- package/internals/object-get-own-property-descriptor.js +2 -2
- package/internals/object-get-prototype-of.js +8 -6
- package/internals/object-iterator.js +2 -2
- package/internals/object-keys-internal.js +3 -3
- package/internals/ordinary-to-primitive.js +4 -3
- package/internals/redefine.js +12 -6
- package/internals/regexp-exec-abstract.js +8 -13
- package/internals/regexp-unsupported-dot-all.js +1 -1
- package/internals/regexp-unsupported-ncg.js +1 -1
- package/internals/set-to-string-tag.js +2 -2
- package/internals/shared.js +1 -1
- package/internals/species-constructor.js +2 -2
- package/internals/string-multibyte.js +2 -3
- package/internals/string-pad-webkit-bug.js +0 -1
- package/internals/string-pad.js +1 -1
- package/internals/string-repeat.js +2 -2
- package/internals/string-trim-forced.js +4 -1
- package/internals/task.js +3 -2
- package/internals/to-absolute-index.js +2 -2
- package/internals/to-index.js +2 -2
- package/internals/to-integer-or-infinity.js +10 -0
- package/internals/to-length.js +2 -2
- package/internals/to-positive-integer.js +2 -2
- package/internals/to-primitive.js +3 -2
- package/internals/to-string.js +2 -2
- package/internals/try-to-string.js +7 -0
- package/internals/typed-array-constructor.js +8 -8
- package/internals/typed-array-from.js +6 -4
- package/internals/well-known-symbol.js +3 -3
- package/modules/es.aggregate-error.js +5 -2
- package/modules/es.array.at.js +4 -4
- package/modules/es.array.concat.js +2 -2
- package/modules/es.array.flat-map.js +4 -4
- package/modules/es.array.flat.js +4 -4
- package/modules/es.array.of.js +2 -1
- package/modules/es.array.slice.js +5 -4
- package/modules/es.array.sort.js +4 -4
- package/modules/es.array.splice.js +4 -4
- package/modules/es.date.set-year.js +2 -2
- package/modules/es.date.to-primitive.js +2 -2
- package/modules/es.function.has-instance.js +2 -1
- package/modules/es.function.name.js +2 -1
- package/modules/es.number.constructor.js +15 -14
- package/modules/es.number.is-integer.js +2 -2
- package/modules/es.number.is-safe-integer.js +2 -2
- package/modules/es.number.to-fixed.js +2 -2
- package/modules/es.object.define-getter.js +2 -2
- package/modules/es.object.define-setter.js +2 -2
- package/modules/es.object.has-own.js +1 -1
- package/modules/es.parse-float.js +3 -3
- package/modules/es.parse-int.js +3 -3
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +2 -2
- package/modules/es.promise.finally.js +3 -2
- package/modules/es.promise.js +10 -9
- package/modules/es.reflect.apply.js +2 -2
- package/modules/es.reflect.construct.js +3 -3
- package/modules/es.regexp.constructor.js +2 -2
- package/modules/es.regexp.test.js +4 -4
- package/modules/es.regexp.to-string.js +2 -1
- package/modules/es.string.at-alternative.js +3 -4
- package/modules/es.string.ends-with.js +1 -1
- package/modules/es.string.match-all.js +6 -16
- package/modules/es.string.match.js +3 -2
- package/modules/es.string.raw.js +12 -6
- package/modules/es.string.replace-all.js +5 -3
- package/modules/es.string.replace.js +7 -5
- package/modules/es.string.search.js +3 -2
- package/modules/es.string.split.js +3 -2
- package/modules/es.string.substr.js +7 -4
- package/modules/es.string.trim-end.js +1 -1
- package/modules/es.string.trim-start.js +1 -1
- package/modules/es.symbol.description.js +4 -3
- package/modules/es.symbol.js +20 -16
- package/modules/es.typed-array.at.js +4 -4
- package/modules/es.typed-array.iterator.js +4 -4
- package/modules/es.typed-array.set.js +2 -2
- package/modules/es.typed-array.sort.js +4 -4
- package/modules/esnext.aggregate-error.js +1 -1
- package/modules/esnext.array.from-async.js +8 -0
- package/modules/esnext.array.last-index.js +2 -2
- package/modules/esnext.array.last-item.js +3 -3
- package/modules/esnext.async-iterator.constructor.js +3 -3
- package/modules/esnext.async-iterator.filter.js +2 -2
- package/modules/esnext.async-iterator.flat-map.js +3 -3
- package/modules/esnext.async-iterator.from.js +7 -9
- package/modules/esnext.async-iterator.map.js +2 -2
- package/modules/esnext.async-iterator.reduce.js +3 -3
- package/modules/esnext.async-iterator.to-array.js +1 -1
- package/modules/esnext.global-this.js +1 -1
- package/modules/esnext.iterator.constructor.js +5 -12
- package/modules/esnext.iterator.every.js +2 -2
- package/modules/esnext.iterator.filter.js +2 -2
- package/modules/esnext.iterator.find.js +2 -2
- package/modules/esnext.iterator.flat-map.js +4 -4
- package/modules/esnext.iterator.from.js +5 -7
- package/modules/esnext.iterator.map.js +2 -2
- package/modules/esnext.iterator.reduce.js +2 -2
- package/modules/esnext.iterator.some.js +2 -2
- package/modules/esnext.map.filter.js +2 -2
- package/modules/esnext.map.group-by.js +9 -7
- package/modules/esnext.map.key-by.js +3 -3
- package/modules/esnext.map.key-of.js +1 -1
- package/modules/esnext.map.map-keys.js +2 -2
- package/modules/esnext.map.map-values.js +2 -2
- package/modules/esnext.map.merge.js +2 -2
- package/modules/esnext.map.reduce.js +2 -2
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.update.js +3 -3
- package/modules/esnext.number.from-string.js +2 -2
- package/modules/esnext.observable.js +16 -14
- package/modules/esnext.promise.all-settled.js +1 -1
- package/modules/esnext.promise.any.js +1 -1
- package/modules/esnext.set.difference.js +2 -2
- package/modules/esnext.set.filter.js +2 -2
- package/modules/esnext.set.intersection.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +2 -2
- package/modules/esnext.set.is-subset-of.js +4 -3
- package/modules/esnext.set.is-superset-of.js +2 -2
- package/modules/esnext.set.map.js +2 -2
- package/modules/esnext.set.reduce.js +2 -2
- package/modules/esnext.set.symmetric-difference.js +3 -3
- package/modules/esnext.set.union.js +2 -2
- package/modules/esnext.string.match-all.js +1 -1
- package/modules/esnext.string.replace-all.js +1 -1
- package/modules/esnext.typed-array.from-async.js +26 -0
- package/modules/web.dom-collections.for-each.js +10 -3
- package/modules/web.dom-collections.iterator.js +8 -3
- package/modules/web.timers.js +2 -1
- package/modules/web.url-search-params.js +7 -6
- package/modules/web.url.js +6 -6
- package/package.json +2 -2
- package/postinstall.js +1 -1
- package/proposals/array-from-async.js +3 -0
- package/stage/1.js +1 -0
- package/internals/a-function.js +0 -5
- package/internals/is-integer.js +0 -9
- package/internals/to-integer.js +0 -8
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
2
|
-
var aFunction = require('../internals/a-function');
|
|
3
2
|
var anObject = require('../internals/an-object');
|
|
4
3
|
var getIterator = require('../internals/get-iterator');
|
|
5
4
|
var getMethod = require('../internals/get-method');
|
|
@@ -8,8 +7,6 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
8
7
|
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
9
8
|
|
|
10
9
|
module.exports = function (it, usingIterator) {
|
|
11
|
-
var method = arguments.length < 2 ? getMethod(it
|
|
12
|
-
|
|
13
|
-
return new AsyncFromSyncIterator(getIterator(it));
|
|
14
|
-
} return anObject(aFunction(method).call(it));
|
|
10
|
+
var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;
|
|
11
|
+
return method ? anObject(method.call(it)) : new AsyncFromSyncIterator(getIterator(it));
|
|
15
12
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
|
|
3
|
-
var aFunction = function (
|
|
4
|
-
return
|
|
4
|
+
var aFunction = function (argument) {
|
|
5
|
+
return isCallable(argument) ? argument : undefined;
|
|
5
6
|
};
|
|
6
7
|
|
|
7
8
|
module.exports = function (namespace, method) {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
var classof = require('../internals/classof');
|
|
2
|
+
var getMethod = require('../internals/get-method');
|
|
2
3
|
var Iterators = require('../internals/iterators');
|
|
3
4
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
5
|
|
|
5
6
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
6
7
|
|
|
7
8
|
module.exports = function (it) {
|
|
8
|
-
if (it != undefined) return it
|
|
9
|
-
|| it
|
|
9
|
+
if (it != undefined) return getMethod(it, ITERATOR)
|
|
10
|
+
|| getMethod(it, '@@iterator')
|
|
10
11
|
|| Iterators[classof(it)];
|
|
11
12
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
var aCallable = require('../internals/a-callable');
|
|
1
2
|
var anObject = require('../internals/an-object');
|
|
2
3
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
3
4
|
|
|
4
|
-
module.exports = function (
|
|
5
|
-
var iteratorMethod = arguments.length < 2 ? getIteratorMethod(
|
|
6
|
-
if (
|
|
7
|
-
|
|
8
|
-
} return anObject(iteratorMethod.call(it));
|
|
5
|
+
module.exports = function (argument, usingIterator) {
|
|
6
|
+
var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
|
|
7
|
+
if (aCallable(iteratorMethod)) return anObject(iteratorMethod.call(argument));
|
|
8
|
+
throw TypeError(String(argument) + ' is not iterable');
|
|
9
9
|
};
|
package/internals/get-method.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
var
|
|
1
|
+
var aCallable = require('../internals/a-callable');
|
|
2
2
|
|
|
3
3
|
// `GetMethod` abstract operation
|
|
4
4
|
// https://tc39.es/ecma262/#sec-getmethod
|
|
5
|
-
module.exports = function (
|
|
6
|
-
|
|
5
|
+
module.exports = function (V, P) {
|
|
6
|
+
var func = V[P];
|
|
7
|
+
return func == null ? undefined : aCallable(func);
|
|
7
8
|
};
|
|
@@ -2,6 +2,8 @@ var toObject = require('../internals/to-object');
|
|
|
2
2
|
|
|
3
3
|
var hasOwnProperty = {}.hasOwnProperty;
|
|
4
4
|
|
|
5
|
+
// `HasOwnProperty` abstract operation
|
|
6
|
+
// https://tc39.es/ecma262/#sec-hasownproperty
|
|
5
7
|
module.exports = Object.hasOwn || function hasOwn(it, key) {
|
|
6
8
|
return hasOwnProperty.call(toObject(it), key);
|
|
7
9
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
1
2
|
var isObject = require('../internals/is-object');
|
|
2
3
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
3
4
|
|
|
@@ -8,7 +9,7 @@ module.exports = function ($this, dummy, Wrapper) {
|
|
|
8
9
|
// it can work only with native `setPrototypeOf`
|
|
9
10
|
setPrototypeOf &&
|
|
10
11
|
// we haven't completely correct pre-ES6 way for getting `new.target`, so use this
|
|
11
|
-
|
|
12
|
+
isCallable(NewTarget = dummy.constructor) &&
|
|
12
13
|
NewTarget !== Wrapper &&
|
|
13
14
|
isObject(NewTargetPrototype = NewTarget.prototype) &&
|
|
14
15
|
NewTargetPrototype !== Wrapper.prototype
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
1
2
|
var store = require('../internals/shared-store');
|
|
2
3
|
|
|
3
4
|
var functionToString = Function.toString;
|
|
4
5
|
|
|
5
6
|
// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
|
|
6
|
-
if (
|
|
7
|
+
if (!isCallable(store.inspectSource)) {
|
|
7
8
|
store.inspectSource = function (it) {
|
|
8
9
|
return functionToString.call(it);
|
|
9
10
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var isObject = require('../internals/is-object');
|
|
2
|
+
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
3
|
+
|
|
4
|
+
// `InstallErrorCause` abstract operation
|
|
5
|
+
// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause
|
|
6
|
+
module.exports = function (O, options) {
|
|
7
|
+
if (isObject(options) && 'cause' in options) {
|
|
8
|
+
createNonEnumerableProperty(O, 'cause', O.cause);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
3
3
|
var isObject = require('../internals/is-object');
|
|
4
|
-
var
|
|
4
|
+
var hasOwn = require('../internals/has-own-property');
|
|
5
5
|
var defineProperty = require('../internals/object-define-property').f;
|
|
6
6
|
var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');
|
|
7
7
|
var getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');
|
|
@@ -27,7 +27,7 @@ var setMetadata = function (it) {
|
|
|
27
27
|
var fastKey = function (it, create) {
|
|
28
28
|
// return a primitive with prefix
|
|
29
29
|
if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
|
|
30
|
-
if (!
|
|
30
|
+
if (!hasOwn(it, METADATA)) {
|
|
31
31
|
// can't set metadata to uncaught frozen object
|
|
32
32
|
if (!isExtensible(it)) return 'F';
|
|
33
33
|
// not necessary to add metadata
|
|
@@ -39,7 +39,7 @@ var fastKey = function (it, create) {
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
var getWeakData = function (it, create) {
|
|
42
|
-
if (!
|
|
42
|
+
if (!hasOwn(it, METADATA)) {
|
|
43
43
|
// can't set metadata to uncaught frozen object
|
|
44
44
|
if (!isExtensible(it)) return true;
|
|
45
45
|
// not necessary to add metadata
|
|
@@ -52,7 +52,7 @@ var getWeakData = function (it, create) {
|
|
|
52
52
|
|
|
53
53
|
// add metadata on freeze-family methods calling
|
|
54
54
|
var onFreeze = function (it) {
|
|
55
|
-
if (FREEZING && REQUIRED && isExtensible(it) && !
|
|
55
|
+
if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);
|
|
56
56
|
return it;
|
|
57
57
|
};
|
|
58
58
|
|
|
@@ -2,7 +2,7 @@ var NATIVE_WEAK_MAP = require('../internals/native-weak-map');
|
|
|
2
2
|
var global = require('../internals/global');
|
|
3
3
|
var isObject = require('../internals/is-object');
|
|
4
4
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
5
|
-
var
|
|
5
|
+
var hasOwn = require('../internals/has-own-property');
|
|
6
6
|
var shared = require('../internals/shared-store');
|
|
7
7
|
var sharedKey = require('../internals/shared-key');
|
|
8
8
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
@@ -45,16 +45,16 @@ if (NATIVE_WEAK_MAP || shared.state) {
|
|
|
45
45
|
var STATE = sharedKey('state');
|
|
46
46
|
hiddenKeys[STATE] = true;
|
|
47
47
|
set = function (it, metadata) {
|
|
48
|
-
if (
|
|
48
|
+
if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
|
|
49
49
|
metadata.facade = it;
|
|
50
50
|
createNonEnumerableProperty(it, STATE, metadata);
|
|
51
51
|
return metadata;
|
|
52
52
|
};
|
|
53
53
|
get = function (it) {
|
|
54
|
-
return
|
|
54
|
+
return hasOwn(it, STATE) ? it[STATE] : {};
|
|
55
55
|
};
|
|
56
56
|
has = function (it) {
|
|
57
|
-
return
|
|
57
|
+
return hasOwn(it, STATE);
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
|
package/internals/is-array.js
CHANGED
|
@@ -3,6 +3,6 @@ var classof = require('../internals/classof-raw');
|
|
|
3
3
|
// `IsArray` abstract operation
|
|
4
4
|
// https://tc39.es/ecma262/#sec-isarray
|
|
5
5
|
// eslint-disable-next-line es/no-array-isarray -- safe
|
|
6
|
-
module.exports = Array.isArray || function isArray(
|
|
7
|
-
return classof(
|
|
6
|
+
module.exports = Array.isArray || function isArray(argument) {
|
|
7
|
+
return classof(argument) == 'Array';
|
|
8
8
|
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var fails = require('../internals/fails');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
3
|
+
var classof = require('../internals/classof');
|
|
4
|
+
var getBuiltIn = require('../internals/get-built-in');
|
|
5
|
+
var inspectSource = require('../internals/inspect-source');
|
|
6
|
+
|
|
7
|
+
var empty = [];
|
|
8
|
+
var construct = getBuiltIn('Reflect', 'construct');
|
|
9
|
+
var constructorRegExp = /^\s*(?:class|function)\b/;
|
|
10
|
+
var exec = constructorRegExp.exec;
|
|
11
|
+
var INCORRECT_TO_STRING = !constructorRegExp.exec(function () { /* empty */ });
|
|
12
|
+
|
|
13
|
+
var isConstructorModern = function (argument) {
|
|
14
|
+
if (!isCallable(argument)) return false;
|
|
15
|
+
try {
|
|
16
|
+
construct(Object, empty, argument);
|
|
17
|
+
return true;
|
|
18
|
+
} catch (error) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
var isConstructorLegacy = function (argument) {
|
|
24
|
+
if (!isCallable(argument)) return false;
|
|
25
|
+
switch (classof(argument)) {
|
|
26
|
+
case 'AsyncFunction':
|
|
27
|
+
case 'GeneratorFunction':
|
|
28
|
+
case 'AsyncGeneratorFunction': return false;
|
|
29
|
+
// we can't check .prototype since constructors produced by .bind haven't it
|
|
30
|
+
} return INCORRECT_TO_STRING || !!exec.call(constructorRegExp, inspectSource(argument));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// `IsConstructor` abstract operation
|
|
34
|
+
// https://tc39.es/ecma262/#sec-isconstructor
|
|
35
|
+
module.exports = !construct || fails(function () {
|
|
36
|
+
var called;
|
|
37
|
+
return isConstructorModern(isConstructorModern.call)
|
|
38
|
+
|| !isConstructorModern(Object)
|
|
39
|
+
|| !isConstructorModern(function () { called = true; })
|
|
40
|
+
|| called;
|
|
41
|
+
}) ? isConstructorLegacy : isConstructorModern;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var
|
|
1
|
+
var hasOwn = require('../internals/has-own-property');
|
|
2
2
|
|
|
3
3
|
module.exports = function (descriptor) {
|
|
4
|
-
return descriptor !== undefined && (
|
|
4
|
+
return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));
|
|
5
5
|
};
|
package/internals/is-forced.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var fails = require('../internals/fails');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
|
|
3
4
|
var replacement = /#|\.prototype\./;
|
|
4
5
|
|
|
@@ -6,7 +7,7 @@ var isForced = function (feature, detection) {
|
|
|
6
7
|
var value = data[normalize(feature)];
|
|
7
8
|
return value == POLYFILL ? true
|
|
8
9
|
: value == NATIVE ? false
|
|
9
|
-
:
|
|
10
|
+
: isCallable(detection) ? fails(detection)
|
|
10
11
|
: !!detection;
|
|
11
12
|
};
|
|
12
13
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
var isObject = require('../internals/is-object');
|
|
2
|
+
|
|
3
|
+
var floor = Math.floor;
|
|
4
|
+
|
|
5
|
+
// `IsIntegralNumber` abstract operation
|
|
6
|
+
// https://tc39.es/ecma262/#sec-isintegralnumber
|
|
7
|
+
// eslint-disable-next-line es/no-number-isinteger -- safe
|
|
8
|
+
module.exports = Number.isInteger || function isInteger(it) {
|
|
9
|
+
return !isObject(it) && isFinite(it) && floor(it) === it;
|
|
10
|
+
};
|
package/internals/is-object.js
CHANGED
package/internals/is-symbol.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
1
2
|
var getBuiltIn = require('../internals/get-built-in');
|
|
2
3
|
var USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');
|
|
3
4
|
|
|
@@ -5,5 +6,5 @@ module.exports = USE_SYMBOL_AS_UID ? function (it) {
|
|
|
5
6
|
return typeof it == 'symbol';
|
|
6
7
|
} : function (it) {
|
|
7
8
|
var $Symbol = getBuiltIn('Symbol');
|
|
8
|
-
return
|
|
9
|
+
return isCallable($Symbol) && Object(it) instanceof $Symbol;
|
|
9
10
|
};
|
package/internals/iterate.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var anObject = require('../internals/an-object');
|
|
2
2
|
var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
3
|
-
var
|
|
3
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
4
4
|
var bind = require('../internals/function-bind-context');
|
|
5
5
|
var getIterator = require('../internals/get-iterator');
|
|
6
6
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
@@ -35,10 +35,10 @@ module.exports = function (iterable, unboundFunction, options) {
|
|
|
35
35
|
iterator = iterable;
|
|
36
36
|
} else {
|
|
37
37
|
iterFn = getIteratorMethod(iterable);
|
|
38
|
-
if (
|
|
38
|
+
if (!iterFn) throw TypeError(String(iterable) + ' is not iterable');
|
|
39
39
|
// optimisation for array iterators
|
|
40
40
|
if (isArrayIteratorMethod(iterFn)) {
|
|
41
|
-
for (index = 0, length =
|
|
41
|
+
for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
|
|
42
42
|
result = callFn(iterable[index]);
|
|
43
43
|
if (result && result instanceof Result) return result;
|
|
44
44
|
} return new Result(false);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
var anObject = require('../internals/an-object');
|
|
2
|
+
var getMethod = require('../internals/get-method');
|
|
2
3
|
|
|
3
4
|
module.exports = function (iterator, kind, value) {
|
|
4
5
|
var innerResult, innerError;
|
|
5
6
|
anObject(iterator);
|
|
6
7
|
try {
|
|
7
|
-
innerResult = iterator
|
|
8
|
-
if (innerResult
|
|
8
|
+
innerResult = getMethod(iterator, 'return');
|
|
9
|
+
if (!innerResult) {
|
|
9
10
|
if (kind === 'throw') throw value;
|
|
10
11
|
return value;
|
|
11
12
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
3
|
-
var aFunction = require('../internals/a-function');
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
4
3
|
var anObject = require('../internals/an-object');
|
|
5
4
|
var create = require('../internals/object-create');
|
|
6
5
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
7
6
|
var redefineAll = require('../internals/redefine-all');
|
|
8
7
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
9
8
|
var InternalStateModule = require('../internals/internal-state');
|
|
9
|
+
var getMethod = require('../internals/get-method');
|
|
10
|
+
var IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;
|
|
10
11
|
|
|
11
12
|
var setInternalState = InternalStateModule.set;
|
|
12
13
|
var getInternalState = InternalStateModule.get;
|
|
@@ -15,13 +16,13 @@ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
|
15
16
|
|
|
16
17
|
module.exports = function (nextHandler, IS_ITERATOR) {
|
|
17
18
|
var IteratorProxy = function Iterator(state) {
|
|
18
|
-
state.next =
|
|
19
|
+
state.next = aCallable(state.iterator.next);
|
|
19
20
|
state.done = false;
|
|
20
21
|
state.ignoreArg = !IS_ITERATOR;
|
|
21
22
|
setInternalState(this, state);
|
|
22
23
|
};
|
|
23
24
|
|
|
24
|
-
IteratorProxy.prototype = redefineAll(create(
|
|
25
|
+
IteratorProxy.prototype = redefineAll(create(IteratorPrototype), {
|
|
25
26
|
next: function next(arg) {
|
|
26
27
|
var state = getInternalState(this);
|
|
27
28
|
var args = arguments.length ? [state.ignoreArg ? undefined : arg] : IS_ITERATOR ? [] : [undefined];
|
|
@@ -33,16 +34,16 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
33
34
|
var state = getInternalState(this);
|
|
34
35
|
var iterator = state.iterator;
|
|
35
36
|
state.done = true;
|
|
36
|
-
var $$return = iterator
|
|
37
|
-
return { done: true, value: $$return
|
|
37
|
+
var $$return = getMethod(iterator, 'return');
|
|
38
|
+
return { done: true, value: $$return ? anObject($$return.call(iterator, value)).value : value };
|
|
38
39
|
},
|
|
39
40
|
'throw': function (value) {
|
|
40
41
|
var state = getInternalState(this);
|
|
41
42
|
var iterator = state.iterator;
|
|
42
43
|
state.done = true;
|
|
43
|
-
var $$throw = iterator
|
|
44
|
-
if ($$throw
|
|
45
|
-
|
|
44
|
+
var $$throw = getMethod(iterator, 'throw');
|
|
45
|
+
if ($$throw) return $$throw.call(iterator, value);
|
|
46
|
+
throw value;
|
|
46
47
|
}
|
|
47
48
|
});
|
|
48
49
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var fails = require('../internals/fails');
|
|
3
|
+
var isCallable = require('../internals/is-callable');
|
|
4
|
+
var create = require('../internals/object-create');
|
|
3
5
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
4
|
-
var
|
|
5
|
-
var has = require('../internals/has');
|
|
6
|
+
var redefine = require('../internals/redefine');
|
|
6
7
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
7
8
|
var IS_PURE = require('../internals/is-pure');
|
|
8
9
|
|
|
9
10
|
var ITERATOR = wellKnownSymbol('iterator');
|
|
10
11
|
var BUGGY_SAFARI_ITERATORS = false;
|
|
11
12
|
|
|
12
|
-
var returnThis = function () { return this; };
|
|
13
|
-
|
|
14
13
|
// `%IteratorPrototype%` object
|
|
15
14
|
// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
|
|
16
15
|
var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
|
|
@@ -33,11 +32,14 @@ var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function ()
|
|
|
33
32
|
});
|
|
34
33
|
|
|
35
34
|
if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
|
|
35
|
+
else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
|
|
36
36
|
|
|
37
37
|
// `%IteratorPrototype%[@@iterator]()` method
|
|
38
38
|
// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
|
|
39
|
-
if (
|
|
40
|
-
|
|
39
|
+
if (!isCallable(IteratorPrototype[ITERATOR])) {
|
|
40
|
+
redefine(IteratorPrototype, ITERATOR, function () {
|
|
41
|
+
return this;
|
|
42
|
+
});
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
module.exports = {
|
package/internals/map-upsert.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var anObject = require('../internals/an-object');
|
|
3
4
|
|
|
4
5
|
// `Map.prototype.upsert` method
|
|
@@ -7,16 +8,16 @@ module.exports = function upsert(key, updateFn /* , insertFn */) {
|
|
|
7
8
|
var map = anObject(this);
|
|
8
9
|
var insertFn = arguments.length > 2 ? arguments[2] : undefined;
|
|
9
10
|
var value;
|
|
10
|
-
if (
|
|
11
|
+
if (!isCallable(updateFn) && !isCallable(insertFn)) {
|
|
11
12
|
throw TypeError('At least one callback required');
|
|
12
13
|
}
|
|
13
14
|
if (map.has(key)) {
|
|
14
15
|
value = map.get(key);
|
|
15
|
-
if (
|
|
16
|
+
if (isCallable(updateFn)) {
|
|
16
17
|
value = updateFn(value);
|
|
17
18
|
map.set(key, value);
|
|
18
19
|
}
|
|
19
|
-
} else if (
|
|
20
|
+
} else if (isCallable(insertFn)) {
|
|
20
21
|
value = insertFn();
|
|
21
22
|
map.set(key, value);
|
|
22
23
|
} return value;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var inspectSource = require('../internals/inspect-source');
|
|
3
4
|
|
|
4
5
|
var WeakMap = global.WeakMap;
|
|
5
6
|
|
|
6
|
-
module.exports =
|
|
7
|
+
module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
3
3
|
|
|
4
4
|
var PromiseCapability = function (C) {
|
|
5
5
|
var resolve, reject;
|
|
@@ -8,8 +8,8 @@ var PromiseCapability = function (C) {
|
|
|
8
8
|
resolve = $$resolve;
|
|
9
9
|
reject = $$reject;
|
|
10
10
|
});
|
|
11
|
-
this.resolve =
|
|
12
|
-
this.reject =
|
|
11
|
+
this.resolve = aCallable(resolve);
|
|
12
|
+
this.reject = aCallable(reject);
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// `NewPromiseCapability` abstract operation
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var toString = require('../internals/to-string');
|
|
3
4
|
var trim = require('../internals/string-trim').trim;
|
|
4
5
|
var whitespaces = require('../internals/whitespaces');
|
|
5
6
|
|
|
6
7
|
var $parseFloat = global.parseFloat;
|
|
7
|
-
var
|
|
8
|
+
var Symbol = global.Symbol;
|
|
9
|
+
var ITERATOR = Symbol && Symbol.iterator;
|
|
10
|
+
var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity
|
|
11
|
+
// MS Edge 18- broken with boxed symbols
|
|
12
|
+
|| (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));
|
|
8
13
|
|
|
9
14
|
// `parseFloat` method
|
|
10
15
|
// https://tc39.es/ecma262/#sec-parsefloat-string
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
|
+
var fails = require('../internals/fails');
|
|
2
3
|
var toString = require('../internals/to-string');
|
|
3
4
|
var trim = require('../internals/string-trim').trim;
|
|
4
5
|
var whitespaces = require('../internals/whitespaces');
|
|
5
6
|
|
|
6
7
|
var $parseInt = global.parseInt;
|
|
8
|
+
var Symbol = global.Symbol;
|
|
9
|
+
var ITERATOR = Symbol && Symbol.iterator;
|
|
7
10
|
var hex = /^[+-]?0[Xx]/;
|
|
8
|
-
var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
|
|
11
|
+
var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22
|
|
12
|
+
// MS Edge 18- broken with boxed symbols
|
|
13
|
+
|| (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));
|
|
9
14
|
|
|
10
15
|
// `parseInt` method
|
|
11
16
|
// https://tc39.es/ecma262/#sec-parseint-string-radix
|
|
@@ -3,7 +3,7 @@ var propertyIsEnumerableModule = require('../internals/object-property-is-enumer
|
|
|
3
3
|
var createPropertyDescriptor = require('../internals/create-property-descriptor');
|
|
4
4
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
5
5
|
var toPropertyKey = require('../internals/to-property-key');
|
|
6
|
-
var
|
|
6
|
+
var hasOwn = require('../internals/has-own-property');
|
|
7
7
|
var IE8_DOM_DEFINE = require('../internals/ie8-dom-define');
|
|
8
8
|
|
|
9
9
|
// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
|
|
@@ -17,5 +17,5 @@ exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDes
|
|
|
17
17
|
if (IE8_DOM_DEFINE) try {
|
|
18
18
|
return $getOwnPropertyDescriptor(O, P);
|
|
19
19
|
} catch (error) { /* empty */ }
|
|
20
|
-
if (
|
|
20
|
+
if (hasOwn(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
|
|
21
21
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
var
|
|
1
|
+
var hasOwn = require('../internals/has-own-property');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var toObject = require('../internals/to-object');
|
|
3
4
|
var sharedKey = require('../internals/shared-key');
|
|
4
5
|
var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
|
|
@@ -10,9 +11,10 @@ var ObjectPrototype = Object.prototype;
|
|
|
10
11
|
// https://tc39.es/ecma262/#sec-object.getprototypeof
|
|
11
12
|
// eslint-disable-next-line es/no-object-getprototypeof -- safe
|
|
12
13
|
module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
|
|
13
|
-
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
var object = toObject(O);
|
|
15
|
+
if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
|
|
16
|
+
var constructor = object.constructor;
|
|
17
|
+
if (isCallable(constructor) && object instanceof constructor) {
|
|
18
|
+
return constructor.prototype;
|
|
19
|
+
} return object instanceof Object ? ObjectPrototype : null;
|
|
18
20
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var InternalStateModule = require('../internals/internal-state');
|
|
3
3
|
var createIteratorConstructor = require('../internals/create-iterator-constructor');
|
|
4
|
-
var
|
|
4
|
+
var hasOwn = require('../internals/has-own-property');
|
|
5
5
|
var objectKeys = require('../internals/object-keys');
|
|
6
6
|
var toObject = require('../internals/to-object');
|
|
7
7
|
|
|
@@ -28,7 +28,7 @@ module.exports = createIteratorConstructor(function ObjectIterator(source, mode)
|
|
|
28
28
|
}
|
|
29
29
|
var key = keys[state.index++];
|
|
30
30
|
var object = state.object;
|
|
31
|
-
if (!
|
|
31
|
+
if (!hasOwn(object, key)) continue;
|
|
32
32
|
switch (state.mode) {
|
|
33
33
|
case 'keys': return { value: key, done: false };
|
|
34
34
|
case 'values': return { value: object[key], done: false };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var hasOwn = require('../internals/has-own-property');
|
|
2
2
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
3
|
var indexOf = require('../internals/array-includes').indexOf;
|
|
4
4
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
@@ -8,9 +8,9 @@ module.exports = function (object, names) {
|
|
|
8
8
|
var i = 0;
|
|
9
9
|
var result = [];
|
|
10
10
|
var key;
|
|
11
|
-
for (key in O) !
|
|
11
|
+
for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && result.push(key);
|
|
12
12
|
// Don't enum bug & hidden keys
|
|
13
|
-
while (names.length > i) if (
|
|
13
|
+
while (names.length > i) if (hasOwn(O, key = names[i++])) {
|
|
14
14
|
~indexOf(result, key) || result.push(key);
|
|
15
15
|
}
|
|
16
16
|
return result;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
1
2
|
var isObject = require('../internals/is-object');
|
|
2
3
|
|
|
3
4
|
// `OrdinaryToPrimitive` abstract operation
|
|
4
5
|
// https://tc39.es/ecma262/#sec-ordinarytoprimitive
|
|
5
6
|
module.exports = function (input, pref) {
|
|
6
7
|
var fn, val;
|
|
7
|
-
if (pref === 'string' &&
|
|
8
|
-
if (
|
|
9
|
-
if (pref !== 'string' &&
|
|
8
|
+
if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
|
|
9
|
+
if (isCallable(fn = input.valueOf) && !isObject(val = fn.call(input))) return val;
|
|
10
|
+
if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = fn.call(input))) return val;
|
|
10
11
|
throw TypeError("Can't convert object to primitive value");
|
|
11
12
|
};
|