core-js 3.45.1 → 3.47.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 (57) hide show
  1. package/LICENSE +1 -1
  2. package/actual/iterator/concat.js +2 -18
  3. package/actual/iterator/index.js +3 -0
  4. package/actual/iterator/zip-keyed.js +24 -0
  5. package/actual/iterator/zip.js +22 -0
  6. package/actual/json/index.js +0 -3
  7. package/actual/json/is-raw-json.js +2 -2
  8. package/actual/json/parse.js +2 -3
  9. package/actual/json/raw-json.js +3 -4
  10. package/es/index.js +4 -0
  11. package/es/iterator/concat.js +21 -0
  12. package/es/iterator/index.js +1 -0
  13. package/es/json/index.js +6 -0
  14. package/es/json/is-raw-json.js +5 -0
  15. package/es/json/parse.js +6 -0
  16. package/es/json/raw-json.js +7 -0
  17. package/full/index.js +4 -0
  18. package/full/iterator/index.js +1 -3
  19. package/full/iterator/zip-keyed.js +2 -22
  20. package/full/iterator/zip.js +2 -20
  21. package/internals/check-correctness-of-iteration.js +2 -0
  22. package/internals/fix-regexp-well-known-symbol-logic.js +6 -4
  23. package/internals/internal-metadata.js +1 -0
  24. package/internals/iterator-window.js +11 -6
  25. package/internals/iterator-zip.js +1 -1
  26. package/internals/set-method-accept-set-like.js +1 -3
  27. package/internals/shared-store.js +3 -3
  28. package/internals/to-string-tag-support.js +1 -1
  29. package/modules/es.error.cause.js +2 -0
  30. package/modules/es.iterator.concat.js +56 -0
  31. package/modules/es.json.is-raw-json.js +11 -0
  32. package/modules/es.json.parse.js +251 -0
  33. package/modules/es.json.raw-json.js +39 -0
  34. package/modules/es.json.stringify.js +78 -19
  35. package/modules/es.object.group-by.js +2 -1
  36. package/modules/esnext.iterator.concat.js +2 -55
  37. package/modules/esnext.iterator.sliding.js +1 -1
  38. package/modules/esnext.iterator.windows.js +2 -2
  39. package/modules/esnext.iterator.zip-keyed.js +3 -2
  40. package/modules/esnext.iterator.zip.js +1 -1
  41. package/modules/esnext.json.is-raw-json.js +2 -10
  42. package/modules/esnext.json.parse.js +2 -250
  43. package/modules/esnext.json.raw-json.js +2 -85
  44. package/modules/esnext.weak-map.get-or-insert-computed.js +12 -1
  45. package/modules/web.url-search-params.constructor.js +1 -1
  46. package/package.json +3 -1
  47. package/proposals/iterator-chunking-v2.js +4 -0
  48. package/stable/index.js +4 -0
  49. package/stable/iterator/concat.js +5 -0
  50. package/stable/json/is-raw-json.js +4 -0
  51. package/stable/json/parse.js +4 -0
  52. package/stable/json/raw-json.js +4 -0
  53. package/stage/2.7.js +1 -1
  54. package/stage/2.js +0 -1
  55. package/stage/3.js +1 -2
  56. package/stage/4.js +2 -0
  57. package/internals/get-json-replacer-function.js +0 -30
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2025 Denis Pushkarev
1
+ Copyright (c) 2014-2025 Denis Pushkarev, 2025 CoreJS Company
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
@@ -1,21 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.array.iterator');
3
- require('../../modules/es.object.to-string');
4
- require('../../modules/es.string.iterator');
5
- require('../../modules/es.iterator.constructor');
6
- require('../../modules/es.iterator.drop');
7
- require('../../modules/es.iterator.every');
8
- require('../../modules/es.iterator.filter');
9
- require('../../modules/es.iterator.find');
10
- require('../../modules/es.iterator.flat-map');
11
- require('../../modules/es.iterator.for-each');
12
- require('../../modules/es.iterator.map');
13
- require('../../modules/es.iterator.reduce');
14
- require('../../modules/es.iterator.some');
15
- require('../../modules/es.iterator.take');
16
- require('../../modules/es.iterator.to-array');
2
+ var parent = require('../../stable/iterator/concat');
17
3
  require('../../modules/esnext.iterator.concat');
