core-js 3.49.0 → 3.50.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 (101) hide show
  1. package/actual/iterator/chunks.js +8 -0
  2. package/actual/iterator/concat.js +4 -0
  3. package/actual/iterator/from.js +4 -0
  4. package/actual/iterator/includes.js +8 -0
  5. package/actual/iterator/index.js +4 -1
  6. package/actual/iterator/join.js +8 -0
  7. package/actual/iterator/windows.js +8 -0
  8. package/actual/iterator/zip-keyed.js +6 -21
  9. package/actual/iterator/zip.js +6 -19
  10. package/actual/promise/all-keyed.js +16 -0
  11. package/actual/promise/all-settled-keyed.js +16 -0
  12. package/actual/promise/index.js +4 -0
  13. package/es/index.js +2 -0
  14. package/es/iterator/index.js +4 -0
  15. package/es/iterator/zip-keyed.js +24 -0
  16. package/es/iterator/zip.js +22 -0
  17. package/features/iterator/includes.js +2 -0
  18. package/features/iterator/join.js +2 -0
  19. package/features/promise/all-keyed.js +2 -0
  20. package/features/promise/all-settled-keyed.js +2 -0
  21. package/full/index.js +6 -0
  22. package/full/iterator/chunks.js +2 -6
  23. package/full/iterator/concat.js +0 -2
  24. package/full/iterator/from.js +0 -2
  25. package/full/iterator/includes.js +4 -0
  26. package/full/iterator/index.js +0 -2
  27. package/full/iterator/join.js +4 -0
  28. package/full/iterator/range.js +3 -1
  29. package/full/iterator/windows.js +2 -6
  30. package/full/iterator/zip-keyed.js +0 -2
  31. package/full/iterator/zip.js +0 -2
  32. package/full/promise/all-keyed.js +4 -0
  33. package/full/promise/all-settled-keyed.js +4 -0
  34. package/internals/add-disposable-resource.js +1 -1
  35. package/internals/array-fill.js +2 -1
  36. package/internals/array-from-async.js +2 -2
  37. package/internals/array-from.js +8 -2
  38. package/internals/async-iterator-create-proxy.js +14 -2
  39. package/internals/error-stack-clear.js +1 -1
  40. package/internals/get-async-iterator-flattenable.js +1 -1
  41. package/internals/get-async-iterator.js +1 -1
  42. package/internals/get-internal-iterator.js +1 -0
  43. package/internals/get-iterator-flattenable.js +1 -1
  44. package/internals/get-iterator-internal.js +14 -0
  45. package/internals/get-iterator-method-internal.js +14 -0
  46. package/internals/get-iterator-method.js +4 -7
  47. package/internals/get-iterator-record.js +1 -1
  48. package/internals/get-iterator.js +4 -5
  49. package/internals/is-iterable.js +4 -10
  50. package/internals/iterate.js +2 -2
  51. package/internals/iterator-chunk-size-validation.js +17 -0
  52. package/internals/iterator-cleanup-state.js +6 -0
  53. package/internals/iterator-create-proxy.js +10 -4
  54. package/internals/iterator-window.js +2 -4
  55. package/internals/iterators.js +1 -1
  56. package/internals/math-log1p.js +3 -1
  57. package/internals/shared-store.js +2 -2
  58. package/internals/shared.js +3 -1
  59. package/internals/typed-array-from.js +2 -2
  60. package/internals/uint8-from-base64.js +4 -2
  61. package/internals/uint8-from-hex.js +1 -1
  62. package/internals/url-percent-coding.js +171 -0
  63. package/modules/es.date.to-json.js +1 -1
  64. package/modules/es.escape.js +10 -8
  65. package/modules/es.iterator.concat.js +1 -1
  66. package/modules/es.iterator.drop.js +16 -1
  67. package/modules/es.iterator.flat-map.js +12 -14
  68. package/modules/es.iterator.take.js +16 -1
  69. package/modules/es.iterator.zip-keyed.js +70 -0
  70. package/modules/es.iterator.zip.js +92 -0
  71. package/modules/es.json.parse.js +1 -1
  72. package/modules/es.json.stringify.js +150 -34
  73. package/modules/es.map.group-by.js +2 -0
  74. package/modules/es.math.asinh.js +3 -1
  75. package/modules/es.math.cbrt.js +3 -1
  76. package/modules/es.object.group-by.js +2 -0
  77. package/modules/es.object.proto.js +2 -1
  78. package/modules/es.promise.try.js +16 -8
  79. package/modules/es.string.match.js +3 -1
  80. package/modules/es.string.search.js +3 -1
  81. package/modules/es.uint8-array.to-base64.js +22 -5
  82. package/modules/esnext.iterator.chunks.js +6 -8
  83. package/modules/esnext.iterator.includes.js +44 -0
  84. package/modules/esnext.iterator.join.js +31 -0
  85. package/modules/esnext.iterator.windows.js +2 -1
  86. package/modules/esnext.iterator.zip-keyed.js +2 -71
  87. package/modules/esnext.iterator.zip.js +2 -91
  88. package/modules/esnext.observable.from.js +2 -2
  89. package/modules/esnext.promise.all-keyed.js +57 -0
  90. package/modules/esnext.promise.all-settled-keyed.js +60 -0
  91. package/modules/web.url-search-params.constructor.js +11 -143
  92. package/modules/web.url.constructor.js +103 -17
  93. package/modules/web.url.to-json.js +4 -1
  94. package/package.json +4 -1
  95. package/proposals/await-dictionary.js +4 -0
  96. package/proposals/iterator-includes.js +3 -0
  97. package/proposals/iterator-join.js +3 -0
  98. package/stable/index.js +2 -0
  99. package/stable/iterator/zip-keyed.js +5 -0
  100. package/stable/iterator/zip.js +5 -0
  101. package/stage/3.js +4 -0
