core-js-pure 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-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 +3 -2
- 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 +6 -4
- 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 +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/{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/regexp-exec-abstract.js +17 -1
- package/internals/regexp-exec.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/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.function.has-instance.js +2 -1
- 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.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.raw.js +12 -6
- package/modules/es.string.replace-all.js +5 -3
- 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.js +20 -16
- package/modules/esnext.aggregate-error.js +1 -1
- package/modules/esnext.array.from-async.js +8 -0
- 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 +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 +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,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var getBuiltIn = require('../internals/get-built-in');
|
|
5
5
|
var newPromiseCapabilityModule = require('../internals/new-promise-capability');
|
|
6
6
|
var perform = require('../internals/perform');
|
|
@@ -17,7 +17,7 @@ $({ target: 'Promise', stat: true }, {
|
|
|
17
17
|
var resolve = capability.resolve;
|
|
18
18
|
var reject = capability.reject;
|
|
19
19
|
var result = perform(function () {
|
|
20
|
-
var promiseResolve =
|
|
20
|
+
var promiseResolve = aCallable(C.resolve);
|
|
21
21
|
var errors = [];
|
|
22
22
|
var counter = 0;
|
|
23
23
|
var remaining = 1;
|
|
@@ -4,6 +4,7 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
4
4
|
var NativePromise = require('../internals/native-promise-constructor');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
6
|
var getBuiltIn = require('../internals/get-built-in');
|
|
7
|
+
var isCallable = require('../internals/is-callable');
|
|
7
8
|
var speciesConstructor = require('../internals/species-constructor');
|
|
8
9
|
var promiseResolve = require('../internals/promise-resolve');
|
|
9
10
|
var redefine = require('../internals/redefine');
|
|
@@ -18,7 +19,7 @@ var NON_GENERIC = !!NativePromise && fails(function () {
|
|
|
18
19
|
$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
19
20
|
'finally': function (onFinally) {
|
|
20
21
|
var C = speciesConstructor(this, getBuiltIn('Promise'));
|
|
21
|
-
var isFunction =
|
|
22
|
+
var isFunction = isCallable(onFinally);
|
|
22
23
|
return this.then(
|
|
23
24
|
isFunction ? function (x) {
|
|
24
25
|
return promiseResolve(C, onFinally()).then(function () { return x; });
|
|
@@ -31,7 +32,7 @@ $({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
|
|
|
31
32
|
});
|
|
32
33
|
|
|
33
34
|
// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`
|
|
34
|
-
if (!IS_PURE &&
|
|
35
|
+
if (!IS_PURE && isCallable(NativePromise)) {
|
|
35
36
|
var method = getBuiltIn('Promise').prototype['finally'];
|
|
36
37
|
if (NativePromise.prototype['finally'] !== method) {
|
|
37
38
|
redefine(NativePromise.prototype, 'finally', method, { unsafe: true });
|
package/modules/es.promise.js
CHANGED
|
@@ -9,8 +9,9 @@ var redefineAll = require('../internals/redefine-all');
|
|
|
9
9
|
var setPrototypeOf = require('../internals/object-set-prototype-of');
|
|
10
10
|
var setToStringTag = require('../internals/set-to-string-tag');
|
|
11
11
|
var setSpecies = require('../internals/set-species');
|
|
12
|
+
var aCallable = require('../internals/a-callable');
|
|
13
|
+
var isCallable = require('../internals/is-callable');
|
|
12
14
|
var isObject = require('../internals/is-object');
|
|
13
|
-
var aFunction = require('../internals/a-function');
|
|
14
15
|
var anInstance = require('../internals/an-instance');
|
|
15
16
|
var inspectSource = require('../internals/inspect-source');
|
|
16
17
|
var iterate = require('../internals/iterate');
|
|
@@ -43,7 +44,7 @@ var process = global.process;
|
|
|
43
44
|
var newPromiseCapability = newPromiseCapabilityModule.f;
|
|
44
45
|
var newGenericPromiseCapability = newPromiseCapability;
|
|
45
46
|
var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
|
|
46
|
-
var NATIVE_REJECTION_EVENT =
|
|
47
|
+
var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);
|
|
47
48
|
var UNHANDLED_REJECTION = 'unhandledrejection';
|
|
48
49
|
var REJECTION_HANDLED = 'rejectionhandled';
|
|
49
50
|
var PENDING = 0;
|
|
@@ -87,7 +88,7 @@ var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (itera
|
|
|
87
88
|
// helpers
|
|
88
89
|
var isThenable = function (it) {
|
|
89
90
|
var then;
|
|
90
|
-
return isObject(it) &&
|
|
91
|
+
return isObject(it) && isCallable(then = it.then) ? then : false;
|
|
91
92
|
};
|
|
92
93
|
|
|
93
94
|
var notify = function (state, isReject) {
|
|
@@ -232,7 +233,7 @@ if (FORCED) {
|
|
|
232
233
|
// 25.4.3.1 Promise(executor)
|
|
233
234
|
PromiseConstructor = function Promise(executor) {
|
|
234
235
|
anInstance(this, PromiseConstructor, PROMISE);
|
|
235
|
-
|
|
236
|
+
aCallable(executor);
|
|
236
237
|
Internal.call(this);
|
|
237
238
|
var state = getInternalState(this);
|
|
238
239
|
try {
|
|
@@ -261,8 +262,8 @@ if (FORCED) {
|
|
|
261
262
|
then: function then(onFulfilled, onRejected) {
|
|
262
263
|
var state = getInternalPromiseState(this);
|
|
263
264
|
var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
|
|
264
|
-
reaction.ok =
|
|
265
|
-
reaction.fail =
|
|
265
|
+
reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;
|
|
266
|
+
reaction.fail = isCallable(onRejected) && onRejected;
|
|
266
267
|
reaction.domain = IS_NODE ? process.domain : undefined;
|
|
267
268
|
state.parent = true;
|
|
268
269
|
state.reactions.push(reaction);
|
|
@@ -288,7 +289,7 @@ if (FORCED) {
|
|
|
288
289
|
: newGenericPromiseCapability(C);
|
|
289
290
|
};
|
|
290
291
|
|
|
291
|
-
if (!IS_PURE &&
|
|
292
|
+
if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {
|
|
292
293
|
nativeThen = NativePromisePrototype.then;
|
|
293
294
|
|
|
294
295
|
if (!SUBCLASSING) {
|
|
@@ -354,7 +355,7 @@ $({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
354
355
|
var resolve = capability.resolve;
|
|
355
356
|
var reject = capability.reject;
|
|
356
357
|
var result = perform(function () {
|
|
357
|
-
var $promiseResolve =
|
|
358
|
+
var $promiseResolve = aCallable(C.resolve);
|
|
358
359
|
var values = [];
|
|
359
360
|
var counter = 0;
|
|
360
361
|
var remaining = 1;
|
|
@@ -382,7 +383,7 @@ $({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
|
|
|
382
383
|
var capability = newPromiseCapability(C);
|
|
383
384
|
var reject = capability.reject;
|
|
384
385
|
var result = perform(function () {
|
|
385
|
-
var $promiseResolve =
|
|
386
|
+
var $promiseResolve = aCallable(C.resolve);
|
|
386
387
|
iterate(iterable, function (promise) {
|
|
387
388
|
$promiseResolve.call(C, promise).then(capability.resolve, reject);
|
|
388
389
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var getBuiltIn = require('../internals/get-built-in');
|
|
3
|
-
var
|
|
3
|
+
var aCallable = require('../internals/a-callable');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var fails = require('../internals/fails');
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
|
|
|
16
16
|
// https://tc39.es/ecma262/#sec-reflect.apply
|
|
17
17
|
$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
|
|
18
18
|
apply: function apply(target, thisArgument, argumentsList) {
|
|
19
|
-
|
|
19
|
+
aCallable(target);
|
|
20
20
|
anObject(argumentsList);
|
|
21
21
|
return nativeApply
|
|
22
22
|
? nativeApply(target, thisArgument, argumentsList)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var getBuiltIn = require('../internals/get-built-in');
|
|
3
|
-
var
|
|
3
|
+
var aConstructor = require('../internals/a-constructor');
|
|
4
4
|
var anObject = require('../internals/an-object');
|
|
5
5
|
var isObject = require('../internals/is-object');
|
|
6
6
|
var create = require('../internals/object-create');
|
|
@@ -24,9 +24,9 @@ var FORCED = NEW_TARGET_BUG || ARGS_BUG;
|
|
|
24
24
|
|
|
25
25
|
$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
|
|
26
26
|
construct: function construct(Target, args /* , newTarget */) {
|
|
27
|
-
|
|
27
|
+
aConstructor(Target);
|
|
28
28
|
anObject(args);
|
|
29
|
-
var newTarget = arguments.length < 3 ? Target :
|
|
29
|
+
var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);
|
|
30
30
|
if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
|
|
31
31
|
if (Target == newTarget) {
|
|
32
32
|
// w/o altered newTarget, optimization for 0-4 arguments
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
|
-
var
|
|
5
|
-
var toLength = require('../internals/to-length');
|
|
4
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
6
5
|
var toString = require('../internals/to-string');
|
|
7
6
|
var fails = require('../internals/fails');
|
|
8
7
|
|
|
@@ -15,8 +14,8 @@ var FORCED = fails(function () {
|
|
|
15
14
|
$({ target: 'String', proto: true, forced: FORCED }, {
|
|
16
15
|
at: function at(index) {
|
|
17
16
|
var S = toString(requireObjectCoercible(this));
|
|
18
|
-
var len =
|
|
19
|
-
var relativeIndex =
|
|
17
|
+
var len = S.length;
|
|
18
|
+
var relativeIndex = toIntegerOrInfinity(index);
|
|
20
19
|
var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
|
|
21
20
|
return (k < 0 || k >= len) ? undefined : S.charAt(k);
|
|
22
21
|
}
|
|
@@ -26,7 +26,7 @@ $({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGE
|
|
|
26
26
|
var that = toString(requireObjectCoercible(this));
|
|
27
27
|
notARegExp(searchString);
|
|
28
28
|
var endPosition = arguments.length > 1 ? arguments[1] : undefined;
|
|
29
|
-
var len =
|
|
29
|
+
var len = that.length;
|
|
30
30
|
var end = endPosition === undefined ? len : min(toLength(endPosition), len);
|
|
31
31
|
var search = toString(searchString);
|
|
32
32
|
return $endsWith
|
|
@@ -5,16 +5,17 @@ var createIteratorConstructor = require('../internals/create-iterator-constructo
|
|
|
5
5
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
6
6
|
var toLength = require('../internals/to-length');
|
|
7
7
|
var toString = require('../internals/to-string');
|
|
8
|
-
var aFunction = require('../internals/a-function');
|
|
9
8
|
var anObject = require('../internals/an-object');
|
|
10
9
|
var classof = require('../internals/classof-raw');
|
|
11
10
|
var isRegExp = require('../internals/is-regexp');
|
|
12
11
|
var getRegExpFlags = require('../internals/regexp-flags');
|
|
13
|
-
var
|
|
12
|
+
var getMethod = require('../internals/get-method');
|
|
13
|
+
var redefine = require('../internals/redefine');
|
|
14
14
|
var fails = require('../internals/fails');
|
|
15
15
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
16
16
|
var speciesConstructor = require('../internals/species-constructor');
|
|
17
17
|
var advanceStringIndex = require('../internals/advance-string-index');
|
|
18
|
+
var regExpExec = require('../internals/regexp-exec-abstract');
|
|
18
19
|
var InternalStateModule = require('../internals/internal-state');
|
|
19
20
|
var IS_PURE = require('../internals/is-pure');
|
|
20
21
|
|
|
@@ -24,23 +25,12 @@ var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
|
|
|
24
25
|
var setInternalState = InternalStateModule.set;
|
|
25
26
|
var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
|
|
26
27
|
var RegExpPrototype = RegExp.prototype;
|
|
27
|
-
var regExpBuiltinExec = RegExpPrototype.exec;
|
|
28
28
|
var nativeMatchAll = ''.matchAll;
|
|
29
29
|
|
|
30
30
|
var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
|
|
31
31
|
'a'.matchAll(/./);
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
var regExpExec = function (R, S) {
|
|
35
|
-
var exec = R.exec;
|
|
36
|
-
var result;
|
|
37
|
-
if (typeof exec == 'function') {
|
|
38
|
-
result = exec.call(R, S);
|
|
39
|
-
if (typeof result != 'object') throw TypeError('Incorrect exec result');
|
|
40
|
-
return result;
|
|
41
|
-
} return regExpBuiltinExec.call(R, S);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
34
|
// eslint-disable-next-line max-len -- ignore
|
|
45
35
|
var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
|
|
46
36
|
setInternalState(this, {
|
|
@@ -98,9 +88,9 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
98
88
|
if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');
|
|
99
89
|
}
|
|
100
90
|
if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
|
|
101
|
-
matcher = regexp
|
|
91
|
+
matcher = getMethod(regexp, MATCH_ALL);
|
|
102
92
|
if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
|
|
103
|
-
if (matcher
|
|
93
|
+
if (matcher) return matcher.call(regexp, O);
|
|
104
94
|
} else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
|
|
105
95
|
S = toString(O);
|
|
106
96
|
rx = new RegExp(regexp, 'g');
|
|
@@ -108,4 +98,4 @@ $({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
|
|
|
108
98
|
}
|
|
109
99
|
});
|
|
110
100
|
|
|
111
|
-
IS_PURE || MATCH_ALL in RegExpPrototype ||
|
|
101
|
+
IS_PURE || MATCH_ALL in RegExpPrototype || redefine(RegExpPrototype, MATCH_ALL, $matchAll);
|
package/modules/es.string.raw.js
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
var $ = require('../internals/export');
|
|
2
2
|
var toIndexedObject = require('../internals/to-indexed-object');
|
|
3
|
-
var
|
|
3
|
+
var toObject = require('../internals/to-object');
|
|
4
4
|
var toString = require('../internals/to-string');
|
|
5
|
+
var lengthOfArrayLike = require('../internals/length-of-array-like');
|
|
6
|
+
|
|
7
|
+
var ArrayPrototype = Array.prototype;
|
|
8
|
+
var push = ArrayPrototype.push;
|
|
9
|
+
var join = ArrayPrototype.join;
|
|
5
10
|
|
|
6
11
|
// `String.raw` method
|
|
7
12
|
// https://tc39.es/ecma262/#sec-string.raw
|
|
8
13
|
$({ target: 'String', stat: true }, {
|
|
9
14
|
raw: function raw(template) {
|
|
10
|
-
var rawTemplate = toIndexedObject(template.raw);
|
|
11
|
-
var literalSegments =
|
|
15
|
+
var rawTemplate = toIndexedObject(toObject(template).raw);
|
|
16
|
+
var literalSegments = lengthOfArrayLike(rawTemplate);
|
|
12
17
|
var argumentsLength = arguments.length;
|
|
13
18
|
var elements = [];
|
|
14
19
|
var i = 0;
|
|
15
20
|
while (literalSegments > i) {
|
|
16
|
-
|
|
17
|
-
if (i
|
|
18
|
-
|
|
21
|
+
push.call(elements, toString(rawTemplate[i++]));
|
|
22
|
+
if (i === literalSegments) return join.call(elements, '');
|
|
23
|
+
if (i < argumentsLength) push.call(elements, toString(arguments[i]));
|
|
24
|
+
}
|
|
19
25
|
}
|
|
20
26
|
});
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
|
+
var isCallable = require('../internals/is-callable');
|
|
4
5
|
var isRegExp = require('../internals/is-regexp');
|
|
5
6
|
var toString = require('../internals/to-string');
|
|
7
|
+
var getMethod = require('../internals/get-method');
|
|
6
8
|
var getRegExpFlags = require('../internals/regexp-flags');
|
|
7
9
|
var getSubstitution = require('../internals/get-substitution');
|
|
8
10
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
@@ -36,8 +38,8 @@ $({ target: 'String', proto: true }, {
|
|
|
36
38
|
));
|
|
37
39
|
if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
|
|
38
40
|
}
|
|
39
|
-
replacer = searchValue
|
|
40
|
-
if (replacer
|
|
41
|
+
replacer = getMethod(searchValue, REPLACE);
|
|
42
|
+
if (replacer) {
|
|
41
43
|
return replacer.call(searchValue, O, replaceValue);
|
|
42
44
|
} else if (IS_PURE && IS_REG_EXP) {
|
|
43
45
|
return toString(O).replace(searchValue, replaceValue);
|
|
@@ -45,7 +47,7 @@ $({ target: 'String', proto: true }, {
|
|
|
45
47
|
}
|
|
46
48
|
string = toString(O);
|
|
47
49
|
searchString = toString(searchValue);
|
|
48
|
-
functionalReplace =
|
|
50
|
+
functionalReplace = isCallable(replaceValue);
|
|
49
51
|
if (!functionalReplace) replaceValue = toString(replaceValue);
|
|
50
52
|
searchLength = searchString.length;
|
|
51
53
|
advanceBy = max(1, searchLength);
|
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
3
|
var requireObjectCoercible = require('../internals/require-object-coercible');
|
|
4
|
-
var
|
|
4
|
+
var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');
|
|
5
5
|
var toString = require('../internals/to-string');
|
|
6
6
|
|
|
7
7
|
var slice = ''.slice;
|
|
8
8
|
var max = Math.max;
|
|
9
9
|
var min = Math.min;
|
|
10
10
|
|
|
11
|
+
// eslint-disable-next-line unicorn/prefer-string-slice -- required for testing
|
|
12
|
+
var FORCED = !''.substr || 'ab'.substr(-1) !== 'b';
|
|
13
|
+
|
|
11
14
|
// `String.prototype.substr` method
|
|
12
15
|
// https://tc39.es/ecma262/#sec-string.prototype.substr
|
|
13
|
-
$({ target: 'String', proto: true }, {
|
|
16
|
+
$({ target: 'String', proto: true, forced: FORCED }, {
|
|
14
17
|
substr: function substr(start, length) {
|
|
15
18
|
var that = toString(requireObjectCoercible(this));
|
|
16
19
|
var size = that.length;
|
|
17
|
-
var intStart =
|
|
20
|
+
var intStart = toIntegerOrInfinity(start);
|
|
18
21
|
var intLength, intEnd;
|
|
19
22
|
if (intStart === Infinity) intStart = 0;
|
|
20
23
|
if (intStart < 0) intStart = max(size + intStart, 0);
|
|
21
|
-
intLength = length === undefined ? size :
|
|
24
|
+
intLength = length === undefined ? size : toIntegerOrInfinity(length);
|
|
22
25
|
if (intLength <= 0 || intLength === Infinity) return '';
|
|
23
26
|
intEnd = min(intStart + intLength, size);
|
|
24
27
|
return intStart >= intEnd ? '' : slice.call(that, intStart, intEnd);
|
|
@@ -13,7 +13,7 @@ var trimEnd = FORCED ? function trimEnd() {
|
|
|
13
13
|
// `String.prototype.{ trimEnd, trimRight }` methods
|
|
14
14
|
// https://tc39.es/ecma262/#sec-string.prototype.trimend
|
|
15
15
|
// https://tc39.es/ecma262/#String.prototype.trimright
|
|
16
|
-
$({ target: 'String', proto: true, forced: FORCED }, {
|
|
16
|
+
$({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED }, {
|
|
17
17
|
trimEnd: trimEnd,
|
|
18
18
|
trimRight: trimEnd
|
|
19
19
|
});
|
|
@@ -13,7 +13,7 @@ var trimStart = FORCED ? function trimStart() {
|
|
|
13
13
|
// `String.prototype.{ trimStart, trimLeft }` methods
|
|
14
14
|
// https://tc39.es/ecma262/#sec-string.prototype.trimstart
|
|
15
15
|
// https://tc39.es/ecma262/#String.prototype.trimleft
|
|
16
|
-
$({ target: 'String', proto: true, forced: FORCED }, {
|
|
16
|
+
$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {
|
|
17
17
|
trimStart: trimStart,
|
|
18
18
|
trimLeft: trimStart
|
|
19
19
|
});
|
package/modules/es.symbol.js
CHANGED
|
@@ -6,8 +6,9 @@ var IS_PURE = require('../internals/is-pure');
|
|
|
6
6
|
var DESCRIPTORS = require('../internals/descriptors');
|
|
7
7
|
var NATIVE_SYMBOL = require('../internals/native-symbol');
|
|
8
8
|
var fails = require('../internals/fails');
|
|
9
|
-
var
|
|
9
|
+
var hasOwn = require('../internals/has-own-property');
|
|
10
10
|
var isArray = require('../internals/is-array');
|
|
11
|
+
var isCallable = require('../internals/is-callable');
|
|
11
12
|
var isObject = require('../internals/is-object');
|
|
12
13
|
var isSymbol = require('../internals/is-symbol');
|
|
13
14
|
var anObject = require('../internals/an-object');
|
|
@@ -24,7 +25,6 @@ var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-
|
|
|
24
25
|
var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');
|
|
25
26
|
var definePropertyModule = require('../internals/object-define-property');
|
|
26
27
|
var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');
|
|
27
|
-
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
28
28
|
var redefine = require('../internals/redefine');
|
|
29
29
|
var shared = require('../internals/shared');
|
|
30
30
|
var sharedKey = require('../internals/shared-key');
|
|
@@ -89,12 +89,12 @@ var $defineProperty = function defineProperty(O, P, Attributes) {
|
|
|
89
89
|
anObject(O);
|
|
90
90
|
var key = toPropertyKey(P);
|
|
91
91
|
anObject(Attributes);
|
|
92
|
-
if (
|
|
92
|
+
if (hasOwn(AllSymbols, key)) {
|
|
93
93
|
if (!Attributes.enumerable) {
|
|
94
|
-
if (!
|
|
94
|
+
if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
|
|
95
95
|
O[HIDDEN][key] = true;
|
|
96
96
|
} else {
|
|
97
|
-
if (
|
|
97
|
+
if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
|
|
98
98
|
Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
|
|
99
99
|
} return setSymbolDescriptor(O, key, Attributes);
|
|
100
100
|
} return nativeDefineProperty(O, key, Attributes);
|
|
@@ -117,16 +117,17 @@ var $create = function create(O, Properties) {
|
|
|
117
117
|
var $propertyIsEnumerable = function propertyIsEnumerable(V) {
|
|
118
118
|
var P = toPropertyKey(V);
|
|
119
119
|
var enumerable = nativePropertyIsEnumerable.call(this, P);
|
|
120
|
-
if (this === ObjectPrototype &&
|
|
121
|
-
return enumerable || !
|
|
120
|
+
if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;
|
|
121
|
+
return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]
|
|
122
|
+
? enumerable : true;
|
|
122
123
|
};
|
|
123
124
|
|
|
124
125
|
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
|
|
125
126
|
var it = toIndexedObject(O);
|
|
126
127
|
var key = toPropertyKey(P);
|
|
127
|
-
if (it === ObjectPrototype &&
|
|
128
|
+
if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;
|
|
128
129
|
var descriptor = nativeGetOwnPropertyDescriptor(it, key);
|
|
129
|
-
if (descriptor &&
|
|
130
|
+
if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {
|
|
130
131
|
descriptor.enumerable = true;
|
|
131
132
|
}
|
|
132
133
|
return descriptor;
|
|
@@ -136,7 +137,7 @@ var $getOwnPropertyNames = function getOwnPropertyNames(O) {
|
|
|
136
137
|
var names = nativeGetOwnPropertyNames(toIndexedObject(O));
|
|
137
138
|
var result = [];
|
|
138
139
|
$forEach(names, function (key) {
|
|
139
|
-
if (!
|
|
140
|
+
if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) result.push(key);
|
|
140
141
|
});
|
|
141
142
|
return result;
|
|
142
143
|
};
|
|
@@ -146,7 +147,7 @@ var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
|
|
|
146
147
|
var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
|
|
147
148
|
var result = [];
|
|
148
149
|
$forEach(names, function (key) {
|
|
149
|
-
if (
|
|
150
|
+
if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {
|
|
150
151
|
result.push(AllSymbols[key]);
|
|
151
152
|
}
|
|
152
153
|
});
|
|
@@ -162,7 +163,7 @@ if (!NATIVE_SYMBOL) {
|
|
|
162
163
|
var tag = uid(description);
|
|
163
164
|
var setter = function (value) {
|
|
164
165
|
if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
|
|
165
|
-
if (
|
|
166
|
+
if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
|
|
166
167
|
setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
|
|
167
168
|
};
|
|
168
169
|
if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
|
|
@@ -214,7 +215,7 @@ $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
|
|
|
214
215
|
// https://tc39.es/ecma262/#sec-symbol.for
|
|
215
216
|
'for': function (key) {
|
|
216
217
|
var string = $toString(key);
|
|
217
|
-
if (
|
|
218
|
+
if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
|
|
218
219
|
var symbol = $Symbol(string);
|
|
219
220
|
StringToSymbolRegistry[string] = symbol;
|
|
220
221
|
SymbolToStringRegistry[symbol] = string;
|
|
@@ -224,7 +225,7 @@ $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
|
|
|
224
225
|
// https://tc39.es/ecma262/#sec-symbol.keyfor
|
|
225
226
|
keyFor: function keyFor(sym) {
|
|
226
227
|
if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
|
|
227
|
-
if (
|
|
228
|
+
if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
|
|
228
229
|
},
|
|
229
230
|
useSetter: function () { USE_SETTER = true; },
|
|
230
231
|
useSimple: function () { USE_SETTER = false; }
|
|
@@ -285,7 +286,7 @@ if ($stringify) {
|
|
|
285
286
|
$replacer = replacer;
|
|
286
287
|
if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
|
|
287
288
|
if (!isArray(replacer)) replacer = function (key, value) {
|
|
288
|
-
if (
|
|
289
|
+
if (isCallable($replacer)) value = $replacer.call(this, key, value);
|
|
289
290
|
if (!isSymbol(value)) return value;
|
|
290
291
|
};
|
|
291
292
|
args[1] = replacer;
|
|
@@ -297,7 +298,10 @@ if ($stringify) {
|
|
|
297
298
|
// `Symbol.prototype[@@toPrimitive]` method
|
|
298
299
|
// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive
|
|
299
300
|
if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
|
|
300
|
-
|
|
301
|
+
var valueOf = $Symbol[PROTOTYPE].valueOf;
|
|
302
|
+
redefine($Symbol[PROTOTYPE], TO_PRIMITIVE, function () {
|
|
303
|
+
return valueOf.apply(this, arguments);
|
|
304
|
+
});
|
|
301
305
|
}
|
|
302
306
|
// `Symbol.prototype[@@toStringTag]` property
|
|
303
307
|
// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// TODO: Remove from `core-js@4`
|
|
2
|
-
require('
|
|
2
|
+
require('../modules/es.aggregate-error');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
4
|
var anInstance = require('../internals/an-instance');
|
|
5
5
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
6
|
-
var
|
|
6
|
+
var hasOwn = require('../internals/has-own-property');
|
|
7
7
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
8
8
|
var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
|
|
9
9
|
var IS_PURE = require('../internals/is-pure');
|
|
@@ -16,11 +16,11 @@ var AsyncIteratorConstructor = function AsyncIterator() {
|
|
|
16
16
|
|
|
17
17
|
AsyncIteratorConstructor.prototype = AsyncIteratorPrototype;
|
|
18
18
|
|
|
19
|
-
if (!
|
|
19
|
+
if (!hasOwn(AsyncIteratorPrototype, TO_STRING_TAG)) {
|
|
20
20
|
createNonEnumerableProperty(AsyncIteratorPrototype, TO_STRING_TAG, 'AsyncIterator');
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
if (!
|
|
23
|
+
if (IS_PURE || !hasOwn(AsyncIteratorPrototype, 'constructor') || AsyncIteratorPrototype.constructor === Object) {
|
|
24
24
|
createNonEnumerableProperty(AsyncIteratorPrototype, 'constructor', AsyncIteratorConstructor);
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
|
-
var
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
6
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
7
7
|
|
|
@@ -36,7 +36,7 @@ $({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
|
36
36
|
filter: function filter(filterer) {
|
|
37
37
|
return new AsyncIteratorProxy({
|
|
38
38
|
iterator: anObject(this),
|
|
39
|
-
filterer:
|
|
39
|
+
filterer: aCallable(filterer)
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
|
-
var
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
6
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
7
7
|
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
@@ -23,7 +23,7 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise) {
|
|
|
23
23
|
Promise.resolve(mapper(step.value)).then(function (mapped) {
|
|
24
24
|
try {
|
|
25
25
|
state.innerIterator = innerIterator = getAsyncIterator(mapped);
|
|
26
|
-
state.innerNext =
|
|
26
|
+
state.innerNext = aCallable(innerIterator.next);
|
|
27
27
|
return innerLoop();
|
|
28
28
|
} catch (error2) { reject(error2); }
|
|
29
29
|
}, reject);
|
|
@@ -56,7 +56,7 @@ $({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
|
56
56
|
flatMap: function flatMap(mapper) {
|
|
57
57
|
return new AsyncIteratorProxy({
|
|
58
58
|
iterator: anObject(this),
|
|
59
|
-
mapper:
|
|
59
|
+
mapper: aCallable(mapper),
|
|
60
60
|
innerIterator: null,
|
|
61
61
|
innerNext: null
|
|
62
62
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
2
2
|
var $ = require('../internals/export');
|
|
3
|
-
var path = require('../internals/path');
|
|
4
3
|
var anObject = require('../internals/an-object');
|
|
5
4
|
var toObject = require('../internals/to-object');
|
|
5
|
+
var AsyncIteratorPrototype = require('../internals/async-iterator-prototype');
|
|
6
6
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
7
7
|
var getAsyncIterator = require('../internals/get-async-iterator');
|
|
8
8
|
var getIterator = require('../internals/get-iterator');
|
|
@@ -13,7 +13,7 @@ var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
|
13
13
|
|
|
14
14
|
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var isPrototypeOf = {}.isPrototypeOf;
|
|
17
17
|
|
|
18
18
|
var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
19
19
|
return anObject(this.next.apply(this.iterator, args));
|
|
@@ -22,18 +22,16 @@ var AsyncIteratorProxy = createAsyncIteratorProxy(function (Promise, args) {
|
|
|
22
22
|
$({ target: 'AsyncIterator', stat: true }, {
|
|
23
23
|
from: function from(O) {
|
|
24
24
|
var object = toObject(O);
|
|
25
|
-
var usingIterator = getMethod(object
|
|
25
|
+
var usingIterator = getMethod(object, ASYNC_ITERATOR);
|
|
26
26
|
var iterator;
|
|
27
|
-
if (usingIterator
|
|
27
|
+
if (usingIterator) {
|
|
28
28
|
iterator = getAsyncIterator(object, usingIterator);
|
|
29
|
-
if (iterator
|
|
29
|
+
if (isPrototypeOf.call(AsyncIteratorPrototype, iterator)) return iterator;
|
|
30
30
|
}
|
|
31
31
|
if (iterator === undefined) {
|
|
32
32
|
usingIterator = getIteratorMethod(object);
|
|
33
|
-
if (usingIterator
|
|
33
|
+
if (usingIterator) return new AsyncFromSyncIterator(getIterator(object, usingIterator));
|
|
34
34
|
}
|
|
35
|
-
return new AsyncIteratorProxy({
|
|
36
|
-
iterator: iterator !== undefined ? iterator : object
|
|
37
|
-
});
|
|
35
|
+
return new AsyncIteratorProxy({ iterator: iterator !== undefined ? iterator : object });
|
|
38
36
|
}
|
|
39
37
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
// https://github.com/tc39/proposal-iterator-helpers
|
|
3
3
|
var $ = require('../internals/export');
|
|
4
|
-
var
|
|
4
|
+
var aCallable = require('../internals/a-callable');
|
|
5
5
|
var anObject = require('../internals/an-object');
|
|
6
6
|
var createAsyncIteratorProxy = require('../internals/async-iterator-create-proxy');
|
|
7
7
|
|
|
@@ -24,7 +24,7 @@ $({ target: 'AsyncIterator', proto: true, real: true }, {
|
|
|
24
24
|
map: function map(mapper) {
|
|
25
25
|
return new AsyncIteratorProxy({
|
|
26
26
|
iterator: anObject(this),
|
|
27
|
-
mapper:
|
|
27
|
+
mapper: aCallable(mapper)
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
});
|