18
- require('../../modules/web.dom-collections.iterator');
19
- var path = require('../../internals/path');
20
4
 
21
- module.exports = path.Iterator.concat;
5
+ module.exports = parent;
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  var parent = require('../../stable/iterator');
3
+ require('../../modules/es.object.create');
3
4
  require('../../modules/es.promise');
4
5
  require('../../modules/esnext.iterator.constructor');
5
6
  require('../../modules/esnext.iterator.concat');
@@ -17,5 +18,7 @@ require('../../modules/esnext.iterator.some');
17
18
  require('../../modules/esnext.iterator.take');
18
19
  require('../../modules/esnext.iterator.to-array');
19
20
  require('../../modules/esnext.iterator.to-async');
21
+ require('../../modules/esnext.iterator.zip');
22
+ require('../../modules/esnext.iterator.zip-keyed');
20
23
 
21
24
  module.exports = parent;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+ require('../../modules/es.array.iterator');
3
+ require('../../modules/es.object.create');
4
+ require('../../modules/es.object.to-string');
5
+ require('../../modules/es.string.iterator');
6
+ require('../../modules/es.iterator.constructor');
7
+ require('../../modules/es.iterator.drop');
8
+ require('../../modules/es.iterator.every');
9
+ require('../../modules/es.iterator.filter');
10
+ require('../../modules/es.iterator.find');
11
+ require('../../modules/es.iterator.flat-map');
12
+ require('../../modules/es.iterator.for-each');
13
+ require('../../modules/es.iterator.map');
14
+ require('../../modules/es.iterator.reduce');
15
+ require('../../modules/es.iterator.some');
16
+ require('../../modules/es.iterator.take');
17
+ require('../../modules/es.iterator.to-array');
18
+ require('../../modules/es.reflect.own-keys');
19
+ require('../../modules/esnext.iterator.zip-keyed');
20
+ require('../../modules/web.dom-collections.iterator');
21
+
22
+ var entryUnbind = require('../../internals/entry-unbind');
23
+
24
+ module.exports = entryUnbind('Iterator', 'zipKeyed');
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+ require('../../modules/es.array.iterator');
3
+ require('../../modules/es.object.to-string');
4
+ require('../../modules/es.string.iterator');
5
+ require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.drop');
7
+ require('../../modules/es.iterator.every');
8
+ require('../../modules/es.iterator.filter');
9
+ require('../../modules/es.iterator.find');
10
+ require('../../modules/es.iterator.flat-map');
11
+ require('../../modules/es.iterator.for-each');
12
+ require('../../modules/es.iterator.map');
13
+ require('../../modules/es.iterator.reduce');
14
+ require('../../modules/es.iterator.some');
15
+ require('../../modules/es.iterator.take');
16
+ require('../../modules/es.iterator.to-array');
17
+ require('../../modules/esnext.iterator.zip');
18
+ require('../../modules/web.dom-collections.iterator');
19
+
20
+ var entryUnbind = require('../../internals/entry-unbind');
21
+
22
+ module.exports = entryUnbind('Iterator', 'zip');
@@ -1,8 +1,5 @@
1
1
  'use strict';
2
2
  var parent = require('../../stable/json');
3
- require('../../modules/es.object.create');
4
- require('../../modules/es.object.freeze');
5
- require('../../modules/es.object.keys');
6
3
  require('../../modules/esnext.json.is-raw-json');
7
4
  require('../../modules/esnext.json.parse');
8
5
  require('../../modules/esnext.json.raw-json');
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
+ var parent = require('../../stable/json/is-raw-json');
2
3
  require('../../modules/esnext.json.is-raw-json');
3
- var path = require('../../internals/path');
4
4
 
5
- module.exports = path.JSON.isRawJSON;
5
+ module.exports = parent;
@@ -1,6 +1,5 @@
1
1
  'use strict';
2
- require('../../modules/es.object.keys');
2
+ var parent = require('../../stable/json/parse');
3
3
  require('../../modules/esnext.json.parse');
4
- var path = require('../../internals/path');
5
4
 
6
- module.exports = path.JSON.parse;
5
+ module.exports = parent;
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
- require('../../modules/es.object.create');
3
- require('../../modules/es.object.freeze');
2
+ var parent = require('../../stable/json/raw-json');
3
+ require('../../modules/es.json.stringify');
4
4
  require('../../modules/esnext.json.raw-json');
