core-js 3.50.0 → 3.51.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.
Files changed (40) hide show
  1. package/actual/iterator/chunks.js +2 -5
  2. package/actual/iterator/includes.js +2 -5
  3. package/actual/iterator/join.js +2 -5
  4. package/actual/iterator/windows.js +2 -5
  5. package/es/index.js +4 -0
  6. package/es/iterator/chunks.js +8 -0
  7. package/es/iterator/concat.js +4 -0
  8. package/es/iterator/from.js +4 -0
  9. package/es/iterator/includes.js +8 -0
  10. package/es/iterator/index.js +4 -0
  11. package/es/iterator/join.js +8 -0
  12. package/es/iterator/windows.js +8 -0
  13. package/es/iterator/zip-keyed.js +4 -0
  14. package/es/iterator/zip.js +4 -0
  15. package/full/index.js +4 -0
  16. package/full/iterator/range.js +4 -0
  17. package/internals/shared-store.js +2 -2
  18. package/modules/es.iterator.chunks.js +42 -0
  19. package/modules/es.iterator.includes.js +44 -0
  20. package/modules/es.iterator.join.js +31 -0
  21. package/modules/es.iterator.windows.js +12 -0
  22. package/modules/es.math.asinh.js +4 -2
  23. package/modules/es.math.cbrt.js +6 -1
  24. package/modules/es.math.sum-precise.js +27 -1
  25. package/modules/es.regexp.escape.js +2 -1
  26. package/modules/es.string.match-all.js +3 -4
  27. package/modules/esnext.iterator.chunks.js +2 -41
  28. package/modules/esnext.iterator.includes.js +2 -43
  29. package/modules/esnext.iterator.join.js +2 -30
  30. package/modules/esnext.iterator.windows.js +2 -11
  31. package/modules/esnext.promise.all-keyed.js +7 -7
  32. package/modules/esnext.promise.all-settled-keyed.js +7 -5
  33. package/package.json +1 -1
  34. package/stable/index.js +4 -0
  35. package/stable/iterator/chunks.js +4 -0
  36. package/stable/iterator/includes.js +4 -0
  37. package/stable/iterator/join.js +4 -0
  38. package/stable/iterator/windows.js +4 -0
  39. package/stage/3.js +0 -3
  40. package/stage/4.js +3 -0
@@ -1,8 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.to-string');
3
- require('../../modules/es.iterator.constructor');
2
+ var parent = require('../../stable/iterator/chunks');
4
3
  require('../../modules/esnext.iterator.chunks');
5
4
 
6
- var entryUnbind = require('../../internals/entry-unbind');
7
-
8
- module.exports = entryUnbind('Iterator', 'chunks');
5
+ module.exports = parent;
@@ -1,8 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.to-string');
3
- require('../../modules/es.iterator.constructor');
2
+ var parent = require('../../stable/iterator/includes');
4
3
  require('../../modules/esnext.iterator.includes');
5
4
 
6
- var entryUnbind = require('../../internals/entry-unbind');
7
-
8
- module.exports = entryUnbind('Iterator', 'includes');
5
+ module.exports = parent;
@@ -1,8 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.to-string');
3
- require('../../modules/es.iterator.constructor');
2
+ var parent = require('../../stable/iterator/join');
4
3
  require('../../modules/esnext.iterator.join');
5
4
 
6
- var entryUnbind = require('../../internals/entry-unbind');
7
-
8
- module.exports = entryUnbind('Iterator', 'join');
5
+ module.exports = parent;
@@ -1,8 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.to-string');
3
- require('../../modules/es.iterator.constructor');
2
+ var parent = require('../../stable/iterator/windows');
4
3
  require('../../modules/esnext.iterator.windows');
5
4
 
6
- var entryUnbind = require('../../internals/entry-unbind');
7
-
8
- module.exports = entryUnbind('Iterator', 'windows');
5
+ module.exports = parent;
package/es/index.js CHANGED
@@ -84,6 +84,7 @@ require('../modules/es.function.has-instance');
84
84
  require('../modules/es.function.name');
85
85
  require('../modules/es.global-this');
86
86
  require('../modules/es.iterator.constructor');
87
+ require('../modules/es.iterator.chunks');
87
88
  require('../modules/es.iterator.concat');
88
89
  require('../modules/es.iterator.dispose');
89
90
  require('../modules/es.iterator.drop');
@@ -93,11 +94,14 @@ require('../modules/es.iterator.find');
93
94
  require('../modules/es.iterator.flat-map');
94
95
  require('../modules/es.iterator.for-each');
95
96
  require('../modules/es.iterator.from');
97
+ require('../modules/es.iterator.includes');
98
+ require('../modules/es.iterator.join');
96
99
  require('../modules/es.iterator.map');