@@ -16,6 +16,7 @@ var arrayFrom = require('../internals/array-from');
16
16
  var arraySlice = require('../internals/array-slice');
17
17
  var codeAt = require('../internals/string-multibyte').codeAt;
18
18
  var toASCII = require('../internals/string-punycode-to-ascii');
19
+ var percentCoding = require('../internals/url-percent-coding');
19
20
  var $toString = require('../internals/to-string');
20
21
  var setToStringTag = require('../internals/set-to-string-tag');
21
22
  var validateArgumentsLength = require('../internals/validate-arguments-length');
@@ -26,13 +27,15 @@ var setInternalState = InternalStateModule.set;
26
27
  var getInternalURLState = InternalStateModule.getterFor('URL');
27
28
  var URLSearchParams = URLSearchParamsModule.URLSearchParams;
28
29
  var getInternalSearchParamsState = URLSearchParamsModule.getState;
30
+ var percentDecode = percentCoding.decode;
31
+ var percentEncode = percentCoding.encode;
29
32
 
30
33
  var NativeURL = globalThis.URL;
31
34
  var TypeError = globalThis.TypeError;
32
- var encodeURIComponent = globalThis.encodeURIComponent;
33
35
  var parseInt = globalThis.parseInt;
34
36
  var floor = Math.floor;
35
37
  var pow = Math.pow;
38
+ var fromCharCode = String.fromCharCode;
36
39
  var charAt = uncurryThis(''.charAt);
37
40
  var exec = uncurryThis(/./.exec);
38
41
  var join = uncurryThis([].join);
@@ -42,6 +45,7 @@ var push = uncurryThis([].push);
42
45
  var replace = uncurryThis(''.replace);
43
46
  var shift = uncurryThis([].shift);
44
47
  var split = uncurryThis(''.split);
48
+ var stringIndexOf = uncurryThis(''.indexOf);
45
49
  var stringSlice = uncurryThis(''.slice);
46
50
  var toLowerCase = uncurryThis(''.toLowerCase);
47
51
  var unshift = uncurryThis([].unshift);