5
- var path = require('../../internals/path');
6
5
 
7
- module.exports = path.JSON.rawJSON;
6
+ 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.concat');
87
88
  require('../modules/es.iterator.dispose');
88
89
  require('../modules/es.iterator.drop');
89
90
  require('../modules/es.iterator.every');
@@ -97,6 +98,9 @@ require('../modules/es.iterator.reduce');
97
98
  require('../modules/es.iterator.some');
98
99
  require('../modules/es.iterator.take');
99
100
  require('../modules/es.iterator.to-array');
101
+ require('../modules/es.json.is-raw-json');
102
+ require('../modules/es.json.parse');
103
+ require('../modules/es.json.raw-json');
100
104
  require('../modules/es.json.stringify');
101
105
  require('../modules/es.json.to-string-tag');
102
106
  require('../modules/es.map');
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+ require('../../modules/es.array.iterator');
3
+ require('../../modules/es.object.to-string');
4
+ require('../../modules/es.string.iterator');
5
+ require('../../modules/es.iterator.constructor');
6
+ require('../../modules/es.iterator.drop');
7
+ require('../../modules/es.iterator.every');
8
+ require('../../modules/es.iterator.filter');
9
+ require('../../modules/es.iterator.find');
10
+ require('../../modules/es.iterator.flat-map');
11
+ require('../../modules/es.iterator.for-each');
12
+ require('../../modules/es.iterator.map');
13
+ require('../../modules/es.iterator.reduce');
14
+ require('../../modules/es.iterator.some');
15
+ require('../../modules/es.iterator.take');
16
+ require('../../modules/es.iterator.to-array');
17
+ require('../../modules/es.iterator.concat');
18
+ require('../../modules/web.dom-collections.iterator');
19
+ var path = require('../../internals/path');
20
+
21
+ module.exports = path.Iterator.concat;
@@ -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.concat');
6
7
  require('../../modules/es.iterator.dispose');
7
8
  require('../../modules/es.iterator.drop');
8
9
  require('../../modules/es.iterator.every');
package/es/json/index.js CHANGED
@@ -1,5 +1,11 @@
1
1
  'use strict';
2
+ require('../../modules/es.object.create');
3
+ require('../../modules/es.object.freeze');
4
+ require('../../modules/es.object.keys');
2
5
  require('../../modules/es.date.to-json');
6
+ require('../../modules/es.json.is-raw-json');
7
+ require('../../modules/es.json.parse');
8
+ require('../../modules/es.json.raw-json');
3
9
  require('../../modules/es.json.stringify');
4
10
  require('../../modules/es.json.to-string-tag');
5
11
  var path = require('../../internals/path');
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ require('../../modules/es.json.is-raw-json');
3
+ var path = require('../../internals/path');
4
+
5
+ module.exports = path.JSON.isRawJSON;
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.keys');
3
+ require('../../modules/es.json.parse');
4
+ var path = require('../../internals/path');
5
+
6
+ module.exports = path.JSON.parse;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ require('../../modules/es.object.create');
3
+ require('../../modules/es.object.freeze');
4
+ require('../../modules/es.json.raw-json');
5
+ var path = require('../../internals/path');
6
+
7
+ module.exports = path.JSON.rawJSON;
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.concat');
87
88
  require('../modules/es.iterator.dispose');
88
89
  require('../modules/es.iterator.drop');
89
90
  require('../modules/es.iterator.every');
@@ -97,6 +98,9 @@ require('../modules/es.iterator.reduce');
97
98
  require('../modules/es.iterator.some');
98
99
  require('../modules/es.iterator.take');
99
100
  require('../modules/es.iterator.to-array');
101
+ require('../modules/es.json.is-raw-json');
102
+ require('../modules/es.json.parse');
103
+ require('../modules/es.json.raw-json');
100
104
  require('../modules/es.json.stringify');
101
105
  require('../modules/es.json.to-string-tag');
102
106
  require('../modules/es.map');
@@ -2,12 +2,10 @@
2
2
  var parent = require('../../actual/iterator');
3
3
  require('../../modules/esnext.iterator.chunks');
4
4
  require('../../modules/esnext.iterator.range');
5
- require('../../modules/esnext.iterator.sliding');
6
5
  require('../../modules/esnext.iterator.windows');