97
100
  require('../modules/es.iterator.reduce');
98
101
  require('../modules/es.iterator.some');
99
102
  require('../modules/es.iterator.take');
100
103
  require('../modules/es.iterator.to-array');
104
+ require('../modules/es.iterator.windows');
101
105
  require('../modules/es.iterator.zip');
102
106
  require('../modules/es.iterator.zip-keyed');
103
107
  require('../modules/es.json.is-raw-json');
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.to-string');
3
+ require('../../modules/es.iterator.constructor');
4
+ require('../../modules/es.iterator.chunks');
5
+
6
+ var entryUnbind = require('../../internals/entry-unbind');
7
+
8
+ module.exports = entryUnbind('Iterator', 'chunks');
@@ -3,17 +3,21 @@ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.object.to-string');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.chunks');
6
7
  require('../../modules/es.iterator.drop');
7
8
  require('../../modules/es.iterator.every');
8
9
  require('../../modules/es.iterator.filter');
9
10
  require('../../modules/es.iterator.find');
10
11
  require('../../modules/es.iterator.flat-map');
11
12
  require('../../modules/es.iterator.for-each');
13
+ require('../../modules/es.iterator.includes');
14
+ require('../../modules/es.iterator.join');
12
15
  require('../../modules/es.iterator.map');
13
16
  require('../../modules/es.iterator.reduce');
14
17
  require('../../modules/es.iterator.some');
15
18
  require('../../modules/es.iterator.take');
16
19
  require('../../modules/es.iterator.to-array');
20
+ require('../../modules/es.iterator.windows');
17
21
  require('../../modules/es.iterator.concat');
18
22
  require('../../modules/web.dom-collections.iterator');
19
23
  var path = require('../../internals/path');
@@ -3,6 +3,7 @@ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.object.to-string');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.chunks');
6
7
  require('../../modules/es.iterator.drop');
7
8
  require('../../modules/es.iterator.every');
8
9
  require('../../modules/es.iterator.filter');
@@ -10,11 +11,14 @@ require('../../modules/es.iterator.find');
10
11
  require('../../modules/es.iterator.flat-map');
11
12
  require('../../modules/es.iterator.for-each');
12
13
  require('../../modules/es.iterator.from');
14
+ require('../../modules/es.iterator.includes');
15
+ require('../../modules/es.iterator.join');
13
16
  require('../../modules/es.iterator.map');
14
17
  require('../../modules/es.iterator.reduce');
15
18
  require('../../modules/es.iterator.some');
16
19
  require('../../modules/es.iterator.take');
17
20
  require('../../modules/es.iterator.to-array');
21
+ require('../../modules/es.iterator.windows');
18
22
 
19
23
  var path = require('../../internals/path');
20
24
 
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.to-string');
3
+ require('../../modules/es.iterator.constructor');
4
+ require('../../modules/es.iterator.includes');
5
+
6
+ var entryUnbind = require('../../internals/entry-unbind');
7
+
8
+ module.exports = entryUnbind('Iterator', 'includes');
@@ -5,6 +5,7 @@ require('../../modules/es.object.to-string');
5
5
  require('../../modules/es.reflect.own-keys');
6
6
  require('../../modules/es.string.iterator');
7
7
  require('../../modules/es.iterator.constructor');
8
+ require('../../modules/es.iterator.chunks');
8
9
  require('../../modules/es.iterator.concat');
9
10
  require('../../modules/es.iterator.dispose');
10
11
  require('../../modules/es.iterator.drop');
@@ -14,11 +15,14 @@ require('../../modules/es.iterator.find');
14
15
  require('../../modules/es.iterator.flat-map');
15
16
  require('../../modules/es.iterator.for-each');
16
17
  require('../../modules/es.iterator.from');
18
+ require('../../modules/es.iterator.includes');
19
+ require('../../modules/es.iterator.join');
17
20
  require('../../modules/es.iterator.map');
18
21
  require('../../modules/es.iterator.reduce');
19
22
  require('../../modules/es.iterator.some');
20
23
  require('../../modules/es.iterator.take');
21
24
  require('../../modules/es.iterator.to-array');
25
+ require('../../modules/es.iterator.windows');
22
26
  require('../../modules/es.iterator.zip');
23
27
  require('../../modules/es.iterator.zip-keyed');
24
28
 
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.to-string');
3
+ require('../../modules/es.iterator.constructor');
4
+ require('../../modules/es.iterator.join');
5
+
6
+ var entryUnbind = require('../../internals/entry-unbind');
7
+
8
+ module.exports = entryUnbind('Iterator', 'join');
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.to-string');
3
+ require('../../modules/es.iterator.constructor');
4
+ require('../../modules/es.iterator.windows');
5
+
6
+ var entryUnbind = require('../../internals/entry-unbind');
7
+
8
+ module.exports = entryUnbind('Iterator', 'windows');
@@ -5,17 +5,21 @@ require('../../modules/es.object.to-string');
5
5
  require('../../modules/es.reflect.own-keys');