@@ -59,15 +63,88 @@ var OCT = /^[0-7]+$/;
59
63
  var DEC = /^\d+$/;
60
64
  var HEX = /^[\da-f]+$/i;
61
65
  /* eslint-disable regexp/no-control-character -- safe */
62
- var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #%/:<>?@[\\\]^|]/;
63
- var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\0\t\n\r #/:<>?@[\\\]^|]/;
66
+ // https://url.spec.whatwg.org/#forbidden-domain-code-point
67
+ var FORBIDDEN_DOMAIN_CODE_POINT = /[\u0000-\u0020#%/:<>?@[\\\]^|\u007F]/;
68
+ // https://url.spec.whatwg.org/#forbidden-host-code-point
69
+ var FORBIDDEN_HOST_CODE_POINT = /[\0\t\n\r #/:<>?@[\\\]^|]/;
64
70
  var LEADING_C0_CONTROL_OR_SPACE = /^[\u0000-\u0020]+/;
65
71
  var TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\u0000-\u0020])[\u0000-\u0020]+$/;
66
72
  var TAB_AND_NEW_LINE = /[\t\n\r]/g;
73
+ var NON_ASCII = /[^\u0000-\u007F]/;
67
74
  /* eslint-enable regexp/no-control-character -- safe */
75
+ // UTS#46 maps these onto a string containing a forbidden domain code point, so a domain
76
+ // holding one is rejected - listing them is far smaller than shipping the mapping table
77
+ var MAPPED_ONTO_FORBIDDEN = '\u00A8\u00AF\u00B4\u00B8\u02D8\u02D9\u02DA\u02DB\u02DC\u02DD\u037A\u0384\u0385\u1FBD\u1FBF\u1FC0'
78
+ + '\u1FC1\u1FCD\u1FCE\u1FCF\u1FDD\u1FDE\u1FDF\u1FED\u1FEE\u1FFD\u1FFE\u2017\u203E\u2047\u2048\u2049'
79
+ + '\u2100\u2101\u2105\u2106\u2A74\u309B\u309C\uFC5E\uFC5F\uFC60\uFC61\uFC62\uFC63\uFDFA\uFDFB\uFE13'
80
+ + '\uFE16\uFE47\uFE48\uFE49\uFE4A\uFE4B\uFE4C\uFE55\uFE56\uFE5F\uFE64\uFE65\uFE68\uFE6A\uFE6B\uFE70'
81
+ + '\uFE72\uFE74\uFE76\uFE78\uFE7A\uFE7C\uFE7E\uFFE3';
68
82
  // eslint-disable-next-line no-unassigned-vars -- expected `undefined` value
69
83
  var EOF;
70
84
 
