core-js-pure 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 (55) 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/internal-metadata.js +1 -0
  23. package/internals/iterator-window.js +11 -6
  24. package/internals/iterator-zip.js +1 -1
  25. package/internals/shared-store.js +3 -3
  26. package/internals/to-string-tag-support.js +1 -1
  27. package/modules/es.error.cause.js +2 -0
  28. package/modules/es.iterator.concat.js +56 -0
  29. package/modules/es.json.is-raw-json.js +11 -0
  30. package/modules/es.json.parse.js +251 -0
  31. package/modules/es.json.raw-json.js +39 -0
  32. package/modules/es.json.stringify.js +78 -19
  33. package/modules/es.object.group-by.js +2 -1
  34. package/modules/esnext.iterator.concat.js +2 -55
  35. package/modules/esnext.iterator.sliding.js +1 -1
  36. package/modules/esnext.iterator.windows.js +2 -2
  37. package/modules/esnext.iterator.zip-keyed.js +3 -2
  38. package/modules/esnext.iterator.zip.js +1 -1
  39. package/modules/esnext.json.is-raw-json.js +2 -10
  40. package/modules/esnext.json.parse.js +2 -250
  41. package/modules/esnext.json.raw-json.js +2 -85
  42. package/modules/esnext.weak-map.get-or-insert-computed.js +12 -1
  43. package/modules/web.url-search-params.constructor.js +1 -1
  44. package/package.json +2 -1
  45. package/proposals/iterator-chunking-v2.js +4 -0
  46. package/stable/index.js +4 -0
  47. package/stable/iterator/concat.js +5 -0
  48. package/stable/json/is-raw-json.js +4 -0
  49. package/stable/json/parse.js +4 -0
  50. package/stable/json/raw-json.js +4 -0
  51. package/stage/2.7.js +1 -1
  52. package/stage/2.js +0 -1
  53. package/stage/3.js +1 -2
  54. package/stage/4.js +2 -0
  55. 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 () {
@@ -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);
@@ -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
+ });