6
6
  require('../../modules/es.string.iterator');
7
7
  require('../../modules/es.iterator.constructor');
8
+ require('../../modules/es.iterator.chunks');
8
9
  require('../../modules/es.iterator.drop');
9
10
  require('../../modules/es.iterator.every');
10
11
  require('../../modules/es.iterator.filter');
11
12
  require('../../modules/es.iterator.find');
12
13
  require('../../modules/es.iterator.flat-map');
13
14
  require('../../modules/es.iterator.for-each');
15
+ require('../../modules/es.iterator.includes');
16
+ require('../../modules/es.iterator.join');
14
17
  require('../../modules/es.iterator.map');
15
18
  require('../../modules/es.iterator.reduce');
16
19
  require('../../modules/es.iterator.some');
17
20
  require('../../modules/es.iterator.take');
18
21
  require('../../modules/es.iterator.to-array');
22
+ require('../../modules/es.iterator.windows');
19
23
  require('../../modules/es.iterator.zip-keyed');
20
24
  require('../../modules/web.dom-collections.iterator');
21
25
 
@@ -3,17 +3,21 @@ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.object.to-string');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.chunks');
6
7
  require('../../modules/es.iterator.drop');
7
8
  require('../../modules/es.iterator.every');
8
9
  require('../../modules/es.iterator.filter');
9
10
  require('../../modules/es.iterator.find');
10
11
  require('../../modules/es.iterator.flat-map');
11
12
  require('../../modules/es.iterator.for-each');
13
+ require('../../modules/es.iterator.includes');
14
+ require('../../modules/es.iterator.join');
12
15
  require('../../modules/es.iterator.map');
13
16
  require('../../modules/es.iterator.reduce');
14
17
  require('../../modules/es.iterator.some');
15
18
  require('../../modules/es.iterator.take');
16
19
  require('../../modules/es.iterator.to-array');
20
+ require('../../modules/es.iterator.windows');
17
21
  require('../../modules/es.iterator.zip');
18
22
  require('../../modules/web.dom-collections.iterator');
19
23
 
package/full/index.js CHANGED
@@ -84,6 +84,7 @@ require('../modules/es.function.has-instance');
84
84
  require('../modules/es.function.name');
85
85
  require('../modules/es.global-this');
86
86
  require('../modules/es.iterator.constructor');
87
+ require('../modules/es.iterator.chunks');
87
88
  require('../modules/es.iterator.concat');
88
89
  require('../modules/es.iterator.dispose');
89
90
  require('../modules/es.iterator.drop');
@@ -93,11 +94,14 @@ require('../modules/es.iterator.find');
93
94
  require('../modules/es.iterator.flat-map');
94
95
  require('../modules/es.iterator.for-each');
95
96
  require('../modules/es.iterator.from');
97
+ require('../modules/es.iterator.includes');
98
+ require('../modules/es.iterator.join');
96
99
  require('../modules/es.iterator.map');
97
100
  require('../modules/es.iterator.reduce');
98
101
  require('../modules/es.iterator.some');
99
102
  require('../modules/es.iterator.take');
100
103
  require('../modules/es.iterator.to-array');
104
+ require('../modules/es.iterator.windows');
101
105
  require('../modules/es.iterator.zip');
102
106
  require('../modules/es.iterator.zip-keyed');
103
107
  require('../modules/es.json.is-raw-json');
@@ -3,17 +3,21 @@ require('../../modules/es.array.iterator');
3
3
  require('../../modules/es.object.to-string');
4
4
  require('../../modules/es.string.iterator');
5
5
  require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.chunks');
6
7
  require('../../modules/es.iterator.drop');
7
8
  require('../../modules/es.iterator.every');
8
9
  require('../../modules/es.iterator.filter');
9
10
  require('../../modules/es.iterator.find');
10
11
  require('../../modules/es.iterator.flat-map');
11
12
  require('../../modules/es.iterator.for-each');
13
+ require('../../modules/es.iterator.includes');
14
+ require('../../modules/es.iterator.join');
12
15
  require('../../modules/es.iterator.map');
13
16
  require('../../modules/es.iterator.reduce');
14
17
  require('../../modules/es.iterator.some');
15
18
  require('../../modules/es.iterator.take');
16
19
  require('../../modules/es.iterator.to-array');
20
+ require('../../modules/es.iterator.windows');
17
21
  // TODO: drop from core-js@4