85
+ // https://www.unicode.org/reports/tr46/#IDNA_Mapping_Table
86
+ var isIgnoredCodePoint = function (code) {
87
+ return code === 0xAD || code === 0x34F || code === 0x200B || code === 0x3164
88
+ || code === 0xFEFF || code === 0xFFA0
89
+ || (code >= 0x115F && code <= 0x1160)
90
+ || (code >= 0x17B4 && code <= 0x17B5)
91
+ || (code >= 0x180B && code <= 0x180F)
92
+ || (code >= 0x2060 && code <= 0x2064) || (code >= 0x206A && code <= 0x206F)
93
+ || (code >= 0xFE00 && code <= 0xFE0F)
94
+ || (code >= 0xE0100 && code <= 0xE01EF);
95
+ };
96
+
97
+ var isDisallowedCodePoint = function (code) {
98
+ return code === 0xFFFD
99
+ // lone surrogate - a matched pair is a single code point and never lands here
100
+ || (code >= 0xD800 && code <= 0xDFFF)
101
+ // C1 controls
102
+ || (code >= 0x80 && code <= 0x9F)
103
+ // line and paragraph separators, bidirectional formatting characters
104
+ || (code >= 0x200E && code <= 0x200F) || (code >= 0x2028 && code <= 0x2029)
105
+ || (code >= 0x202A && code <= 0x202E) || (code >= 0x2065 && code <= 0x2069)
106
+ // noncharacters
107
+ || (code >= 0xFDD0 && code <= 0xFDEF) || (code & 0xFFFE) === 0xFFFE
108
+ // private use
109
+ || (code >= 0xE000 && code <= 0xF8FF) || (code >= 0xF0000 && code <= 0x10FFFD);
110
+ };
111
+
112
+ var mapCodePoint = function (code) {
113
+ // full-width forms
114
+ if (code >= 0xFF01 && code <= 0xFF5E) return code - 0xFEE0;
115
+ // spaces and the listed code points collapse onto a forbidden domain code point; a space
116
+ // stands in for the real mapping since either way the domain is rejected
117
+ if (code === 0xA0 || code === 0x1680 || code === 0x202F || code === 0x205F || code === 0x3000) return 0x20;
118
+ if (code >= 0x2000 && code <= 0x200A) return 0x20;
119
+ // the list holds no supplementary code point, and `fromCharCode` would truncate one
120
+ if (code <= 0xFFFF && stringIndexOf(MAPPED_ONTO_FORBIDDEN, fromCharCode(code)) > -1) return 0x20;
121
+ return code;
122
+ };
123
+
124
+ // https://url.spec.whatwg.org/#concept-domain-to-ascii
125
+ // A subset of UTS#46 processing - the full mapping table is too large to ship. Covered are the
126
+ // entries cheap to express: the ignored and disallowed code points, full-width forms, and the
127
+ // code points mapping onto a forbidden domain code point. Not covered, so such domains are
128
+ // punycoded rather than mapped or rejected: unassigned code points, half-width forms,
129
+ // compatibility decompositions, NFC, CheckJoiners, CheckBidi, and labels that already arrive
130
+ // punycoded - those are not decoded back for validation.
131
+ var domainToASCII = function (domain) {
132
+ // every mapped, ignored and disallowed code point is non-ASCII, so an ASCII domain
133
+ // needs the punycode step only - this keeps the common case off the slow path
134
+ if (!exec(NON_ASCII, domain)) return domain === '' ? null : toASCII(domain);
135
+ var codePoints = arrayFrom(domain);
136
+ var result = '';
137
+ var index, code, mapped;
138
+ for (index = 0; index < codePoints.length; index++) {
139
+ code = codeAt(codePoints[index], 0);
140
+ if (isDisallowedCodePoint(code)) return null;
141
+ if (isIgnoredCodePoint(code)) continue;
142
+ mapped = mapCodePoint(code);
143
+ result += mapped === code ? codePoints[index] : fromCharCode(mapped);
144
+ }
145
+ return result === '' ? null : toASCII(result);
146
+ };
147
+
71
148
  // https://url.spec.whatwg.org/#ends-in-a-number-checker
72
149
  var endsInNumber = function (input) {
73
150
  var parts = split(input, '.');
@@ -259,6 +336,9 @@ var serializeHost = function (host) {
259
336
  return host;
260
337
  };
261
338
 
339
+ // https://url.spec.whatwg.org/#c0-control-percent-encode-set
340
+ // empty because the set is the code points outside U+0020..U+007E, which the range
341
+ // check below already covers; the sets extending it only add code points inside it
262
342
  var C0ControlPercentEncodeSet = {};
263
343
  var queryPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
264
344
  ' ': 1, '"': 1, '#': 1, '<': 1, '>': 1
@@ -276,10 +356,11 @@ var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
276
356
  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1
277
357
  });
278
358
 
