core-js-pure 3.6.5 → 3.7.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/aggregate-error.js +6 -0
- package/es/index.js +33 -29
- package/es/object/index.js +2 -1
- package/es/object/to-string.js +3 -2
- package/es/promise/any.js +12 -0
- package/es/promise/index.js +4 -2
- package/es/reflect/index.js +1 -0
- package/es/reflect/to-string-tag.js +3 -0
- package/es/string/index.js +1 -0
- package/es/string/replace-all.js +4 -0
- package/es/string/virtual/index.js +1 -0
- package/es/string/virtual/replace-all.js +4 -0
- package/es/symbol/index.js +2 -1
- package/es/symbol/to-string-tag.js +2 -1
- package/features/aggregate-error.js +4 -4
- package/features/map/emplace.js +5 -0
- package/features/map/index.js +2 -0
- package/features/promise/any.js +4 -9
- package/features/reflect/to-string-tag.js +3 -0
- package/features/string/replace-all.js +4 -2
- package/features/string/virtual/replace-all.js +4 -2
- package/features/weak-map/emplace.js +5 -0
- package/features/weak-map/index.js +2 -0
- package/internals/async-iterator-iteration.js +25 -6
- package/internals/call-with-safe-iteration-closing.js +2 -2
- package/internals/collection-from.js +5 -5
- package/internals/collection-strong.js +1 -1
- package/internals/collection-weak.js +1 -1
- package/internals/collection.js +1 -1
- package/internals/correct-is-regexp-logic.js +2 -2
- package/internals/engine-is-node.js +4 -0
- package/internals/global.js +1 -1
- package/internals/internal-state.js +4 -1
- package/internals/iterate.js +26 -11
- package/internals/iterator-close.js +8 -0
- package/internals/map-emplace.js +13 -0
- package/internals/microtask.js +8 -8
- package/internals/shared.js +1 -1
- package/internals/task.js +4 -4
- package/modules/es.aggregate-error.js +31 -0
- package/modules/es.array.reduce-right.js +6 -1
- package/modules/es.array.reduce.js +6 -1
- package/modules/es.math.to-string-tag.js +1 -5
- package/modules/es.object.from-entries.js +1 -1
- package/modules/es.promise.all-settled.js +2 -2
- package/modules/es.promise.any.js +46 -0
- package/modules/es.promise.js +27 -25
- package/modules/es.reflect.set.js +3 -2
- package/modules/es.reflect.to-string-tag.js +1 -0
- package/modules/es.string.replace-all.js +50 -0
- package/modules/esnext.aggregate-error.js +2 -45
- package/modules/esnext.async-iterator.take.js +12 -3
- package/modules/esnext.iterator.every.js +3 -3
- package/modules/esnext.iterator.find.js +3 -3
- package/modules/esnext.iterator.flat-map.js +21 -15
- package/modules/esnext.iterator.for-each.js +1 -1
- package/modules/esnext.iterator.reduce.js +1 -1
- package/modules/esnext.iterator.some.js +3 -3
- package/modules/esnext.iterator.take.js +4 -2
- package/modules/esnext.iterator.to-array.js +1 -1
- package/modules/esnext.map.emplace.js +10 -0
- package/modules/esnext.map.every.js +3 -3
- package/modules/esnext.map.filter.js +1 -1
- package/modules/esnext.map.find-key.js +3 -3
- package/modules/esnext.map.find.js +3 -3
- package/modules/esnext.map.includes.js +3 -3
- package/modules/esnext.map.key-of.js +3 -3
- package/modules/esnext.map.map-keys.js +1 -1
- package/modules/esnext.map.map-values.js +1 -1
- package/modules/esnext.map.merge.js +1 -1
- package/modules/esnext.map.reduce.js +1 -1
- package/modules/esnext.map.some.js +3 -3
- package/modules/esnext.map.update-or-insert.js +1 -1
- package/modules/esnext.map.upsert.js +2 -1
- package/modules/esnext.observable.js +3 -3
- package/modules/esnext.promise.any.js +2 -46
- package/modules/esnext.reflect.get-metadata-keys.js +1 -1
- package/modules/esnext.set.every.js +3 -3
- package/modules/esnext.set.filter.js +1 -1
- package/modules/esnext.set.find.js +3 -3
- package/modules/esnext.set.is-disjoint-from.js +3 -3
- package/modules/esnext.set.is-subset-of.js +3 -3
- package/modules/esnext.set.is-superset-of.js +3 -3
- package/modules/esnext.set.join.js +1 -1
- package/modules/esnext.set.map.js +1 -1
- package/modules/esnext.set.reduce.js +1 -1
- package/modules/esnext.set.some.js +3 -3
- package/modules/esnext.set.union.js +1 -1
- package/modules/esnext.string.replace-all.js +2 -50
- package/modules/esnext.weak-map.emplace.js +10 -0
- package/modules/esnext.weak-map.upsert.js +3 -2
- package/modules/web.queue-microtask.js +2 -3
- package/modules/web.url-search-params.js +1 -1
- package/package.json +1 -1
- package/proposals/efficient-64-bit-arithmetic.js +1 -0
- package/proposals/map-upsert.js +4 -0
- package/proposals/object-iteration.js +1 -0
- package/stable/aggregate-error.js +6 -0
- package/stable/promise/any.js +3 -0
- package/stable/reflect/to-string-tag.js +3 -0
- package/stable/string/replace-all.js +3 -0
- package/stable/string/virtual/replace-all.js +3 -0
- package/stage/3.js +0 -2
- package/stage/4.js +2 -0
package/es/index.js
CHANGED
|
@@ -13,35 +13,7 @@ require('../modules/es.symbol.split');
|
|
|
13
13
|
require('../modules/es.symbol.to-primitive');
|
|
14
14
|
require('../modules/es.symbol.to-string-tag');
|
|
15
15
|
require('../modules/es.symbol.unscopables');
|
|
16
|
-
require('../modules/es.
|
|
17
|
-
require('../modules/es.object.create');
|
|
18
|
-
require('../modules/es.object.define-property');
|
|
19
|
-
require('../modules/es.object.define-properties');
|
|
20
|
-
require('../modules/es.object.entries');
|
|
21
|
-
require('../modules/es.object.freeze');
|
|
22
|
-
require('../modules/es.object.from-entries');
|
|
23
|
-
require('../modules/es.object.get-own-property-descriptor');
|
|
24
|
-
require('../modules/es.object.get-own-property-descriptors');
|
|
25
|
-
require('../modules/es.object.get-own-property-names');
|
|
26
|
-
require('../modules/es.object.get-prototype-of');
|
|
27
|
-
require('../modules/es.object.is');
|
|
28
|
-
require('../modules/es.object.is-extensible');
|
|
29
|
-
require('../modules/es.object.is-frozen');
|
|
30
|
-
require('../modules/es.object.is-sealed');
|
|
31
|
-
require('../modules/es.object.keys');
|
|
32
|
-
require('../modules/es.object.prevent-extensions');
|
|
33
|
-
require('../modules/es.object.seal');
|
|
34
|
-
require('../modules/es.object.set-prototype-of');
|
|
35
|
-
require('../modules/es.object.values');
|
|
36
|
-
require('../modules/es.object.to-string');
|
|
37
|
-
require('../modules/es.object.define-getter');
|
|
38
|
-
require('../modules/es.object.define-setter');
|
|
39
|
-
require('../modules/es.object.lookup-getter');
|
|
40
|
-
require('../modules/es.object.lookup-setter');
|
|
41
|
-
require('../modules/es.function.bind');
|
|
42
|
-
require('../modules/es.function.name');
|
|
43
|
-
require('../modules/es.function.has-instance');
|
|
44
|
-
require('../modules/es.global-this');
|
|
16
|
+
require('../modules/es.aggregate-error');
|
|
45
17
|
require('../modules/es.array.from');
|
|
46
18
|
require('../modules/es.array.is-array');
|
|
47
19
|
require('../modules/es.array.of');
|
|
@@ -71,6 +43,35 @@ require('../modules/es.array.species');
|
|
|
71
43
|
require('../modules/es.array.unscopables.flat');
|
|
72
44
|
require('../modules/es.array.unscopables.flat-map');
|
|
73
45
|
require('../modules/es.array.iterator');
|
|
46
|
+
require('../modules/es.function.bind');
|
|
47
|
+
require('../modules/es.function.name');
|
|
48
|
+
require('../modules/es.function.has-instance');
|
|
49
|
+
require('../modules/es.global-this');
|
|
50
|
+
require('../modules/es.object.assign');
|
|
51
|
+
require('../modules/es.object.create');
|
|
52
|
+
require('../modules/es.object.define-property');
|
|
53
|
+
require('../modules/es.object.define-properties');
|
|
54
|
+
require('../modules/es.object.entries');
|
|
55
|
+
require('../modules/es.object.freeze');
|
|
56
|
+
require('../modules/es.object.from-entries');
|
|
57
|
+
require('../modules/es.object.get-own-property-descriptor');
|
|
58
|
+
require('../modules/es.object.get-own-property-descriptors');
|
|
59
|
+
require('../modules/es.object.get-own-property-names');
|
|
60
|
+
require('../modules/es.object.get-prototype-of');
|
|
61
|
+
require('../modules/es.object.is');
|
|
62
|
+
require('../modules/es.object.is-extensible');
|
|
63
|
+
require('../modules/es.object.is-frozen');
|
|
64
|
+
require('../modules/es.object.is-sealed');
|
|
65
|
+
require('../modules/es.object.keys');
|
|
66
|
+
require('../modules/es.object.prevent-extensions');
|
|
67
|
+
require('../modules/es.object.seal');
|
|
68
|
+
require('../modules/es.object.set-prototype-of');
|
|
69
|
+
require('../modules/es.object.values');
|
|
70
|
+
require('../modules/es.object.to-string');
|
|
71
|
+
require('../modules/es.object.define-getter');
|
|
72
|
+
require('../modules/es.object.define-setter');
|
|
73
|
+
require('../modules/es.object.lookup-getter');
|
|
74
|
+
require('../modules/es.object.lookup-setter');
|
|
74
75
|
require('../modules/es.string.from-code-point');
|
|
75
76
|
require('../modules/es.string.raw');
|
|
76
77
|
require('../modules/es.string.code-point-at');
|
|
@@ -102,6 +103,7 @@ require('../modules/es.string.small');
|
|
|
102
103
|
require('../modules/es.string.strike');
|
|
103
104
|
require('../modules/es.string.sub');
|
|
104
105
|
require('../modules/es.string.sup');
|
|
106
|
+
require('../modules/es.string.replace-all');
|
|
105
107
|
require('../modules/es.regexp.constructor');
|
|
106
108
|
require('../modules/es.regexp.exec');
|
|
107
109
|
require('../modules/es.regexp.flags');
|
|
@@ -149,6 +151,7 @@ require('../modules/es.json.stringify');
|
|
|
149
151
|
require('../modules/es.json.to-string-tag');
|
|
150
152
|
require('../modules/es.promise');
|
|
151
153
|
require('../modules/es.promise.all-settled');
|
|
154
|
+
require('../modules/es.promise.any');
|
|
152
155
|
require('../modules/es.promise.finally');
|
|
153
156
|
require('../modules/es.map');
|
|
154
157
|
require('../modules/es.set');
|
|
@@ -205,6 +208,7 @@ require('../modules/es.reflect.own-keys');
|
|
|
205
208
|
require('../modules/es.reflect.prevent-extensions');
|
|
206
209
|
require('../modules/es.reflect.set');
|
|
207
210
|
require('../modules/es.reflect.set-prototype-of');
|
|
211
|
+
require('../modules/es.reflect.to-string-tag');
|
|
208
212
|
var path = require('../internals/path');
|
|
209
213
|
|
|
210
214
|
module.exports = path;
|
package/es/object/index.js
CHANGED
|
@@ -24,8 +24,9 @@ require('../../modules/es.object.define-getter');
|
|
|
24
24
|
require('../../modules/es.object.define-setter');
|
|
25
25
|
require('../../modules/es.object.lookup-getter');
|
|
26
26
|
require('../../modules/es.object.lookup-setter');
|
|
27
|
-
require('../../modules/es.math.to-string-tag');
|
|
28
27
|
require('../../modules/es.json.to-string-tag');
|
|
28
|
+
require('../../modules/es.math.to-string-tag');
|
|
29
|
+
require('../../modules/es.reflect.to-string-tag');
|
|
29
30
|
var path = require('../../internals/path');
|
|
30
31
|
|
|
31
32
|
module.exports = path.Object;
|
package/es/object/to-string.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
require('../../modules/es.object.to-string');
|
|
2
|
-
require('../../modules/es.math.to-string-tag');
|
|
3
1
|
require('../../modules/es.json.to-string-tag');
|
|
2
|
+
require('../../modules/es.math.to-string-tag');
|
|
3
|
+
require('../../modules/es.object.to-string');
|
|
4
|
+
require('../../modules/es.reflect.to-string-tag');
|
|
4
5
|
var classof = require('../../internals/classof');
|
|
5
6
|
|
|
6
7
|
module.exports = function (it) {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
require('../../modules/es.aggregate-error');
|
|
3
|
+
require('../../modules/es.promise');
|
|
4
|
+
require('../../modules/es.promise.any');
|
|
5
|
+
var path = require('../../internals/path');
|
|
6
|
+
|
|
7
|
+
var Promise = path.Promise;
|
|
8
|
+
var $any = Promise.any;
|
|
9
|
+
|
|
10
|
+
module.exports = function any(iterable) {
|
|
11
|
+
return $any.call(typeof this === 'function' ? this : Promise, iterable);
|
|
12
|
+
};
|
package/es/promise/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
require('../../modules/es.aggregate-error');
|
|
1
2
|
require('../../modules/es.object.to-string');
|
|
2
|
-
require('../../modules/es.string.iterator');
|
|
3
|
-
require('../../modules/web.dom-collections.iterator');
|
|
4
3
|
require('../../modules/es.promise');
|
|
5
4
|
require('../../modules/es.promise.all-settled');
|
|
5
|
+
require('../../modules/es.promise.any');
|
|
6
6
|
require('../../modules/es.promise.finally');
|
|
7
|
+
require('../../modules/es.string.iterator');
|
|
8
|
+
require('../../modules/web.dom-collections.iterator');
|
|
7
9
|
var path = require('../../internals/path');
|
|
8
10
|
|
|
9
11
|
module.exports = path.Promise;
|
package/es/reflect/index.js
CHANGED
|
@@ -11,6 +11,7 @@ require('../../modules/es.reflect.own-keys');
|
|
|
11
11
|
require('../../modules/es.reflect.prevent-extensions');
|
|
12
12
|
require('../../modules/es.reflect.set');
|
|
13
13
|
require('../../modules/es.reflect.set-prototype-of');
|
|
14
|
+
require('../../modules/es.reflect.to-string-tag');
|
|
14
15
|
var path = require('../../internals/path');
|
|
15
16
|
|
|
16
17
|
module.exports = path.Reflect;
|
package/es/string/index.js
CHANGED
|
@@ -10,6 +10,7 @@ require('../../modules/es.string.pad-end');
|
|
|
10
10
|
require('../../modules/es.string.pad-start');
|
|
11
11
|
require('../../modules/es.string.repeat');
|
|
12
12
|
require('../../modules/es.string.replace');
|
|
13
|
+
require('../../modules/es.string.replace-all');
|
|
13
14
|
require('../../modules/es.string.search');
|
|
14
15
|
require('../../modules/es.string.split');
|
|
15
16
|
require('../../modules/es.string.starts-with');
|
|
@@ -7,6 +7,7 @@ require('../../../modules/es.string.pad-end');
|
|
|
7
7
|
require('../../../modules/es.string.pad-start');
|
|
8
8
|
require('../../../modules/es.string.repeat');
|
|
9
9
|
require('../../../modules/es.string.replace');
|
|
10
|
+
require('../../../modules/es.string.replace-all');
|
|
10
11
|
require('../../../modules/es.string.search');
|
|
11
12
|
require('../../../modules/es.string.split');
|
|
12
13
|
require('../../../modules/es.string.starts-with');
|
package/es/symbol/index.js
CHANGED
|
@@ -15,8 +15,9 @@ require('../../modules/es.symbol.split');
|
|
|
15
15
|
require('../../modules/es.symbol.to-primitive');
|
|
16
16
|
require('../../modules/es.symbol.to-string-tag');
|
|
17
17
|
require('../../modules/es.symbol.unscopables');
|
|
18
|
-
require('../../modules/es.math.to-string-tag');
|
|
19
18
|
require('../../modules/es.json.to-string-tag');
|
|
19
|
+
require('../../modules/es.math.to-string-tag');
|
|
20
|
+
require('../../modules/es.reflect.to-string-tag');
|
|
20
21
|
var path = require('../../internals/path');
|
|
21
22
|
|
|
22
23
|
module.exports = path.Symbol;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
require('../../modules/es.symbol.to-string-tag');
|
|
2
2
|
require('../../modules/es.object.to-string');
|
|
3
|
-
require('../../modules/es.math.to-string-tag');
|
|
4
3
|
require('../../modules/es.json.to-string-tag');
|
|
4
|
+
require('../../modules/es.math.to-string-tag');
|
|
5
|
+
require('../../modules/es.reflect.to-string-tag');
|
|
5
6
|
var WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');
|
|
6
7
|
|
|
7
8
|
module.exports = WrappedWellKnownSymbolModule.f('toStringTag');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
require('../modules/es.string.iterator');
|
|
1
|
+
// TODO: remove from `core-js@4`
|
|
3
2
|
require('../modules/esnext.aggregate-error');
|
|
4
|
-
var path = require('../internals/path');
|
|
5
3
|
|
|
6
|
-
|
|
4
|
+
var parent = require('../stable/aggregate-error');
|
|
5
|
+
|
|
6
|
+
module.exports = parent;
|
package/features/map/index.js
CHANGED
|
@@ -2,6 +2,7 @@ var parent = require('../../es/map');
|
|
|
2
2
|
require('../../modules/esnext.map.from');
|
|
3
3
|
require('../../modules/esnext.map.of');
|
|
4
4
|
require('../../modules/esnext.map.delete-all');
|
|
5
|
+
require('../../modules/esnext.map.emplace');
|
|
5
6
|
require('../../modules/esnext.map.every');
|
|
6
7
|
require('../../modules/esnext.map.filter');
|
|
7
8
|
require('../../modules/esnext.map.find');
|
|
@@ -16,6 +17,7 @@ require('../../modules/esnext.map.merge');
|
|
|
16
17
|
require('../../modules/esnext.map.reduce');
|
|
17
18
|
require('../../modules/esnext.map.some');
|
|
18
19
|
require('../../modules/esnext.map.update');
|
|
20
|
+
// TODO: remove from `core-js@4`
|
|
19
21
|
require('../../modules/esnext.map.upsert');
|
|
20
22
|
// TODO: remove from `core-js@4`
|
|
21
23
|
require('../../modules/esnext.map.update-or-insert');
|
package/features/promise/any.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var parent = require('../../es/promise/any');
|
|
2
|
+
|
|
3
|
+
// TODO: Remove from `core-js@4`
|
|
3
4
|
require('../../modules/esnext.aggregate-error');
|
|
4
5
|
require('../../modules/esnext.promise.any');
|
|
5
|
-
var path = require('../../internals/path');
|
|
6
|
-
|
|
7
|
-
var Promise = path.Promise;
|
|
8
|
-
var $any = Promise.any;
|
|
9
6
|
|
|
10
|
-
module.exports =
|
|
11
|
-
return $any.call(typeof this === 'function' ? this : Promise, iterable);
|
|
12
|
-
};
|
|
7
|
+
module.exports = parent;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// TODO: remove from `core-js@4`
|
|
1
2
|
require('../../modules/esnext.string.replace-all');
|
|
2
|
-
var entryUnbind = require('../../internals/entry-unbind');
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
var parent = require('../../es/string/replace-all');
|
|
5
|
+
|
|
6
|
+
module.exports = parent;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
// TODO: remove from `core-js@4`
|
|
1
2
|
require('../../../modules/esnext.string.replace-all');
|
|
2
|
-
var entryVirtual = require('../../../internals/entry-virtual');
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
var parent = require('../../../es/string/virtual/replace-all');
|
|
5
|
+
|
|
6
|
+
module.exports = parent;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
var parent = require('../../es/weak-map');
|
|
2
|
+
require('../../modules/esnext.weak-map.emplace');
|
|
2
3
|
require('../../modules/esnext.weak-map.from');
|
|
3
4
|
require('../../modules/esnext.weak-map.of');
|
|
4
5
|
require('../../modules/esnext.weak-map.delete-all');
|
|
6
|
+
// TODO: remove from `core-js@4`
|
|
5
7
|
require('../../modules/esnext.weak-map.upsert');
|
|
6
8
|
|
|
7
9
|
module.exports = parent;
|
|
@@ -19,6 +19,25 @@ var createMethod = function (TYPE) {
|
|
|
19
19
|
if (!IS_TO_ARRAY) aFunction(fn);
|
|
20
20
|
|
|
21
21
|
return new Promise(function (resolve, reject) {
|
|
22
|
+
var closeIteration = function (method, argument) {
|
|
23
|
+
try {
|
|
24
|
+
var returnMethod = iterator['return'];
|
|
25
|
+
if (returnMethod !== undefined) {
|
|
26
|
+
return Promise.resolve(returnMethod.call(iterator)).then(function () {
|
|
27
|
+
method(argument);
|
|
28
|
+
}, function (error) {
|
|
29
|
+
reject(error);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
} catch (error2) {
|
|
33
|
+
return reject(error2);
|
|
34
|
+
} method(argument);
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var onError = function (error) {
|
|
38
|
+
closeIteration(reject, error);
|
|
39
|
+
};
|
|
40
|
+
|
|
22
41
|
var loop = function () {
|
|
23
42
|
try {
|
|
24
43
|
Promise.resolve(anObject(next.call(iterator))).then(function (step) {
|
|
@@ -35,16 +54,16 @@ var createMethod = function (TYPE) {
|
|
|
35
54
|
if (IS_FOR_EACH) {
|
|
36
55
|
loop();
|
|
37
56
|
} else if (IS_EVERY) {
|
|
38
|
-
result ? loop() : resolve
|
|
57
|
+
result ? loop() : closeIteration(resolve, false);
|
|
39
58
|
} else {
|
|
40
|
-
result ? resolve
|
|
59
|
+
result ? closeIteration(resolve, IS_SOME || value) : loop();
|
|
41
60
|
}
|
|
42
|
-
},
|
|
61
|
+
}, onError);
|
|
43
62
|
}
|
|
44
63
|
}
|
|
45
|
-
} catch (
|
|
46
|
-
},
|
|
47
|
-
} catch (
|
|
64
|
+
} catch (error) { onError(error); }
|
|
65
|
+
}, onError);
|
|
66
|
+
} catch (error2) { onError(error2); }
|
|
48
67
|
};
|
|
49
68
|
|
|
50
69
|
loop();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
var anObject = require('../internals/an-object');
|
|
2
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
2
3
|
|
|
3
4
|
// call something on iterator step with safe closing on error
|
|
4
5
|
module.exports = function (iterator, fn, value, ENTRIES) {
|
|
@@ -6,8 +7,7 @@ module.exports = function (iterator, fn, value, ENTRIES) {
|
|
|
6
7
|
return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
|
|
7
8
|
// 7.4.6 IteratorClose(iterator, completion)
|
|
8
9
|
} catch (error) {
|
|
9
|
-
|
|
10
|
-
if (returnMethod !== undefined) anObject(returnMethod.call(iterator));
|
|
10
|
+
iteratorClose(iterator);
|
|
11
11
|
throw error;
|
|
12
12
|
}
|
|
13
13
|
};
|
|
@@ -7,20 +7,20 @@ var iterate = require('../internals/iterate');
|
|
|
7
7
|
module.exports = function from(source /* , mapFn, thisArg */) {
|
|
8
8
|
var length = arguments.length;
|
|
9
9
|
var mapFn = length > 1 ? arguments[1] : undefined;
|
|
10
|
-
var mapping,
|
|
10
|
+
var mapping, array, n, boundFunction;
|
|
11
11
|
aFunction(this);
|
|
12
12
|
mapping = mapFn !== undefined;
|
|
13
13
|
if (mapping) aFunction(mapFn);
|
|
14
14
|
if (source == undefined) return new this();
|
|
15
|
-
|
|
15
|
+
array = [];
|
|
16
16
|
if (mapping) {
|
|
17
17
|
n = 0;
|
|
18
18
|
boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined, 2);
|
|
19
19
|
iterate(source, function (nextItem) {
|
|
20
|
-
|
|
20
|
+
array.push(boundFunction(nextItem, n++));
|
|
21
21
|
});
|
|
22
22
|
} else {
|
|
23
|
-
iterate(source,
|
|
23
|
+
iterate(source, array.push, { that: array });
|
|
24
24
|
}
|
|
25
|
-
return new this(
|
|
25
|
+
return new this(array);
|
|
26
26
|
};
|
|
@@ -26,7 +26,7 @@ module.exports = {
|
|
|
26
26
|
size: 0
|
|
27
27
|
});
|
|
28
28
|
if (!DESCRIPTORS) that.size = 0;
|
|
29
|
-
if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
|
|
29
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
|
@@ -61,7 +61,7 @@ module.exports = {
|
|
|
61
61
|
id: id++,
|
|
62
62
|
frozen: undefined
|
|
63
63
|
});
|
|
64
|
-
if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);
|
|
64
|
+
if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
package/internals/collection.js
CHANGED
|
@@ -37,7 +37,7 @@ module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
|
|
|
37
37
|
type: CONSTRUCTOR_NAME,
|
|
38
38
|
collection: new NativeConstructor()
|
|
39
39
|
});
|
|
40
|
-
if (iterable != undefined) iterate(iterable, target[ADDER], target, IS_MAP);
|
|
40
|
+
if (iterable != undefined) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP });
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
|
|
@@ -6,10 +6,10 @@ module.exports = function (METHOD_NAME) {
|
|
|
6
6
|
var regexp = /./;
|
|
7
7
|
try {
|
|
8
8
|
'/./'[METHOD_NAME](regexp);
|
|
9
|
-
} catch (
|
|
9
|
+
} catch (error1) {
|
|
10
10
|
try {
|
|
11
11
|
regexp[MATCH] = false;
|
|
12
12
|
return '/./'[METHOD_NAME](regexp);
|
|
13
|
-
} catch (
|
|
13
|
+
} catch (error2) { /* empty */ }
|
|
14
14
|
} return false;
|
|
15
15
|
};
|
package/internals/global.js
CHANGED
|
@@ -3,6 +3,7 @@ var global = require('../internals/global');
|
|
|
3
3
|
var isObject = require('../internals/is-object');
|
|
4
4
|
var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');
|
|
5
5
|
var objectHas = require('../internals/has');
|
|
6
|
+
var shared = require('../internals/shared-store');
|
|
6
7
|
var sharedKey = require('../internals/shared-key');
|
|
7
8
|
var hiddenKeys = require('../internals/hidden-keys');
|
|
8
9
|
|
|
@@ -23,11 +24,12 @@ var getterFor = function (TYPE) {
|
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
if (NATIVE_WEAK_MAP) {
|
|
26
|
-
var store = new WeakMap();
|
|
27
|
+
var store = shared.state || (shared.state = new WeakMap());
|
|
27
28
|
var wmget = store.get;
|
|
28
29
|
var wmhas = store.has;
|
|
29
30
|
var wmset = store.set;
|
|
30
31
|
set = function (it, metadata) {
|
|
32
|
+
metadata.facade = it;
|
|
31
33
|
wmset.call(store, it, metadata);
|
|
32
34
|
return metadata;
|
|
33
35
|
};
|
|
@@ -41,6 +43,7 @@ if (NATIVE_WEAK_MAP) {
|
|
|
41
43
|
var STATE = sharedKey('state');
|
|
42
44
|
hiddenKeys[STATE] = true;
|
|
43
45
|
set = function (it, metadata) {
|
|
46
|
+
metadata.facade = it;
|
|
44
47
|
createNonEnumerableProperty(it, STATE, metadata);
|
|
45
48
|
return metadata;
|
|
46
49
|
};
|
package/internals/iterate.js
CHANGED
|
@@ -3,17 +3,33 @@ var isArrayIteratorMethod = require('../internals/is-array-iterator-method');
|
|
|
3
3
|
var toLength = require('../internals/to-length');
|
|
4
4
|
var bind = require('../internals/function-bind-context');
|
|
5
5
|
var getIteratorMethod = require('../internals/get-iterator-method');
|
|
6
|
-
var
|
|
6
|
+
var iteratorClose = require('../internals/iterator-close');
|
|
7
7
|
|
|
8
8
|
var Result = function (stopped, result) {
|
|
9
9
|
this.stopped = stopped;
|
|
10
10
|
this.result = result;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
var
|
|
13
|
+
module.exports = function (iterable, unboundFunction, options) {
|
|
14
|
+
var that = options && options.that;
|
|
15
|
+
var AS_ENTRIES = !!(options && options.AS_ENTRIES);
|
|
16
|
+
var IS_ITERATOR = !!(options && options.IS_ITERATOR);
|
|
17
|
+
var INTERRUPTED = !!(options && options.INTERRUPTED);
|
|
18
|
+
var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
|
|
15
19
|
var iterator, iterFn, index, length, result, next, step;
|
|
16
20
|
|
|
21
|
+
var stop = function (condition) {
|
|
22
|
+
if (iterator) iteratorClose(iterator);
|
|
23
|
+
return new Result(true, condition);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var callFn = function (value) {
|
|
27
|
+
if (AS_ENTRIES) {
|
|
28
|
+
anObject(value);
|
|
29
|
+
return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
|
|
30
|
+
} return INTERRUPTED ? fn(value, stop) : fn(value);
|
|
31
|
+
};
|
|
32
|
+
|
|
17
33
|
if (IS_ITERATOR) {
|
|
18
34
|
iterator = iterable;
|
|
19
35
|
} else {
|
|
@@ -22,9 +38,7 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
|
|
|
22
38
|
// optimisation for array iterators
|
|
23
39
|
if (isArrayIteratorMethod(iterFn)) {
|
|
24
40
|
for (index = 0, length = toLength(iterable.length); length > index; index++) {
|
|
25
|
-
result =
|
|
26
|
-
? boundFunction(anObject(step = iterable[index])[0], step[1])
|
|
27
|
-
: boundFunction(iterable[index]);
|
|
41
|
+
result = callFn(iterable[index]);
|
|
28
42
|
if (result && result instanceof Result) return result;
|
|
29
43
|
} return new Result(false);
|
|
30
44
|
}
|
|
@@ -33,11 +47,12 @@ var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITER
|
|
|
33
47
|
|
|
34
48
|
next = iterator.next;
|
|
35
49
|
while (!(step = next.call(iterator)).done) {
|
|
36
|
-
|
|
50
|
+
try {
|
|
51
|
+
result = callFn(step.value);
|
|
52
|
+
} catch (error) {
|
|
53
|
+
iteratorClose(iterator);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
37
56
|
if (typeof result == 'object' && result && result instanceof Result) return result;
|
|
38
57
|
} return new Result(false);
|
|
39
58
|
};
|
|
40
|
-
|
|
41
|
-
iterate.stop = function (result) {
|
|
42
|
-
return new Result(true, result);
|
|
43
|
-
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
var anObject = require('../internals/an-object');
|
|
3
|
+
|
|
4
|
+
// `Map.prototype.emplace` method
|
|
5
|
+
// https://github.com/thumbsupep/proposal-upsert
|
|
6
|
+
module.exports = function emplace(key, handler) {
|
|
7
|
+
var map = anObject(this);
|
|
8
|
+
var value = (map.has(key) && 'update' in handler)
|
|
9
|
+
? handler.update(map.get(key), key, map)
|
|
10
|
+
: handler.insert(key, map);
|
|
11
|
+
map.set(key, value);
|
|
12
|
+
return value;
|
|
13
|
+
};
|
package/internals/microtask.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
var global = require('../internals/global');
|
|
2
2
|
var getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;
|
|
3
|
-
var classof = require('../internals/classof-raw');
|
|
4
3
|
var macrotask = require('../internals/task').set;
|
|
5
4
|
var IS_IOS = require('../internals/engine-is-ios');
|
|
5
|
+
var IS_NODE = require('../internals/engine-is-node');
|
|
6
6
|
|
|
7
7
|
var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
|
|
8
|
+
var document = global.document;
|
|
8
9
|
var process = global.process;
|
|
9
10
|
var Promise = global.Promise;
|
|
10
|
-
var IS_NODE = classof(process) == 'process';
|
|
11
11
|
// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
|
|
12
12
|
var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
|
|
13
13
|
var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
|
|
@@ -33,13 +33,8 @@ if (!queueMicrotask) {
|
|
|
33
33
|
if (parent) parent.enter();
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
// Node.js
|
|
37
|
-
if (IS_NODE) {
|
|
38
|
-
notify = function () {
|
|
39
|
-
process.nextTick(flush);
|
|
40
|
-
};
|
|
41
36
|
// browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
|
|
42
|
-
|
|
37
|
+
if (!IS_IOS && !IS_NODE && MutationObserver && document) {
|
|
43
38
|
toggle = true;
|
|
44
39
|
node = document.createTextNode('');
|
|
45
40
|
new MutationObserver(flush).observe(node, { characterData: true });
|
|
@@ -54,6 +49,11 @@ if (!queueMicrotask) {
|
|
|
54
49
|
notify = function () {
|
|
55
50
|
then.call(promise, flush);
|
|
56
51
|
};
|
|
52
|
+
// Node.js without promises
|
|
53
|
+
} else if (IS_NODE) {
|
|
54
|
+
notify = function () {
|
|
55
|
+
process.nextTick(flush);
|
|
56
|
+
};
|
|
57
57
|
// for other environments - macrotask based on:
|
|
58
58
|
// - setImmediate
|
|
59
59
|
// - MessageChannel
|