18
22
  require('../../modules/esnext.iterator.constructor');
19
23
  require('../../modules/esnext.iterator.chunks');
@@ -7,9 +7,9 @@ var SHARED = '__core-js_shared__';
7
7
  var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
8
8
 
9
9
  (store.versions || (store.versions = [])).push({
10
- version: '3.50.0',
10
+ version: '3.51.0',
11
11
  mode: IS_PURE ? 'pure' : 'global',
12
12
  copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',
13
- license: 'https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE',
13
+ license: 'https://github.com/zloirock/core-js/blob/v3.51.0/LICENSE',
14
14
  source: 'https://github.com/zloirock/core-js'
15
15
  });
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var anObject = require('../internals/an-object');
4
+ var call = require('../internals/function-call');
5
+ var createIteratorProxy = require('../internals/iterator-create-proxy');
6
+ var getIteratorDirect = require('../internals/get-iterator-direct');
7
+ var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
8
+ var uncurryThis = require('../internals/function-uncurry-this');
9
+ var IS_PURE = require('../internals/is-pure');
10
+
11
+ var push = uncurryThis([].push);
12
+
13
+ var IteratorProxy = createIteratorProxy(function () {
14
+ var iterator = this.iterator;
15
+ var next = this.next;
16
+ var chunkSize = this.chunkSize;
17
+ var buffer = [];
18
+ var result, done;
19
+ while (true) {
20
+ result = anObject(call(next, iterator));
21
+ done = !!result.done;
22
+ if (done) {
23
+ if (buffer.length) return buffer;
24
+ this.done = true;
25
+ return;
26
+ }
27
+ push(buffer, result.value);
28
+ if (buffer.length === chunkSize) return buffer;
29
+ }
30
+ });
31
+
32
+ // `Iterator.prototype.chunks` method
33
+ // https://tc39.es/ecma262/#sec-iterator.prototype.chunks
34
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
35
+ chunks: function chunks(chunkSize) {
36
+ anObject(this);
37
+ chunkSizeValidation(chunkSize, this);
38
+ return new IteratorProxy(getIteratorDirect(this), {
39
+ chunkSize: chunkSize
40
+ });
41
+ }
42
+ });
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var anObject = require('../internals/an-object');
4
+ var isIntegralNumber = require('../internals/is-integral-number');
5
+ var iterate = require('../internals/iterate');
6
+ var iteratorClose = require('../internals/iterator-close');
7
+ var sameValueZero = require('../internals/same-value-zero');
8
+ var IS_PURE = require('../internals/is-pure');
9
+
10
+ var $RangeError = RangeError;
11
+ var $TypeError = TypeError;
12
+ var $Infinity = Infinity;
13
+
14
+ var INVALID_SKIPPED_ELEMENTS = 'skippedElements should be a positive safe integer';
15
+
16
+ // `Iterator.prototype.includes` method
17
+ // https://tc39.es/ecma262/#sec-iterator.prototype.includes
18
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
19
+ includes: function includes(searchElement /* , skippedElements */) {
20
+ anObject(this);
21
+ var skippedElements = arguments.length > 1 ? arguments[1] : undefined;
22
+ var skipped = 0;
23
+ var toSkip;
24
+ try {
25
+ if (skippedElements === undefined) {
26
+ toSkip = 0;
27
+ } else if (skippedElements === $Infinity || skippedElements === -$Infinity || isIntegralNumber(skippedElements)) {
28
+ toSkip = skippedElements;
29
+ } else {
30
+ throw new $TypeError(INVALID_SKIPPED_ELEMENTS);
31
+ }
32
+ if (toSkip < 0 || (toSkip !== $Infinity && toSkip > 0x1FFFFFFFFFFFFF)) {
33
+ throw new $RangeError(INVALID_SKIPPED_ELEMENTS);
34
+ }
35
+ } catch (error) {
36
+ iteratorClose(this, 'throw', error);
37
+ }
38
+
39
+ return iterate(this, function (value, stop) {
40
+ if (skipped < toSkip) skipped++;
41
+ else if (sameValueZero(value, searchElement)) return stop();
42
+ }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
43
+ }
44
+ });
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var $toString = require('../internals/to-string');
4
+ var anObject = require('../internals/an-object');
5
+ var isNullOrUndefined = require('../internals/is-null-or-undefined');
6
+ var iterate = require('../internals/iterate');
7
+ var iteratorClose = require('../internals/iterator-close');
8
+ var uncurryThis = require('../internals/function-uncurry-this');
9
+ var IS_PURE = require('../internals/is-pure');
10
+
11
+ var $join = uncurryThis([].join);
12
+ var push = uncurryThis([].push);
13
+
14
+ // `Iterator.prototype.join` method
15
+ // https://tc39.es/ecma262/#sec-iterator.prototype.join
16
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
17
+ join: function join(separator) {
18
+ anObject(this);
19
+ var sep;
20
+ try {
21
+ sep = separator === undefined ? ',' : $toString(separator);
22
+ } catch (error) {
23
+ iteratorClose(this, 'throw', error);
24
+ }
25
+ var result = [];
26
+ iterate(this, function (value) {
27
+ push(result, isNullOrUndefined(value) ? '' : $toString(value));
28
+ }, { IS_ITERATOR: true });
29
+ return $join(result, sep);
30
+ }
31
+ });
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var iteratorWindow = require('../internals/iterator-window');
4
+ var IS_PURE = require('../internals/is-pure');
5
+
6
+ // `Iterator.prototype.windows` method
7
+ // https://tc39.es/ecma262/#sec-iterator.prototype.windows
8
+ $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
9
+ windows: function windows(windowSize /* , undersized */) {
10
+ return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
11
+ }
12
+ });
@@ -4,6 +4,7 @@ var log1p = require('../internals/math-log1p');
4
4
 