7
- require('../../modules/esnext.iterator.zip');
8
- require('../../modules/esnext.iterator.zip-keyed');
9
6
  // TODO: Remove from `core-js@4`
10
7
  require('../../modules/esnext.iterator.as-indexed-pairs');
11
8
  require('../../modules/esnext.iterator.indexed');
9
+ require('../../modules/esnext.iterator.sliding');
12
10
 
13
11
  module.exports = parent;
@@ -1,27 +1,7 @@
1
1
  'use strict';
2
- require('../../modules/es.array.iterator');
3
- require('../../modules/es.object.create');
4
- require('../../modules/es.object.to-string');
5
- require('../../modules/es.string.iterator');
6
- require('../../modules/es.iterator.constructor');
7
- require('../../modules/es.iterator.drop');
8
- require('../../modules/es.iterator.every');
9
- require('../../modules/es.iterator.filter');
10
- require('../../modules/es.iterator.find');
11
- require('../../modules/es.iterator.flat-map');
12
- require('../../modules/es.iterator.for-each');
13
- require('../../modules/es.iterator.map');
14
- require('../../modules/es.iterator.reduce');
15
- require('../../modules/es.iterator.some');
16
- require('../../modules/es.iterator.take');
17
- require('../../modules/es.iterator.to-array');
18
- require('../../modules/es.reflect.own-keys');
2
+ var parent = require('../../actual/iterator/zip-keyed');
19
3
  require('../../modules/esnext.iterator.chunks');
20
4
  require('../../modules/esnext.iterator.sliding');
21
5
  require('../../modules/esnext.iterator.windows');
22
- require('../../modules/esnext.iterator.zip-keyed');
23
- require('../../modules/web.dom-collections.iterator');
24
6
 
25
- var entryUnbind = require('../../internals/entry-unbind');
26
-
27
- module.exports = entryUnbind('Iterator', 'zipKeyed');
7
+ module.exports = parent;
@@ -1,25 +1,7 @@
1
1
  'use strict';
2
- require('../../modules/es.array.iterator');
3
- require('../../modules/es.object.to-string');
4
- require('../../modules/es.string.iterator');
5
- require('../../modules/es.iterator.constructor');
6
- require('../../modules/es.iterator.drop');
7
- require('../../modules/es.iterator.every');
8
- require('../../modules/es.iterator.filter');
9
- require('../../modules/es.iterator.find');
10
- require('../../modules/es.iterator.flat-map');
11
- require('../../modules/es.iterator.for-each');
12
- require('../../modules/es.iterator.map');
13
- require('../../modules/es.iterator.reduce');
14
- require('../../modules/es.iterator.some');
15
- require('../../modules/es.iterator.take');
16
- require('../../modules/es.iterator.to-array');
2
+ var parent = require('../../actual/iterator/zip');
17
3
  require('../../modules/esnext.iterator.chunks');
18
4
  require('../../modules/esnext.iterator.sliding');
19
5
  require('../../modules/esnext.iterator.windows');
20
- require('../../modules/esnext.iterator.zip');
21
- require('../../modules/web.dom-collections.iterator');
22
6
 
23
- var entryUnbind = require('../../internals/entry-unbind');
24
-
25
- module.exports = entryUnbind('Iterator', 'zip');
7
+ module.exports = parent;
@@ -14,6 +14,7 @@ try {
14
14
  SAFE_CLOSING = true;
15
15
  }
16
16
  };
17
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
17
18
  iteratorWithReturn[ITERATOR] = function () {
18
19
  return this;
19
20
  };