279
- var percentEncode = function (chr, set) {
359
+ // https://url.spec.whatwg.org/#string-utf-8-percent-encode
360
+ var utf8PercentEncode = function (chr, set) {
280
361
  var code = codeAt(chr, 0);
281
- // encodeURIComponent does not encode ', which is in the special-query percent-encode set
282
- return code >= 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : chr === "'" && hasOwn(set, chr) ? '%27' : encodeURIComponent(chr);
362
+ // percent-encoding leaves ' alone, but it belongs to the special-query percent-encode set
363
+ return code >= 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : chr === "'" && hasOwn(set, chr) ? '%27' : percentEncode(chr);
283
364
  };
284
365
 
285
366
  // https://url.spec.whatwg.org/#special-scheme
@@ -551,7 +632,7 @@ URLState.prototype = {
551
632
  seenPasswordToken = true;
552
633
  continue;
553
634
  }
554
- var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
635
+ var encodedCodePoints = utf8PercentEncode(codePoint, userinfoPercentEncodeSet);
555
636
  if (seenPasswordToken) url.password += encodedCodePoints;
556
637
  else url.username += encodedCodePoints;
557
638
  }
@@ -719,6 +800,7 @@ URLState.prototype = {
719
800
  }
720
801
  } else {
721
802
  if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
803
+ // eslint-disable-next-line max-depth -- ok
722
804
  if (url.host !== null && url.host !== '') url.host = '';
723
805
  buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter
724
806
  }
@@ -738,7 +820,7 @@ URLState.prototype = {
738
820
  state = FRAGMENT;
739
821
  }
740
822
  } else {
741
- buffer += percentEncode(chr, pathPercentEncodeSet);
823
+ buffer += utf8PercentEncode(chr, pathPercentEncodeSet);
742
824
  } break;
743
825
 
744
826
  case CANNOT_BE_A_BASE_URL_PATH:
@@ -749,7 +831,11 @@ URLState.prototype = {
749
831
  url.fragment = '';
750
832
  state = FRAGMENT;
751
833
  } else if (chr !== EOF) {
752
- url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);
834
+ if (chr === ' ') {
835
+ url.path[0] += codePoints[pointer + 1] === '?' || codePoints[pointer + 1] === '#' ? '%20' : ' ';
836
+ } else {
837
+ url.path[0] += utf8PercentEncode(chr, C0ControlPercentEncodeSet);
838
+ }
753
839
  } break;
754
840
 
755
841
  case QUERY:
@@ -757,11 +843,11 @@ URLState.prototype = {
757
843
  url.fragment = '';
758
844
  state = FRAGMENT;
759
845
  } else if (chr !== EOF) {
760
- url.query += percentEncode(chr, url.isSpecial() ? specialQueryPercentEncodeSet : queryPercentEncodeSet);
846
+ url.query += utf8PercentEncode(chr, url.isSpecial() ? specialQueryPercentEncodeSet : queryPercentEncodeSet);
761
847
  } break;
762
848
 
763
849
  case FRAGMENT:
764
- if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);
850
+ if (chr !== EOF) url.fragment += utf8PercentEncode(chr, fragmentPercentEncodeSet);
765
851
  break;
766
852
  }
767
853
 