5
5
  // eslint-disable-next-line es/no-math-asinh -- required for testing
6
6
  var $asinh = Math.asinh;
7
+ var abs = Math.abs;
7
8
  var log = Math.log;
8
9
  var sqrt = Math.sqrt;
9
10
  var LN2 = Math.LN2;
@@ -16,11 +17,12 @@ function asinh(x) {
16
17
  : n < 1e-8 ? n : log1p(n + n * n / (1 + sqrt(n * n + 1)));
17
18
  }
18
19
 
19
- var FORCED = !($asinh && 1 / $asinh(0) > 0);
20
+ // Tor Browser bug: Math.asinh(0) -> -0
21
+ // imprecise in V8 < 5.4 and Rhino
22
+ var FORCED = !($asinh && 1 / $asinh(0) > 0 && abs($asinh(1e-8) - 1e-8) < 1e-16);
20
23
 
21
24
  // `Math.asinh` method
22
25
  // https://tc39.es/ecma262/#sec-math.asinh
23
- // Tor Browser bug: Math.asinh(0) -> -0
24
26
  $({ target: 'Math', stat: true, forced: FORCED }, {
25
27
  asinh: asinh
26
28
  });
@@ -2,12 +2,17 @@
2
2
  var $ = require('../internals/export');
3
3
  var sign = require('../internals/math-sign');
4
4
 
5
+ // eslint-disable-next-line es/no-math-cbrt -- required for testing
6
+ var $cbrt = Math.cbrt;
5
7
  var abs = Math.abs;
6
8
  var pow = Math.pow;
7
9
 
10
+ // imprecise in FF < 48 (`cbrt(64)`) and with glibc `cbrt` (`cbrt(27)`), each check catches only one of them
11
+ var FORCED = !$cbrt || $cbrt(27) !== 3 || $cbrt(64) !== 4;
12
+
8
13
  // `Math.cbrt` method
9
14
  // https://tc39.es/ecma262/#sec-math.cbrt