@@ -28,6 +29,7 @@ module.exports = function (exec, SKIP_CLOSING) {
28
29
  var ITERATION_SUPPORT = false;
29
30
  try {
30
31
  var object = {};
32
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
31
33
  object[ITERATOR] = function () {
32
34
  return {
33
35
  next: function () {
@@ -17,6 +17,7 @@ module.exports = function (KEY, exec, FORCED, SHAM) {
17
17
  var DELEGATES_TO_SYMBOL = !fails(function () {
18
18
  // String methods call symbol-named RegExp methods
19
19
  var O = {};
20
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
20
21
  O[SYMBOL] = function () { return 7; };
21
22
  return ''[KEY](O) !== 7;
22
23
  });
@@ -30,12 +31,13 @@ module.exports = function (KEY, exec, FORCED, SHAM) {
30
31
  // We can't use real regex here since it causes deoptimization
31
32
  // and serious performance degradation in V8
32
33
  // https://github.com/zloirock/core-js/issues/306
33
- re = {};
34
34
  // RegExp[@@split] doesn't call the regex's exec method, but first creates
35
35
  // a new one. We need to return the patched regex when creating the new one.
36
- re.constructor = {};
37
- re.constructor[SPECIES] = function () { return re; };
38
- re.flags = '';
36
+ var constructor = {};
37
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
38
+ constructor[SPECIES] = function () { return re; };
39
+ re = { constructor: constructor, flags: '' };
40
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
39
41
  re[SYMBOL] = /./[SYMBOL];
40
42
  }
41
43
 
@@ -60,6 +60,7 @@ var enable = function () {
60
60
  var getOwnPropertyNames = getOwnPropertyNamesModule.f;
61
61
  var splice = uncurryThis([].splice);
62
62
  var test = {};
63
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
63
64
  test[METADATA] = 1;
64
65
 
65
66
  // prevent exposing of metadata key
@@ -8,20 +8,22 @@ var iteratorClose = require('../internals/iterator-close');
8
8
  var uncurryThis = require('../internals/function-uncurry-this');
9
9
 
10
10
  var $RangeError = RangeError;
11
+ var $TypeError = TypeError;
11
12
  var push = uncurryThis([].push);
12
13
  var slice = uncurryThis([].slice);
14
+ var ALLOW_PARTIAL = 'allow-partial';
13
15
 
14
16
  var IteratorProxy = createIteratorProxy(function () {
15
17
  var iterator = this.iterator;
16
18
  var next = this.next;
17
19
  var buffer = this.buffer;
18
20
  var windowSize = this.windowSize;
19
- var sliding = this.sliding;
21
+ var allowPartial = this.allowPartial;
20
22
  var result, done;
21
23
  while (true) {
22
24
  result = anObject(call(next, iterator));
23
25
  done = this.done = !!result.done;
24
- if (sliding && done && buffer.length && buffer.length < windowSize) return createIterResultObject(buffer, false);
26
+ if (allowPartial && done && buffer.length && buffer.length < windowSize) return createIterResultObject(buffer, false);
25
27
  if (done) return createIterResultObject(undefined, true);
26
28
 
27
29
  if (buffer.length === windowSize) this.buffer = buffer = slice(buffer, 1);
@@ -30,16 +32,19 @@ var IteratorProxy = createIteratorProxy(function () {
30
32
  }
31
33
  }, false, true);
32
34
 
33
- // `Iterator.prototype.sliding` and `Iterator.prototype.windows` methods
35
+ // `Iterator.prototype.windows` and obsolete `Iterator.prototype.sliding` methods
34
36
  // https://github.com/tc39/proposal-iterator-chunking
35
- module.exports = function (O, windowSize, sliding) {
37
+ module.exports = function (O, windowSize, undersized) {
36
38
  anObject(O);
37
39
  if (typeof windowSize != 'number' || !windowSize || windowSize >>> 0 !== windowSize) {
38
- return iteratorClose(O, 'throw', new $RangeError('windowSize must be integer in [1, 2^32-1]'));
40
+ return iteratorClose(O, 'throw', new $RangeError('`windowSize` must be integer in [1, 2^32-1]'));
41
+ }
42
+ if (undersized !== undefined && undersized !== 'only-full' && undersized !== ALLOW_PARTIAL) {
43
+ return iteratorClose(O, 'throw', new $TypeError('Incorrect `undersized` argument'));
39
44
  }
40
45
  return new IteratorProxy(getIteratorDirect(O), {
41
46
  windowSize: windowSize,
42
47
  buffer: [],
43
- sliding: sliding
48
+ allowPartial: undersized === ALLOW_PARTIAL
44
49
  });
45
50
  };
@@ -28,7 +28,7 @@ var IteratorProxy = createIteratorProxy(function () {
28
28
  for (var i = 0; i < iterCount; i++) {
29
29
  var iter = iters[i];
30
30
  if (iter === null) {
31
- push(results, padding[i]);
31
+ result = padding[i];
32
32
  } else {
33
33
  try {
34
34
  result = call(iter.next, iter.iterator);
@@ -48,9 +48,7 @@ module.exports = function (name, callback) {
48
48
  new Set()[name](createSetLikeWithInfinitySize(-Infinity));
49
49
  return false;
50
50
  } catch (error) {
51
- var set = new Set();
52
- set.add(1);
53
- set.add(2);
51
+ var set = new Set([1, 2]);
54
52
  return callback(set[name](createSetLikeWithInfinitySize(Infinity)));
55
53
  }
56
54
  }
@@ -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.45.1',
10
+ version: '3.47.0',
11
11
  mode: IS_PURE ? 'pure' : 'global',
12
- copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru)',
13
- license: 'https://github.com/zloirock/core-js/blob/v3.45.1/LICENSE',
12
+ copyright: '© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)',
13
+ license: 'https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE',
14
14
  source: 'https://github.com/zloirock/core-js'
15
15
  });
@@ -3,7 +3,7 @@ var wellKnownSymbol = require('../internals/well-known-symbol');
3
3
 
4
4
  var TO_STRING_TAG = wellKnownSymbol('toStringTag');
5
5
  var test = {};
6
-
6
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
7
7
  test[TO_STRING_TAG] = 'z';
8
8
 
9
9
  module.exports = String(test) === '[object z]';
@@ -13,6 +13,7 @@ var FORCED = new Error('e', { cause: 7 }).cause !== 7;
13
13
 
14
14
  var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
15
15
  var O = {};
16
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
16
17
  O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);
17
18
  $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);
18
19
  };
@@ -20,6 +21,7 @@ var exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {
20
21
  var exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {
21
22
  if (WebAssembly && WebAssembly[ERROR_NAME]) {
22
23
  var O = {};
24
+ // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
23
25
  O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);
24
26
  $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);
25
27
  }
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var call = require('../internals/function-call');
4
+ var aCallable = require('../internals/a-callable');
5
+ var anObject = require('../internals/an-object');
6
+ var getIteratorMethod = require('../internals/get-iterator-method');
7
+ var createIteratorProxy = require('../internals/iterator-create-proxy');
8
+
9
+ var $Array = Array;
10
+
11
+ var IteratorProxy = createIteratorProxy(function () {
12
+ while (true) {
13
+ var iterator = this.iterator;
14
+ if (!iterator) {
15
+ var iterableIndex = this.nextIterableIndex++;
16
+ var iterables = this.iterables;
17
+ if (iterableIndex >= iterables.length) {
18
+ this.done = true;
19
+ return;
20
+ }
21
+ var entry = iterables[iterableIndex];
22
+ this.iterables[iterableIndex] = null;
23
+ iterator = this.iterator = call(entry.method, entry.iterable);
24
+ this.next = iterator.next;
25
+ }
26
+ var result = anObject(call(this.next, iterator));
27
+ if (result.done) {
28
+ this.iterator = null;
29
+ this.next = null;
30
+ continue;
31
+ }
32
+ return result.value;
33
+ }
34
+ });
35
+
36
+ // `Iterator.concat` method
37
+ // https://github.com/tc39/proposal-iterator-sequencing
38
+ $({ target: 'Iterator', stat: true }, {
39
+ concat: function concat() {
40
+ var length = arguments.length;
41
+ var iterables = $Array(length);
42
+ for (var index = 0; index < length; index++) {
43
+ var item = anObject(arguments[index]);
44
+ iterables[index] = {
45
+ iterable: item,
46
+ method: aCallable(getIteratorMethod(item))
47
+ };
48
+ }
49
+ return new IteratorProxy({
50
+ iterables: iterables,
51
+ nextIterableIndex: 0,
52
+ iterator: null,
53
+ next: null
54
+ });
55
+ }
56
+ });
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+ var $ = require('../internals/export');
3
+ var NATIVE_RAW_JSON = require('../internals/native-raw-json');
4
+ var isRawJSON = require('../internals/is-raw-json');
5
+
6
+ // `JSON.isRawJSON` method
7
+ // https://tc39.es/proposal-json-parse-with-source/#sec-json.israwjson
8
+ // https://github.com/tc39/proposal-json-parse-with-source
9
+ $({ target: 'JSON', stat: true, forced: !NATIVE_RAW_JSON }, {
10
+ isRawJSON: isRawJSON
11
+ });