core-js-pure 3.17.3 → 3.18.0
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/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/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-from-async.js +32 -0
- package/internals/array-from.js +6 -5
- package/internals/array-reduce.js +2 -2
- package/internals/array-species-constructor.js +3 -2
- package/internals/array-unique-by.js +3 -3
- package/internals/async-from-sync-iterator.js +2 -2
- package/internals/async-iterator-create-proxy.js +5 -4
- package/internals/async-iterator-iteration.js +26 -15
- package/internals/async-iterator-prototype.js +5 -4
- 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.js +3 -2
- package/internals/define-iterator.js +20 -12
- package/internals/export.js +3 -1
- 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 +2 -1
- package/internals/get-iterator-method.js +3 -2
- package/internals/get-iterator.js +5 -5
- package/internals/get-method.js +4 -3
- package/internals/inherit-if-required.js +2 -1
- package/internals/inspect-source.js +2 -1
- package/internals/is-array.js +2 -2
- package/internals/is-callable.js +5 -0
- package/internals/is-constructor.js +41 -0
- package/internals/is-forced.js +2 -1
- package/internals/is-object.js +3 -1
- package/internals/is-symbol.js +2 -1
- package/internals/iterate.js +1 -1
- package/internals/iterator-close.js +3 -2
- package/internals/iterator-create-proxy.js +8 -7
- package/internals/iterators-core.js +4 -3
- 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-prototype-of.js +7 -5
- package/internals/ordinary-to-primitive.js +4 -3
- package/internals/regexp-exec-abstract.js +17 -1
- package/internals/regexp-exec.js +1 -1
- package/internals/regexp-unsupported-ncg.js +1 -1
- package/internals/shared.js +1 -1
- package/internals/species-constructor.js +2 -2
- package/internals/string-trim-forced.js +4 -1
- package/internals/task.js +3 -2
- package/internals/to-primitive.js +3 -2
- package/internals/to-string.js +2 -2
- package/internals/try-to-string.js +7 -0
- package/modules/es.array.flat-map.js +2 -2
- package/modules/es.array.of.js +2 -1
- package/modules/es.array.slice.js +3 -2
- package/modules/es.array.sort.js +2 -2
- package/modules/es.function.has-instance.js +2 -1
- package/modules/es.object.define-getter.js +2 -2
- package/modules/es.object.define-setter.js +2 -2
- 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.string.match-all.js +6 -16
- package/modules/es.string.raw.js +9 -4
- package/modules/es.string.replace-all.js +5 -3
- package/modules/es.string.trim-end.js +1 -1
- package/modules/es.string.trim-start.js +1 -1
- package/modules/es.symbol.js +6 -3
- package/modules/esnext.aggregate-error.js +1 -1
- package/modules/esnext.array.from-async.js +8 -0
- 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 +4 -6
- 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 +2 -1
- 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 +2 -4
- 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.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 +1 -0
- package/modules/web.dom-collections.iterator.js +1 -1
- package/modules/web.timers.js +2 -1
- package/modules/web.url-search-params.js +6 -5
- package/package.json +2 -2
- package/proposals/array-from-async.js +3 -0
- package/stage/1.js +1 -0
- package/internals/a-function.js +0 -5
|
@@ -4,11 +4,12 @@ require('../../modules/es.object.to-string');
|
|
|
4
4
|
require('../../modules/es.promise');
|
|
5
5
|
require('../../modules/es.promise.all-settled');
|
|
6
6
|
require('../../modules/es.string.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Promise = path.Promise;
|
|
10
11
|
var $allSettled = Promise.allSettled;
|
|
11
12
|
|
|
12
13
|
module.exports = function allSettled(iterable) {
|
|
13
|
-
return $allSettled.call(
|
|
14
|
+
return $allSettled.call(isCallable(this) ? this : Promise, iterable);
|
|
14
15
|
};
|
package/es/promise/any.js
CHANGED
|
@@ -5,11 +5,12 @@ require('../../modules/es.object.to-string');
|
|
|
5
5
|
require('../../modules/es.promise');
|
|
6
6
|
require('../../modules/es.promise.any');
|
|
7
7
|
require('../../modules/es.string.iterator');
|
|
8
|
+
var isCallable = require('../../internals/is-callable');
|
|
8
9
|
var path = require('../../internals/path');
|
|
9
10
|
|
|
10
11
|
var Promise = path.Promise;
|
|
11
12
|
var $any = Promise.any;
|
|
12
13
|
|
|
13
14
|
module.exports = function any(iterable) {
|
|
14
|
-
return $any.call(
|
|
15
|
+
return $any.call(isCallable(this) ? this : Promise, iterable);
|
|
15
16
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
require('../../modules/es.array.iterator');
|
|
2
|
+
require('../../modules/es.object.to-string');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/es.string.iterator');
|
|
5
|
+
require('../../modules/esnext.array.from-async');
|
|
6
|
+
var path = require('../../internals/path');
|
|
7
|
+
|
|
8
|
+
module.exports = path.Array.fromAsync;
|
package/features/array/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var parent = require('../../stable/array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/esnext.array.from-async');
|
|
3
5
|
// TODO: Remove from `core-js@4`
|
|
4
6
|
require('../../modules/esnext.array.at');
|
|
5
7
|
// TODO: Remove from `core-js@4`
|
package/features/index.js
CHANGED
|
@@ -221,6 +221,7 @@ require('../modules/es.unescape');
|
|
|
221
221
|
require('../modules/es.weak-map');
|
|
222
222
|
require('../modules/es.weak-set');
|
|
223
223
|
require('../modules/esnext.aggregate-error');
|
|
224
|
+
require('../modules/esnext.array.from-async');
|
|
224
225
|
require('../modules/esnext.array.at');
|
|
225
226
|
require('../modules/esnext.array.filter-out');
|
|
226
227
|
require('../modules/esnext.array.filter-reject');
|
|
@@ -344,6 +345,7 @@ require('../modules/esnext.symbol.metadata');
|
|
|
344
345
|
require('../modules/esnext.symbol.observable');
|
|
345
346
|
require('../modules/esnext.symbol.pattern-match');
|
|
346
347
|
require('../modules/esnext.symbol.replace-all');
|
|
348
|
+
require('../modules/esnext.typed-array.from-async');
|
|
347
349
|
require('../modules/esnext.typed-array.at');
|
|
348
350
|
require('../modules/esnext.typed-array.filter-out');
|
|
349
351
|
require('../modules/esnext.typed-array.filter-reject');
|
package/features/map/from.js
CHANGED
|
@@ -4,11 +4,12 @@ require('../../modules/es.map');
|
|
|
4
4
|
require('../../modules/es.string.iterator');
|
|
5
5
|
require('../../modules/esnext.map.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Map = path.Map;
|
|
10
11
|
var mapFrom = Map.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return mapFrom.call(
|
|
14
|
+
return mapFrom.call(isCallable(this) ? this : Map, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/map/group-by.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.map');
|
|
3
3
|
require('../../modules/esnext.map.group-by');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Map = path.Map;
|
|
7
8
|
var mapGroupBy = Map.groupBy;
|
|
8
9
|
|
|
9
10
|
module.exports = function groupBy(source, iterable, keyDerivative) {
|
|
10
|
-
return mapGroupBy.call(
|
|
11
|
+
return mapGroupBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
|
|
11
12
|
};
|
package/features/map/key-by.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.map');
|
|
3
3
|
require('../../modules/esnext.map.key-by');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Map = path.Map;
|
|
7
8
|
var mapKeyBy = Map.keyBy;
|
|
8
9
|
|
|
9
10
|
module.exports = function keyBy(source, iterable, keyDerivative) {
|
|
10
|
-
return mapKeyBy.call(
|
|
11
|
+
return mapKeyBy.call(isCallable(this) ? this : Map, source, iterable, keyDerivative);
|
|
11
12
|
};
|
package/features/map/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.map');
|
|
4
4
|
require('../../modules/esnext.map.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var Map = path.Map;
|
|
8
9
|
var mapOf = Map.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return mapOf.apply(
|
|
12
|
+
return mapOf.apply(isCallable(this) ? this : Map, arguments);
|
|
12
13
|
};
|
package/features/promise/try.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
require('../../modules/es.promise');
|
|
3
3
|
require('../../modules/esnext.promise.try');
|
|
4
|
+
var isCallable = require('../../internals/is-callable');
|
|
4
5
|
var path = require('../../internals/path');
|
|
5
6
|
|
|
6
7
|
var Promise = path.Promise;
|
|
7
8
|
var promiseTry = Promise['try'];
|
|
8
9
|
|
|
9
10
|
module.exports = { 'try': function (callbackfn) {
|
|
10
|
-
return promiseTry.call(
|
|
11
|
+
return promiseTry.call(isCallable(this) ? this : Promise, callbackfn);
|
|
11
12
|
} }['try'];
|
package/features/set/from.js
CHANGED
|
@@ -4,11 +4,12 @@ require('../../modules/es.set');
|
|
|
4
4
|
require('../../modules/es.string.iterator');
|
|
5
5
|
require('../../modules/esnext.set.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var Set = path.Set;
|
|
10
11
|
var setFrom = Set.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return setFrom.call(
|
|
14
|
+
return setFrom.call(isCallable(this) ? this : Set, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/set/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.set');
|
|
4
4
|
require('../../modules/esnext.set.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var Set = path.Set;
|
|
8
9
|
var setOf = Set.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return setOf.apply(
|
|
12
|
+
return setOf.apply(isCallable(this) ? this : Set, arguments);
|
|
12
13
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require('../../modules/esnext.typed-array.from-async');
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
var parent = require('../../stable/typed-array');
|
|
2
2
|
require('../../modules/es.map');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/esnext.typed-array.from-async');
|
|
3
5
|
// TODO: Remove from `core-js@4`
|
|
4
6
|
require('../../modules/esnext.typed-array.at');
|
|
5
7
|
// TODO: Remove from `core-js@4`
|
|
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
|
|
|
4
4
|
require('../../modules/es.weak-map');
|
|
5
5
|
require('../../modules/esnext.weak-map.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var WeakMap = path.WeakMap;
|
|
10
11
|
var weakMapFrom = WeakMap.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return weakMapFrom.call(
|
|
14
|
+
return weakMapFrom.call(isCallable(this) ? this : WeakMap, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/weak-map/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-map');
|
|
4
4
|
require('../../modules/esnext.weak-map.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var WeakMap = path.WeakMap;
|
|
8
9
|
var weakMapOf = WeakMap.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return weakMapOf.apply(
|
|
12
|
+
return weakMapOf.apply(isCallable(this) ? this : WeakMap, arguments);
|
|
12
13
|
};
|
|
@@ -4,11 +4,12 @@ require('../../modules/es.string.iterator');
|
|
|
4
4
|
require('../../modules/es.weak-set');
|
|
5
5
|
require('../../modules/esnext.weak-set.from');
|
|
6
6
|
require('../../modules/web.dom-collections.iterator');
|
|
7
|
+
var isCallable = require('../../internals/is-callable');
|
|
7
8
|
var path = require('../../internals/path');
|
|
8
9
|
|
|
9
10
|
var WeakSet = path.WeakSet;
|
|
10
11
|
var weakSetfrom = WeakSet.from;
|
|
11
12
|
|
|
12
13
|
module.exports = function from(source, mapFn, thisArg) {
|
|
13
|
-
return weakSetfrom.call(
|
|
14
|
+
return weakSetfrom.call(isCallable(this) ? this : WeakSet, source, mapFn, thisArg);
|
|
14
15
|
};
|
package/features/weak-set/of.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
require('../../modules/es.array.iterator');
|
|
3
3
|
require('../../modules/es.weak-set');
|
|
4
4
|
require('../../modules/esnext.weak-set.of');
|
|
5
|
+
var isCallable = require('../../internals/is-callable');
|
|
5
6
|
var path = require('../../internals/path');
|
|
6
7
|
|
|
7
8
|
var WeakSet = path.WeakSet;
|
|
8
9
|
var weakSetOf = WeakSet.of;
|
|
9
10
|
|
|
10
11
|
module.exports = function of() {
|
|
11
|
-
return weakSetOf.apply(
|
|
12
|
+
return weakSetOf.apply(isCallable(this) ? this : WeakSet, arguments);
|
|
12
13
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
2
|
+
var tryToString = require('../internals/try-to-string');
|
|
3
|
+
|
|
4
|
+
// `Assert: IsCallable(argument) is true`
|
|
5
|
+
module.exports = function (argument) {
|
|
6
|
+
if (isCallable(argument)) return argument;
|
|
7
|
+
throw TypeError(tryToString(argument) + ' is not a function');
|
|
8
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var isConstructor = require('../internals/is-constructor');
|
|
2
|
+
var tryToString = require('../internals/try-to-string');
|
|
3
|
+
|
|
4
|
+
// `Assert: IsConstructor(argument) is true`
|
|
5
|
+
module.exports = function (argument) {
|
|
6
|
+
if (isConstructor(argument)) return argument;
|
|
7
|
+
throw TypeError(tryToString(argument) + ' is not a constructor');
|
|
8
|
+
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
var
|
|
1
|
+
var isCallable = require('../internals/is-callable');
|
|
2
2
|
|
|
3
|
-
module.exports = function (
|
|
4
|
-
if (
|
|
5
|
-
|
|
6
|
-
} return it;
|
|
3
|
+
module.exports = function (argument) {
|
|
4
|
+
if (typeof argument === 'object' || isCallable(argument)) return argument;
|
|
5
|
+
throw TypeError("Can't set " + String(argument) + ' as a prototype');
|
|
7
6
|
};
|
package/internals/an-instance.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
module.exports = function (it, Constructor, name) {
|
|
2
|
-
if (
|
|
3
|
-
|
|
4
|
-
} return it;
|
|
2
|
+
if (it instanceof Constructor) return it;
|
|
3
|
+
throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
|
|
5
4
|
};
|
package/internals/an-object.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var isObject = require('../internals/is-object');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
// `Assert: Type(argument) is Object`
|
|
4
|
+
module.exports = function (argument) {
|
|
5
|
+
if (isObject(argument)) return argument;
|
|
6
|
+
throw TypeError(String(argument) + ' is not an object');
|
|
7
7
|
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var bind = require('../internals/function-bind-context');
|
|
3
|
+
var toObject = require('../internals/to-object');
|
|
4
|
+
var isConstructor = require('../internals/is-constructor');
|
|
5
|
+
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
6
|
+
var getIterator = require('../internals/get-iterator');
|
|
7
|
+
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
8
|
+
var getMethod = require('../internals/get-method');
|
|
9
|
+
var getVirtual = require('../internals/entry-virtual');
|
|
10
|
+
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
11
|
+
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
12
|
+
var toArray = require('../internals/async-iterator-iteration').toArray;
|
|
13
|
+
|
|
14
|
+
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
15
|
+
var arrayIterator = getVirtual('Array').values;
|
|
16
|
+
|
|
17
|
+
// `Array.fromAsync` method implementation
|
|
18
|
+
// https://github.com/tc39/proposal-array-from-async
|
|
19
|
+
module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) {
|
|
20
|
+
var O = toObject(asyncItems);
|
|
21
|
+
var argumentsLength = arguments.length;
|
|
22
|
+
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
23
|
+
if (mapfn !== undefined) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
24
|
+
var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR);
|
|
25
|
+
var usingIterator;
|
|
26
|
+
if (!usingAsyncIterator) usingIterator = getIteratorMethod(O);
|
|
27
|
+
var A = isConstructor(this) ? new this() : [];
|
|
28
|
+
var iterator = usingAsyncIterator
|
|
29
|
+
? getAsyncIterator(O, usingAsyncIterator)
|
|
30
|
+
: new AsyncFromSyncIterator(getIterator(O, usingIterator || arrayIterator));
|
|
31
|
+
return toArray(iterator, mapfn, A);
|
|
32
|
+
};
|
package/internals/array-from.js
CHANGED
|
@@ -3,6 +3,7 @@ var bind = require('../internals/function-bind-context');
|
|
|
3
3
|
var toObject = require('../internals/to-object');
|
|
4
4
|
var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');
|
|
5
5
|
var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
6
|
+
var isConstructor = require('../internals/is-constructor');
|
|
6
7
|
var toLength = require('../internals/to-length');
|
|
7
8
|
var createProperty = require('../internals/create-property');
|
|
8
9
|
var getIterator = require('../internals/get-iterator');
|
|
@@ -12,26 +13,26 @@ var getIteratorMethod = require('../internals/get-iterator-method');
|
|
|
12
13
|
// https://tc39.es/ecma262/#sec-array.from
|
|
13
14
|
module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
|
|
14
15
|
var O = toObject(arrayLike);
|
|
15
|
-
var
|
|
16
|
+
var IS_CONSTRUCTOR = isConstructor(this);
|
|
16
17
|
var argumentsLength = arguments.length;
|
|
17
18
|
var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
|
|
18
19
|
var mapping = mapfn !== undefined;
|
|
20
|
+
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
19
21
|
var iteratorMethod = getIteratorMethod(O);
|
|
20
22
|
var index = 0;
|
|
21
23
|
var length, result, step, iterator, next, value;
|
|
22
|
-
if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
|
|
23
24
|
// if the target is not iterable or it's an array with the default iterator - use a simple case
|
|
24
|
-
if (iteratorMethod
|
|
25
|
+
if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {
|
|
25
26
|
iterator = getIterator(O, iteratorMethod);
|
|
26
27
|
next = iterator.next;
|
|
27
|
-
result = new
|
|
28
|
+
result = IS_CONSTRUCTOR ? new this() : [];
|
|
28
29
|
for (;!(step = next.call(iterator)).done; index++) {
|
|
29
30
|
value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
|
|
30
31
|
createProperty(result, index, value);
|
|
31
32
|
}
|
|
32
33
|
} else {
|
|
33
34
|
length = toLength(O.length);
|
|
34
|
-
result = new
|
|
35
|
+
result = IS_CONSTRUCTOR ? new this(length) : Array(length);
|
|
35
36
|
for (;length > index; index++) {
|
|
36
37
|
value = mapping ? mapfn(O[index], index) : O[index];
|
|
37
38
|
createProperty(result, index, value);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var aCallable = require('../internals/a-callable');
|
|
2
2
|
var toObject = require('../internals/to-object');
|
|
3
3
|
var IndexedObject = require('../internals/indexed-object');
|
|
4
4
|
var toLength = require('../internals/to-length');
|
|
@@ -6,7 +6,7 @@ var toLength = require('../internals/to-length');
|
|
|
6
6
|
// `Array.prototype.{ reduce, reduceRight }` methods implementation
|
|
7
7
|
var createMethod = function (IS_RIGHT) {
|
|
8
8
|
return function (that, callbackfn, argumentsLength, memo) {
|
|
9
|
-
|
|
9
|
+
aCallable(callbackfn);
|
|
10
10
|
var O = toObject(that);
|
|
11
11
|
var self = IndexedObject(O);
|
|
12
12
|
var length = toLength(O.length);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
var isObject = require('../internals/is-object');
|
|
2
1
|
var isArray = require('../internals/is-array');
|
|
2
|
+
var isConstructor = require('../internals/is-constructor');
|
|
3
|
+
var isObject = require('../internals/is-object');
|
|
3
4
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
5
|
|
|
5
6
|
var SPECIES = wellKnownSymbol('species');
|
|
@@ -11,7 +12,7 @@ module.exports = function (originalArray) {
|
|
|
11
12
|
if (isArray(originalArray)) {
|
|
12
13
|
C = originalArray.constructor;
|
|
13
14
|
// cross-realm fallback
|
|
14
|
-
if (
|
|
15
|
+
if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;
|
|
15
16
|
else if (isObject(C)) {
|
|
16
17
|
C = C[SPECIES];
|
|
17
18
|
if (C === null) C = undefined;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
2
3
|
var toLength = require('../internals/to-length');
|
|
3
4
|
var toObject = require('../internals/to-object');
|
|
4
5
|
var getBuiltIn = require('../internals/get-built-in');
|
|
@@ -15,11 +16,10 @@ module.exports = function uniqueBy(resolver) {
|
|
|
15
16
|
var Map = getBuiltIn('Map');
|
|
16
17
|
var map = new Map();
|
|
17
18
|
var resolverFunction, index, item, key;
|
|
18
|
-
if (
|
|
19
|
-
else
|
|
19
|
+
if (resolver != null) resolverFunction = aCallable(resolver);
|
|
20
|
+
else resolverFunction = function (value) {
|
|
20
21
|
return value;
|
|
21
22
|
};
|
|
22
|
-
else throw new TypeError('Incorrect resolver!');
|
|
23
23
|
for (index = 0; index < length; index++) {
|
|
24
24
|
item = that[index];
|
|
25
25
|
key = resolverFunction(item);
|
|
@@ -39,7 +39,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
|
|
|
39
39
|
var iterator = getInternalState(this).iterator;
|
|
40
40
|
var hasArg = !!arguments.length;
|
|
41
41
|
return new Promise(function (resolve, reject) {
|
|
42
|
-
var $return = getMethod(iterator
|
|
42
|
+
var $return = getMethod(iterator, 'return');
|
|
43
43
|
if ($return === undefined) return resolve({ done: true, value: arg });
|
|
44
44
|
var result = anObject($return.apply(iterator, hasArg ? [arg] : []));
|
|
45
45
|
asyncFromSyncIteratorContinuation(result, resolve, reject);
|
|
@@ -49,7 +49,7 @@ AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), {
|
|
|
49
49
|
var iterator = getInternalState(this).iterator;
|
|
50
50
|
var hasArg = !!arguments.length;
|
|
51
51
|
return new Promise(function (resolve, reject) {
|
|
52
|
-
var $throw = getMethod(iterator
|
|
52
|
+
var $throw = getMethod(iterator, 'throw');
|
|
53
53
|
if ($throw === undefined) return reject(arg);
|
|
54
54
|
var result = anObject($throw.apply(iterator, hasArg ? [arg] : []));
|
|
55
55
|
asyncFromSyncIteratorContinuation(result, resolve, reject);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
var
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
3
3
|
var anObject = require('../internals/an-object');
|
|
4
4
|
var create = require('../internals/object-create');
|
|
5
5
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
@@ -7,6 +7,7 @@ var redefineAll = require('../internals/redefine-all');
|
|
|
7
7
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
8
8
|
var InternalStateModule = require('../internals/internal-state');
|
|
9
9
|
var getBuiltIn = require('../internals/get-built-in');
|
|
10
|
+
var getMethod = require('../internals/get-method');
|
|
10
11
|
var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
|
|
11
12
|
|
|
12
13
|
var Promise = getBuiltIn('Promise');
|
|
@@ -18,7 +19,7 @@ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
|
18
19
|
|
|
19
20
|
module.exports = function (nextHandler, IS_ITERATOR) {
|
|
20
21
|
var AsyncIteratorProxy = function AsyncIterator(state) {
|
|
21
|
-
state.next =
|
|
22
|
+
state.next = aCallable(state.iterator.next);
|
|
22
23
|
state.done = false;
|
|
23
24
|
state.ignoreArgument = !IS_ITERATOR;
|
|
24
25
|
setInternalState(this, state);
|
|
@@ -41,7 +42,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
41
42
|
var state = getInternalState(that);
|
|
42
43
|
var iterator = state.iterator;
|
|
43
44
|
state.done = true;
|
|
44
|
-
var $$return = iterator
|
|
45
|
+
var $$return = getMethod(iterator, 'return');
|
|
45
46
|
if ($$return === undefined) return resolve({ done: true, value: value });
|
|
46
47
|
Promise.resolve($$return.call(iterator, value)).then(function (result) {
|
|
47
48
|
anObject(result);
|
|
@@ -55,7 +56,7 @@ module.exports = function (nextHandler, IS_ITERATOR) {
|
|
|
55
56
|
var state = getInternalState(that);
|
|
56
57
|
var iterator = state.iterator;
|
|
57
58
|
state.done = true;
|
|
58
|
-
var $$throw = iterator
|
|
59
|
+
var $$throw = getMethod(iterator, 'throw');
|
|
59
60
|
if ($$throw === undefined) return reject(value);
|
|
60
61
|
resolve($$throw.call(iterator, value));
|
|
61
62
|
});
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var getBuiltIn = require('../internals/get-built-in');
|
|
6
|
+
var getMethod = require('../internals/get-method');
|
|
6
7
|
|
|
7
|
-
var
|
|
8
|
-
var push = [].push;
|
|
8
|
+
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
|
|
9
9
|
|
|
10
10
|
var createMethod = function (TYPE) {
|
|
11
11
|
var IS_TO_ARRAY = TYPE == 0;
|
|
12
12
|
var IS_FOR_EACH = TYPE == 1;
|
|
13
13
|
var IS_EVERY = TYPE == 2;
|
|
14
14
|
var IS_SOME = TYPE == 3;
|
|
15
|
-
return function (iterator, fn) {
|
|
15
|
+
return function (iterator, fn, target) {
|
|
16
16
|
anObject(iterator);
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
|
|
17
|
+
var Promise = getBuiltIn('Promise');
|
|
18
|
+
var next = aCallable(iterator.next);
|
|
19
|
+
var index = 0;
|
|
20
|
+
var MAPPING = fn !== undefined;
|
|
21
|
+
if (MAPPING || !IS_TO_ARRAY) aCallable(fn);
|
|
20
22
|
|
|
21
23
|
return new Promise(function (resolve, reject) {
|
|
22
24
|
var closeIteration = function (method, argument) {
|
|
23
25
|
try {
|
|
24
|
-
var returnMethod = iterator
|
|
25
|
-
if (returnMethod
|
|
26
|
+
var returnMethod = getMethod(iterator, 'return');
|
|
27
|
+
if (returnMethod) {
|
|
26
28
|
return Promise.resolve(returnMethod.call(iterator)).then(function () {
|
|
27
29
|
method(argument);
|
|
28
30
|
}, function (error) {
|
|
@@ -40,25 +42,34 @@ var createMethod = function (TYPE) {
|
|
|
40
42
|
|
|
41
43
|
var loop = function () {
|
|
42
44
|
try {
|
|
45
|
+
if (IS_TO_ARRAY && (index > MAX_SAFE_INTEGER) && MAPPING) {
|
|
46
|
+
throw TypeError('The allowed number of iterations has been exceeded');
|
|
47
|
+
}
|
|
43
48
|
Promise.resolve(anObject(next.call(iterator))).then(function (step) {
|
|
44
49
|
try {
|
|
45
50
|
if (anObject(step).done) {
|
|
46
|
-
|
|
51
|
+
if (IS_TO_ARRAY) {
|
|
52
|
+
target.length = index;
|
|
53
|
+
resolve(target);
|
|
54
|
+
} else resolve(IS_SOME ? false : IS_EVERY || undefined);
|
|
47
55
|
} else {
|
|
48
56
|
var value = step.value;
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
loop();
|
|
52
|
-
} else {
|
|
53
|
-
Promise.resolve(fn(value)).then(function (result) {
|
|
57
|
+
if (MAPPING) {
|
|
58
|
+
Promise.resolve(IS_TO_ARRAY ? fn(value, index) : fn(value)).then(function (result) {
|
|
54
59
|
if (IS_FOR_EACH) {
|
|
55
60
|
loop();
|
|
56
61
|
} else if (IS_EVERY) {
|
|
57
62
|
result ? loop() : closeIteration(resolve, false);
|
|
63
|
+
} else if (IS_TO_ARRAY) {
|
|
64
|
+
target[index++] = result;
|
|
65
|
+
loop();
|
|
58
66
|
} else {
|
|
59
67
|
result ? closeIteration(resolve, IS_SOME || value) : loop();
|
|
60
68
|
}
|
|
61
69
|
}, onError);
|
|
70
|
+
} else {
|
|
71
|
+
target[index++] = value;
|
|
72
|
+
loop();
|
|
62
73
|
}
|
|
63
74
|
}
|
|
64
75
|
} catch (error) { onError(error); }
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var shared = require('../internals/shared-store');
|
|
3
|
+
var isCallable = require('../internals/is-callable');
|
|
3
4
|
var create = require('../internals/object-create');
|
|
4
5
|
var getPrototypeOf = require('../internals/object-get-prototype-of');
|
|
5
|
-
var
|
|
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
|
|
|
@@ -14,7 +15,7 @@ var AsyncIteratorPrototype, prototype;
|
|
|
14
15
|
|
|
15
16
|
if (PassedAsyncIteratorPrototype) {
|
|
16
17
|
AsyncIteratorPrototype = PassedAsyncIteratorPrototype;
|
|
17
|
-
} else if (
|
|
18
|
+
} else if (isCallable(AsyncIterator)) {
|
|
18
19
|
AsyncIteratorPrototype = AsyncIterator.prototype;
|
|
19
20
|
} else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) {
|
|
20
21
|
try {
|
|
@@ -27,8 +28,8 @@ if (PassedAsyncIteratorPrototype) {
|
|
|
27
28
|
if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {};
|
|
28
29
|
else if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype);
|
|
29
30
|
|
|
30
|
-
if (
|
|
31
|
-
|
|
31
|
+
if (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) {
|
|
32
|
+
redefine(AsyncIteratorPrototype, ASYNC_ITERATOR, function () {
|
|
32
33
|
return this;
|
|
33
34
|
});
|
|
34
35
|
}
|
package/internals/classof.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');
|
|
2
|
+
var isCallable = require('../internals/is-callable');
|
|
2
3
|
var classofRaw = require('../internals/classof-raw');
|
|
3
4
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
4
5
|
|
|
@@ -22,5 +23,5 @@ module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
|
|
|
22
23
|
// builtinTag case
|
|
23
24
|
: CORRECT_ARGUMENTS ? classofRaw(O)
|
|
24
25
|
// ES3 arguments fallback
|
|
25
|
-
: (result = classofRaw(O)) == 'Object' &&
|
|
26
|
+
: (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
|
|
26
27
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var aCallable = require('../internals/a-callable');
|
|
2
3
|
var anObject = require('../internals/an-object');
|
|
3
|
-
var aFunction = require('../internals/a-function');
|
|
4
4
|
|
|
5
5
|
// https://github.com/tc39/collection-methods
|
|
6
6
|
module.exports = function (/* ...elements */) {
|
|
7
7
|
var set = anObject(this);
|
|
8
|
-
var adder =
|
|
8
|
+
var adder = aCallable(set.add);
|
|
9
9
|
for (var k = 0, len = arguments.length; k < len; k++) {
|
|
10
10
|
adder.call(set, arguments[k]);
|
|
11
11
|
}
|