@@ -778,16 +864,16 @@ URLState.prototype = {
778
864
  this.host = result;
779
865
  // opaque host
780
866
  } else if (!this.isSpecial()) {
781
- if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;
867
+ if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;
782
868
  result = '';
783
869
  codePoints = arrayFrom(input);
784
870
  for (index = 0; index < codePoints.length; index++) {
785
- result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
871
+ result += utf8PercentEncode(codePoints[index], C0ControlPercentEncodeSet);
786
872
  }
787
873
  this.host = result;
788
874
  } else {
789
- input = toASCII(input);
790
- if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;
875
+ input = domainToASCII(percentDecode(input));
876
+ if (input === null || exec(FORBIDDEN_DOMAIN_CODE_POINT, input)) return INVALID_HOST;
791
877
  if (endsInNumber(input)) {
792
878
  result = parseIPv4(input);
793
879
  if (result === null) return INVALID_HOST;
@@ -877,7 +963,7 @@ URLState.prototype = {
877
963
  if (this.cannotHaveUsernamePasswordPort()) return;
878
964
  this.username = '';
879
965
  for (var i = 0; i < codePoints.length; i++) {
880
- this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
966
+ this.username += utf8PercentEncode(codePoints[i], userinfoPercentEncodeSet);
881
967
  }
882
968
  },
883
969
  // https://url.spec.whatwg.org/#dom-url-password
@@ -889,7 +975,7 @@ URLState.prototype = {
889
975
  if (this.cannotHaveUsernamePasswordPort()) return;
890
976
  this.password = '';
891
977
  for (var i = 0; i < codePoints.length; i++) {
892
- this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
978
+ this.password += utf8PercentEncode(codePoints[i], userinfoPercentEncodeSet);
893
979
  }
894
980
  },
895
981
  // https://url.spec.whatwg.org/#dom-url-host
@@ -1,11 +1,14 @@
1
1
  'use strict';
2
2
  var $ = require('../internals/export');
3
3
  var call = require('../internals/function-call');
4
+ var getBuiltInPrototypeMethod = require('../internals/get-built-in-prototype-method');
5
+
6
+ var toString = getBuiltInPrototypeMethod('URL', 'toString');
4
7
 
5
8
  // `URL.prototype.toJSON` method
6
9
  // https://url.spec.whatwg.org/#dom-url-tojson
7
10
  $({ target: 'URL', proto: true, enumerable: true }, {
8
11
  toJSON: function toJSON() {
9
- return call(URL.prototype.toString, this);
12
+ return call(toString, this);
10
13
  }
11
14
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-js",
3
- "version": "3.49.0",
3
+ "version": "3.50.0",
4
4
  "type": "commonjs",
5
5
  "description": "Standard library",
6
6
  "keywords": [
@@ -78,5 +78,8 @@
78
78
  "main": "index.js",
79
79
  "scripts": {
80
80
  "postinstall": "node -e \"try{require('./postinstall')}catch(e){}\""
81
+ },
82
+ "engines": {
83
+ "node": "*"
81
84
  }
82
85
  }
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-await-dictionary
3
+ require('../modules/esnext.promise.all-keyed');
4
+ require('../modules/esnext.promise.all-settled-keyed');
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-includes
3
+ require('../modules/esnext.iterator.includes');
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ // https://github.com/tc39/proposal-iterator-join
3
+ require('../modules/esnext.iterator.join');
package/stable/index.js CHANGED
@@ -98,6 +98,8 @@ require('../modules/es.iterator.reduce');
98
98
  require('../modules/es.iterator.some');
99
99
  require('../modules/es.iterator.take');
100
100
  require('../modules/es.iterator.to-array');
101
+ require('../modules/es.iterator.zip');
102
+ require('../modules/es.iterator.zip-keyed');
101
103
  require('../modules/es.json.is-raw-json');
102
104
  require('../modules/es.json.parse');
103
105
  require('../modules/es.json.raw-json');
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/zip-keyed');
3
+ require('../../modules/web.dom-collections.iterator');
4
+
5
+ module.exports = parent;
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ var parent = require('../../es/iterator/zip');
3
+ require('../../modules/web.dom-collections.iterator');
4
+
5
+ module.exports = parent;
package/stage/3.js CHANGED
@@ -1,12 +1,16 @@
1
1
  'use strict';
2
2
  var parent = require('./4');
3
3
 
4
+ require('../proposals/await-dictionary');
4
5
  require('../proposals/decorator-metadata-v2');
6
+ require('../proposals/iterator-includes');
7
+ require('../proposals/iterator-join');
5
8
  require('../proposals/joint-iteration');
6
9
  // TODO: Obsolete versions, remove from `core-js@4`
7
10
  require('../proposals/array-grouping-stage-3');
8
11
  require('../proposals/array-grouping-stage-3-2');
9
12
  require('../proposals/change-array-by-copy');
13
+ require('../proposals/iterator-chunking-v2');
10
14
  require('../proposals/iterator-helpers-stage-3');
11
15
 
12
16
  module.exports = parent;