Skip to content

Commit 00c7bf9

Browse files
authored
Merge pull request #1383 from zloirock/iterator-sequencing-stage-3
2 parents a559f33 + e17f4a0 commit 00c7bf9

11 files changed

Lines changed: 55 additions & 46 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
- `Math.sumPrecise`
1717
- Moved to stable ES, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/2616413ace9074bfd444adee9501fae4c8d66fcb)
1818
- Added `es.` namespace module, `/es/` and `/stable/` namespaces entries
19+
- [`Iterator` sequencing proposal](https://github.com/tc39/proposal-iterator-sequencing):
20+
- Built-ins:
21+
- `Iterator.concat`
22+
- Moved to stage 3, [July 2025 TC39 meeting](https://github.com/tc39/proposals/commit/3eebab0f8594673dd08bc709d68c011016074c2e)
23+
- Added `/actual/` namespace entries, unconditional forced replacement changed to feature detection
1924
- Added missing dependencies to some entries of static `Iterator` methods
2025
- Compat data improvements:
2126
- [`Uint8Array` to / from base64 and hex proposal](https://github.com/tc39/proposal-arraybuffer-base64) features marked as [supported from V8 ~ Chromium 140](https://issues.chromium.org/issues/42204568#comment37)

README.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,10 @@ structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
167167
- [New `Set` methods](#new-set-methods)
168168
- [`Math.sumPrecise`](#mathsumprecise)
169169
- [Stage 3 proposals](#stage-3-proposals)
170+
- [`Iterator` sequencing](#iterator-sequencing)
170171
- [`JSON.parse` source text access](#jsonparse-source-text-access)
171172
- [`Symbol.metadata` for decorators metadata proposal](#symbolmetadata-for-decorators-metadata-proposal)
172173
- [Stage 2.7 proposals](#stage-27-proposals)
173-
- [`Iterator` sequencing](#iterator-sequencing)
174174
- [Joint iteration](#joint-iteration)
175175
- [`Map` upsert](#map-upsert)
176176
- [Stage 2 proposals](#stage-2-proposals)
@@ -2692,6 +2692,26 @@ core-js/proposals/math-sum
26922692
core-js(-pure)/stage/3
26932693
```
26942694

2695+
##### [`Iterator` sequencing](https://github.com/tc39/proposal-iterator-sequencing)[](#index)
2696+
Module [`esnext.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.concat.js)
2697+
```ts
2698+
class Iterator {
2699+
concat(...items: Array<IterableObject>): Iterator<any>;
2700+
}
2701+
```
2702+
[*CommonJS entry points:*](#commonjs-api)
2703+
```
2704+
core-js/proposals/iterator-sequencing
2705+
core-js(-pure)/actual|full/iterator/concat
2706+
```
2707+
[*Example*](https://tinyurl.com/2522xjae):
2708+
```js
2709+
Iterator.concat([0, 1].values(), [2, 3], function * () {
2710+
yield 4;
2711+
yield 5;
2712+
}()).toArray(); // => [0, 1, 2, 3, 4, 5]
2713+
```
2714+
26952715
##### [`JSON.parse` source text access](https://github.com/tc39/proposal-json-parse-with-source)[](#index)
26962716
Modules [`esnext.json.is-raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.json.is-raw-json.js), [`esnext.json.parse`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.json.parse.js), [`esnext.json.raw-json`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.json.raw-json.js).
26972717
```ts
@@ -2756,26 +2776,6 @@ core-js(-pure)/actual|full/function/metadata
27562776
core-js(-pure)/stage/2.7
27572777
```
27582778

2759-
##### [`Iterator` sequencing](https://github.com/tc39/proposal-iterator-sequencing)[](#index)
2760-
Module [`esnext.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.concat.js)
2761-
```ts
2762-
class Iterator {
2763-
concat(...items: Array<IterableObject>): Iterator<any>;
2764-
}
2765-
```
2766-
[*CommonJS entry points:*](#commonjs-api)
2767-
```
2768-
core-js/proposals/iterator-sequencing
2769-
core-js(-pure)/full/iterator/concat
2770-
```
2771-
[*Example*](https://tinyurl.com/2522xjae):
2772-
```js
2773-
Iterator.concat([0, 1].values(), [2, 3], function * () {
2774-
yield 4;
2775-
yield 5;
2776-
}()).toArray(); // => [0, 1, 2, 3, 4, 5]
2777-
```
2778-
27792779
##### [Joint iteration](https://github.com/tc39/proposal-joint-iteration)[](#index)
27802780
Modules [esnext.iterator.zip](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip.js), [esnext.iterator.zip-keyed](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.zip-keyed.js)
27812781
```ts
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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/esnext.iterator.concat');
18+
require('../../modules/web.dom-collections.iterator');
19+
var path = require('../../internals/path');
20+
21+
module.exports = path.Iterator.concat;

packages/core-js/actual/iterator/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
var parent = require('../../stable/iterator');
33
require('../../modules/es.promise');
44
require('../../modules/esnext.iterator.constructor');
5+
require('../../modules/esnext.iterator.concat');
56
require('../../modules/esnext.iterator.dispose');
67
require('../../modules/esnext.iterator.drop');
78
require('../../modules/esnext.iterator.every');
Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,7 @@
11
'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/concat');
173
require('../../modules/esnext.iterator.chunks');
18-
require('../../modules/esnext.iterator.concat');
194
require('../../modules/esnext.iterator.sliding');
205
require('../../modules/esnext.iterator.windows');
21-
require('../../modules/web.dom-collections.iterator');
22-
var path = require('../../internals/path');
236

24-
module.exports = path.Iterator.concat;
7+
module.exports = parent;

packages/core-js/full/iterator/index.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
var parent = require('../../actual/iterator');
33
require('../../modules/esnext.iterator.chunks');
4-
require('../../modules/esnext.iterator.concat');
54
require('../../modules/esnext.iterator.range');
65
require('../../modules/esnext.iterator.sliding');
76
require('../../modules/esnext.iterator.windows');

packages/core-js/modules/esnext.iterator.concat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ var IteratorProxy = createIteratorProxy(function () {
3535

3636
// `Iterator.concat` method
3737
// https://github.com/tc39/proposal-iterator-sequencing
38-
$({ target: 'Iterator', stat: true, forced: true }, {
38+
$({ target: 'Iterator', stat: true }, {
3939
concat: function concat() {
4040
var length = arguments.length;
4141
var iterables = $Array(length);

packages/core-js/stage/2.7.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22
var parent = require('./3');
33

4-
require('../proposals/iterator-sequencing');
54
require('../proposals/map-upsert-v4');
65

76
module.exports = parent;

packages/core-js/stage/3.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
var parent = require('./4');
33

44
require('../proposals/decorator-metadata-v2');
5+
require('../proposals/iterator-sequencing');
56
require('../proposals/json-parse-with-source');
67
// TODO: Obsolete versions, remove from `core-js@4`
78
require('../proposals/array-grouping-stage-3');

tests/entries/unit.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,7 @@ for (PATH of ['core-js-pure', 'core-js']) {
710710
ok(typeof load(NS, 'async-iterator/take') == 'function');
711711
ok(typeof load(NS, 'async-iterator/to-array') == 'function');
712712
ok(load(NS, 'function/metadata') === null);
713+
ok(load(NS, 'iterator/concat')([2]).next().value === 2);
713714
ok(typeof load(NS, 'iterator/to-async') == 'function');
714715
ok(load(NS, 'json/is-raw-json')({}) === false);
715716
ok(load(NS, 'json/parse')('[42]', (key, value, { source }) => typeof value == 'number' ? source + source : value)[0] === '4242');
@@ -771,7 +772,6 @@ for (PATH of ['core-js-pure', 'core-js']) {
771772
ok(load(NS, 'function/virtual/un-this').call([].slice)([1, 2, 3], 1)[0] === 2);
772773
ok(typeof load(NS, 'iterator/as-indexed-pairs') == 'function');
773774
ok(typeof load(NS, 'iterator/indexed') == 'function');
774-
ok(load(NS, 'iterator/concat')([2]).next().value === 2);
775775
ok(load(NS, 'iterator/range')(1, 2).next().value === 1);
776776
ok(typeof load(NS, 'iterator/chunks') == 'function');
777777
ok(typeof load(NS, 'iterator/sliding') == 'function');

0 commit comments

Comments
 (0)