10
- $({ target: 'Math', stat: true }, {
15
+ $({ target: 'Math', stat: true, forced: FORCED }, {
11
16
  cbrt: function cbrt(x) {
12
17
  var n = +x;
13
18
  var y = sign(n) * pow(abs(n), 1 / 3);
@@ -4,14 +4,21 @@
4
4
  var $ = require('../internals/export');
5
5
  var uncurryThis = require('../internals/function-uncurry-this');
6
6
  var iterate = require('../internals/iterate');
7
+ var fails = require('../internals/fails');
8
+ var getIterator = require('../internals/get-iterator-internal');
9
+ var setPrototypeOf = require('../internals/object-set-prototype-of');
10
+ var wellKnownSymbol = require('../internals/well-known-symbol');
7
11
 
8
12
  var $RangeError = RangeError;
9
13
  var $TypeError = TypeError;
10
14
  var $Infinity = Infinity;
11
15
  var $NaN = NaN;
16
+ // eslint-disable-next-line es/no-math-sumprecise -- required for testing
17
+ var $sumPrecise = Math.sumPrecise;
12
18
  var abs = Math.abs;
13
19
  var pow = Math.pow;
14
20
  var push = uncurryThis([].push);
21
+ var ITERATOR = wellKnownSymbol('iterator');
15
22
 
16
23
  var POW_2_1023 = pow(2, 1023);
17
24
  var MAX_SAFE_INTEGER = pow(2, 53) - 1; // 2 ** 53 - 1 === 9007199254740991
@@ -24,6 +31,25 @@ var PLUS_INFINITY = {};
24
31
  var MINUS_ZERO = {};
25
32
  var FINITE = {};
26
33
 
34
+ // https://bugs.webkit.org/show_bug.cgi?id=315450
35
+ var FORCED = fails(function () {
36
+ if ($sumPrecise([-1]) !== -1 || $sumPrecise([-MAX_DOUBLE]) !== -MAX_DOUBLE) return true;
37
+ if (!setPrototypeOf) return false;
38
+ // https://issues.chromium.org/issues/500536164
39
+ try {
40
+ $sumPrecise(setPrototypeOf([1], {}));
41
+ return true;
42
+ } catch (error) { /* empty */ }
43
+ // https://issues.chromium.org/issues/572987948
44
+ try {
45
+ var prototype = {};
46
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3-compatible computed property
47
+ prototype[ITERATOR] = function () { return this; };
48
+ $sumPrecise(setPrototypeOf(getIterator([1]), prototype));
49
+ return true;
50
+ } catch (error) { /* empty */ }
51
+ });
52
+
27
53
  // prerequisite: abs(x) >= abs(y)
28
54
  var twosum = function (x, y) {
29
55
  var hi = x + y;
@@ -33,7 +59,7 @@ var twosum = function (x, y) {
33
59
 
34
60
  // `Math.sumPrecise` method
35
61
  // https://tc39.es/ecma262/#sec-math.sumprecise
36
- $({ target: 'Math', stat: true }, {
62
+ $({ target: 'Math', stat: true, forced: FORCED }, {
37
63
  // eslint-disable-next-line max-statements -- ok
38
64
  sumPrecise: function sumPrecise(items) {
39
65
  var numbers = [];
@@ -31,7 +31,8 @@ var escapeChar = function (chr) {
31
31
  };
32
32
 
33
33
  // Avoiding the use of polyfills of the previous iteration of this proposal
34
- var FORCED = !$escape || $escape('ab') !== '\\x61b';
34
+ // and implementations with the WebKit bug https://bugs.webkit.org/show_bug.cgi?id=323642
35
+ var FORCED = !$escape || $escape('ab\uD840\uDC2A') !== '\\x61b\uD840\uDC2A';
35
36
 
36
37
  // `RegExp.escape` method
37
38
  // https://tc39.es/ecma262/#sec-regexp.escape
@@ -69,10 +69,9 @@ var $matchAll = function (string) {
69
69
  var S = toString(string);
70
70
  var C = speciesConstructor(R, RegExp);
71
71
  var flags = toString(getRegExpFlags(R));
72
- var matcher, $global, fullUnicode;
73
- matcher = new C(C === RegExp ? R.source : R, flags);
74
- $global = !!~stringIndexOf(flags, 'g');
75
- fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
72
+ var matcher = new C(C === RegExp ? R.source : R, flags);
73
+ var $global = !!~stringIndexOf(flags, 'g');
74
+ var fullUnicode = !!~stringIndexOf(flags, 'u') || !!~stringIndexOf(flags, 'v');
76
75
  matcher.lastIndex = toLength(R.lastIndex);
77
76
  return new $RegExpStringIterator(matcher, S, $global, fullUnicode);
78
77
  };
@@ -1,42 +1,3 @@
1
1
  'use strict';
2
- var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
- var call = require('../internals/function-call');
5
- var createIteratorProxy = require('../internals/iterator-create-proxy');
6
- var getIteratorDirect = require('../internals/get-iterator-direct');
7
- var chunkSizeValidation = require('../internals/iterator-chunk-size-validation');
8
- var uncurryThis = require('../internals/function-uncurry-this');
9
- var IS_PURE = require('../internals/is-pure');
10
-
11
- var push = uncurryThis([].push);
12
-
13
- var IteratorProxy = createIteratorProxy(function () {
14
- var iterator = this.iterator;
15
- var next = this.next;
16
- var chunkSize = this.chunkSize;
17
- var buffer = [];
18
- var result, done;
19
- while (true) {
20
- result = anObject(call(next, iterator));
21
- done = !!result.done;
22
- if (done) {
23
- if (buffer.length) return buffer;
24
- this.done = true;
25
- return;
26
- }
27
- push(buffer, result.value);
28
- if (buffer.length === chunkSize) return buffer;
29
- }
30
- });
31
-
32
- // `Iterator.prototype.chunks` method
33
- // https://github.com/tc39/proposal-iterator-chunking
34
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
35
- chunks: function chunks(chunkSize) {
36
- anObject(this);
37
- chunkSizeValidation(chunkSize, this);
38
- return new IteratorProxy(getIteratorDirect(this), {
39
- chunkSize: chunkSize
40
- });
41
- }
42
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.iterator.chunks');
@@ -1,44 +1,3 @@
1
1
  'use strict';
2
- var $ = require('../internals/export');
3
- var anObject = require('../internals/an-object');
4
- var isIntegralNumber = require('../internals/is-integral-number');
5
- var iterate = require('../internals/iterate');
6
- var iteratorClose = require('../internals/iterator-close');
7
- var sameValueZero = require('../internals/same-value-zero');
8
- var IS_PURE = require('../internals/is-pure');
9
-
10
- var $RangeError = RangeError;
11
- var $TypeError = TypeError;
12
- var $Infinity = Infinity;
13
-
14
- var INVALID_SKIPPED_ELEMENTS = 'skippedElements should be a positive safe integer';
15
-
16
- // `Iterator.prototype.includes` method
17
- // https://github.com/tc39/proposal-iterator-includes
18
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
19
- includes: function includes(searchElement /* , skippedElements */) {
20
- anObject(this);
21
- var skippedElements = arguments.length > 1 ? arguments[1] : undefined;
22
- var skipped = 0;
23
- var toSkip;
24
- try {
25
- if (skippedElements === undefined) {
26
- toSkip = 0;
27
- } else if (skippedElements === $Infinity || skippedElements === -$Infinity || isIntegralNumber(skippedElements)) {
28
- toSkip = skippedElements;
29
- } else {
30
- throw new $TypeError(INVALID_SKIPPED_ELEMENTS);
31
- }
32
- if (toSkip < 0 || (toSkip !== $Infinity && toSkip > 0x1FFFFFFFFFFFFF)) {
33
- throw new $RangeError(INVALID_SKIPPED_ELEMENTS);
34
- }
35
- } catch (error) {
36
- iteratorClose(this, 'throw', error);
37
- }
38
-
39
- return iterate(this, function (value, stop) {
40
- if (skipped < toSkip) skipped++;
41
- else if (sameValueZero(value, searchElement)) return stop();
42
- }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;
43
- }
44
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.iterator.includes');
@@ -1,31 +1,3 @@
1
1
  'use strict';
2
- var $ = require('../internals/export');
3
- var $toString = require('../internals/to-string');
4
- var anObject = require('../internals/an-object');
5
- var isNullOrUndefined = require('../internals/is-null-or-undefined');
6
- var iterate = require('../internals/iterate');
7
- var iteratorClose = require('../internals/iterator-close');
8
- var uncurryThis = require('../internals/function-uncurry-this');
9
- var IS_PURE = require('../internals/is-pure');
10
-
11
- var $join = uncurryThis([].join);
12
- var push = uncurryThis([].push);
13
-
14
- // `Iterator.prototype.join` method
15
- // https://github.com/tc39/proposal-iterator-join
16
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
17
- join: function join(separator) {
18
- anObject(this);
19
- var sep;
20
- try {
21
- sep = separator === undefined ? ',' : $toString(separator);
22
- } catch (error) {
23
- iteratorClose(this, 'throw', error);
24
- }
25
- var result = [];
26
- iterate(this, function (value) {
27
- push(result, isNullOrUndefined(value) ? '' : $toString(value));
28
- }, { IS_ITERATOR: true });
29
- return $join(result, sep);
30
- }
31
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.iterator.join');
@@ -1,12 +1,3 @@
1
1
  'use strict';
2
- var $ = require('../internals/export');
3
- var iteratorWindow = require('../internals/iterator-window');
4
- var IS_PURE = require('../internals/is-pure');
5
-
6
- // `Iterator.prototype.windows` method
7
- // https://github.com/tc39/proposal-iterator-chunking
8
- $({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {
9
- windows: function windows(windowSize /* , undersized */) {
10
- return iteratorWindow(this, windowSize, arguments.length < 2 ? undefined : arguments[1]);
11
- }
12
- });
2
+ // TODO: Remove from `core-js@4`
3
+ require('../modules/es.iterator.windows');
@@ -27,6 +27,11 @@ $({ target: 'Promise', stat: true }, {
27
27
  var values = [];
28
28
  var remaining = 1;
29
29
  var counter = 0;
30
+ var resolveResult = function () {
31
+ var res = create(null);
32
+ for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
33
+ resolve(res);
34
+ };
30
35
  for (var i = 0; i < allKeys.length; i++) (function (key) {
31
36
  var desc = getOwnPropertyDescriptor.f(promises, key);
32
37
  if (desc && desc.enumerable) {
@@ -39,17 +44,12 @@ $({ target: 'Promise', stat: true }, {
39
44
  if (alreadyCalled) return;
40
45
  alreadyCalled = true;
41
46
  values[index] = value;
42
- --remaining;
43
- if (remaining === 0) {
44
- var res = create(null);
45
- for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
46
- resolve(res);
47
- }
47
+ --remaining || resolveResult();
48
48
  }, reject);
49
49
  counter++;
50
50
  }
51
51
  })(allKeys[i]);
52
- --remaining || resolve(create(null));
52
+ --remaining || resolveResult();
53
53
  });
54
54
  if (result.error) reject(result.value);
55
55
  return capability.promise;
@@ -27,6 +27,11 @@ $({ target: 'Promise', stat: true }, {
27
27
  var values = [];
28
28
  var remaining = 1;
29
29
  var counter = 0;
30
+ var resolveResult = function () {
31
+ var res = create(null);
32
+ for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
33
+ resolve(res);
34
+ };
30
35
  for (var i = 0; i < allKeys.length; i++) (function (key) {
31
36
  var desc = getOwnPropertyDescriptor.f(promises, key);
32
37
  if (desc && desc.enumerable) {
@@ -37,10 +42,7 @@ $({ target: 'Promise', stat: true }, {
37
42
  values[index] = rejection
38
43
  ? { status: 'rejected', reason: value }
39
44
  : { status: 'fulfilled', value: value };
40
- if (--remaining) return;
41
- var res = create(null);
42
- for (var j = 0; j < keys.length; j++) createProperty(res, keys[j], values[j]);
43
- resolve(res);
45
+ --remaining || resolveResult();
44
46
  };
45
47
  };
46
48
  var index = counter;
@@ -52,7 +54,7 @@ $({ target: 'Promise', stat: true }, {
52
54
  counter++;
53
55
  }
54
56
  })(allKeys[i]);
55
- --remaining || resolve(create(null));
57
+ --remaining || resolveResult();
56
58
  });
57
59
  if (result.error) reject(result.value);
58
60
  return capability.promise;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.50.0",
3
+ "version": "3.51.0",
4
4
  "type": "commonjs",
5
5
  "description": "Standard library",
6
6
  "keywords": [
package/stable/index.js CHANGED
@@ -84,6 +84,7 @@ require('../modules/es.function.has-instance');
84
84
  require('../modules/es.function.name');
85
85
  require('../modules/es.global-this');
86
86
  require('../modules/es.iterator.constructor');
87
+ require('../modules/es.iterator.chunks');
87
88
  require('../modules/es.iterator.concat');
88
89
  require('../modules/es.iterator.dispose');
89
90
  require('../modules/es.iterator.drop');
@@ -93,11 +94,14 @@ require('../modules/es.iterator.find');
93
94
  require('../modules/es.iterator.flat-map');
94
95
  require('../modules/es.iterator.for-each');
95
96
  require('../modules/es.iterator.from');
97
+ require('../modules/es.iterator.includes');
98
+ require('../modules/es.iterator.join');
96
99
  require('../modules/es.iterator.map');
97
100
  require('../modules/es.iterator.reduce');
98
101
  require('../modules/es.iterator.some');
99
102
  require('../modules/es.iterator.take');
100
103
  require('../modules/es.iterator.to-array');
104
+ require('../modules/es.iterator.windows');
101
105
  require('../modules/es.iterator.zip');
102
106
  require('../modules/es.iterator.zip-keyed');
103
107
  require('../modules/es.json.is-raw-json');
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/chunks');
3
+
4
+ module.exports = parent;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/includes');
3
+
4
+ module.exports = parent;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/join');
3
+
4
+ module.exports = parent;
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/windows');
3
+
4
+ module.exports = parent;
package/stage/3.js CHANGED
@@ -3,14 +3,11 @@ var parent = require('./4');
3
3
 
4
4
  require('../proposals/await-dictionary');
5
5
  require('../proposals/decorator-metadata-v2');
6
- require('../proposals/iterator-includes');
7
- require('../proposals/iterator-join');
8
6
  require('../proposals/joint-iteration');
9
7
  // TODO: Obsolete versions, remove from `core-js@4`
10
8
  require('../proposals/array-grouping-stage-3');
11
9
  require('../proposals/array-grouping-stage-3-2');
12
10
  require('../proposals/change-array-by-copy');
13
- require('../proposals/iterator-chunking-v2');
14
11
  require('../proposals/iterator-helpers-stage-3');
15
12
 
16
13
  module.exports = parent;
package/stage/4.js CHANGED
@@ -13,6 +13,9 @@ require('../proposals/float16');
13
13
  require('../proposals/global-this');
14
14
  require('../proposals/is-error');
15
15
  require('../proposals/iterator-helpers-stage-3-2');
16
+ require('../proposals/iterator-chunking-v2');
17
+ require('../proposals/iterator-includes');
18
+ require('../proposals/iterator-join');
16
19
  require('../proposals/iterator-sequencing');
17
20
  require('../proposals/json-parse-with-source');
18
21
  require('../proposals/map-upsert-v4');