Skip to content

Commit 3fde829

Browse files
committed
move Iterator sequencing proposal to stable ES
1 parent 8aeb76d commit 3fde829

File tree

19 files changed

+143
-113
lines changed

19 files changed

+143
-113
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22
### Unreleased
3+
- [`Iterator` sequencing proposal](https://github.com/tc39/proposal-iterator-sequencing):
4+
- Built-ins:
5+
- `Iterator.concat`
6+
- Moved to stable ES, November 2025 TC39 meeting
7+
- Added `es.` namespace modules, `/es/` and `/stable/` namespaces entries
38
- Fixed increasing `.size` in `URLSearchParams.prototype.append` polyfill in IE8-
49
- Compat data improvements:
510
- [`Iterator.concat`](https://github.com/tc39/proposal-iterator-sequencing) marked as [shipped in FF147](https://bugzilla.mozilla.org/show_bug.cgi?id=1986672#c4)

README.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
145145
- [Explicit Resource Management](#explicit-resource-management)
146146
- [`Float16` methods](#float16-methods)
147147
- [`Iterator` helpers](#iterator-helpers)
148+
- [`Iterator` sequencing](#iterator-sequencing)
148149
- [`Object.values` / `Object.entries`](#objectvalues--objectentries)
149150
- [`Object.fromEntries`](#objectfromentries)
150151
- [`Object.getOwnPropertyDescriptors`](#objectgetownpropertydescriptors)
@@ -168,7 +169,6 @@ structuredClone(new Set([1, 2, 3])); // => new Set([1, 2, 3])
168169
- [New `Set` methods](#new-set-methods)
169170
- [`Math.sumPrecise`](#mathsumprecise)
170171
- [Stage 3 proposals](#stage-3-proposals)
171-
- [`Iterator` sequencing](#iterator-sequencing)
172172
- [`Map` upsert](#map-upsert)
173173
- [`JSON.parse` source text access](#jsonparse-source-text-access)
174174
- [`Symbol.metadata` for decorators metadata proposal](#symbolmetadata-for-decorators-metadata-proposal)
@@ -869,9 +869,10 @@ await Array.fromAsync((async function * () { yield * [1, 2, 3]; })(), i => i **
869869
```
870870

871871
#### ECMAScript: Iterator[](#index)
872-
Modules [`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)
872+
Modules [`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)
873873
```ts
874874
class Iterator {
875+
static concat(...items: Array<IterableObject>): Iterator<any>;
875876
static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;
876877
drop(limit: uint): Iterator<any>;
877878
every(callbackfn: (value: any, counter: uint) => boolean): boolean;
@@ -891,6 +892,7 @@ class Iterator {
891892
[*CommonJS entry points:*](#commonjs-api)
892893
```
893894
core-js(-pure)/es|stable|actual|full/iterator
895+
core-js(-pure)/es|stable|actual|full/iterator/concat
894896
core-js(-pure)/es|stable|actual|full/iterator/dispose
895897
core-js(-pure)/es|stable|actual|full/iterator/drop
896898
core-js(-pure)/es|stable|actual|full/iterator/every
@@ -905,7 +907,7 @@ core-js(-pure)/es|stable|actual|full/iterator/some
905907
core-js(-pure)/es|stable|actual|full/iterator/take
906908
core-js(-pure)/es|stable|actual|full/iterator/to-array
907909
```
908-
[Examples](https://tinyurl.com/249jw4e4):
910+
[Examples](https://tinyurl.com/24af2z7v):
909911
```js
910912
[1, 2, 3, 4, 5, 6, 7].values()
911913
.drop(1)
@@ -917,6 +919,11 @@ core-js(-pure)/es|stable|actual|full/iterator/to-array
917919
Iterator.from({
918920
next: () => ({ done: Math.random() > 0.9, value: Math.random() * 10 | 0 }),
919921
}).toArray(); // => [7, 6, 3, 0, 2, 8]
922+
923+
Iterator.concat([0, 1].values(), [2, 3], function * () {
924+
yield 4;
925+
yield 5;
926+
}()).toArray(); // => [0, 1, 2, 3, 4, 5]
920927
```
921928

922929
> [!WARNING]
@@ -2428,6 +2435,17 @@ class Iterator {
24282435
core-js/proposals/iterator-helpers-stage-3-2
24292436
```
24302437

2438+
##### [`Iterator` sequencing](https://github.com/tc39/proposal-iterator-sequencing)[](#index)
2439+
```ts
2440+
class Iterator {
2441+
static concat(...items: Array<IterableObject>): Iterator<any>;
2442+
}
2443+
```
2444+
[*CommonJS entry points:*](#commonjs-api)
2445+
```
2446+
core-js/proposals/iterator-sequencing
2447+
```
2448+
24312449
##### [`Object.values` / `Object.entries`](https://github.com/tc39/proposal-object-values-entries)[](#index)
24322450
```ts
24332451
class Object {
@@ -2687,26 +2705,6 @@ core-js/proposals/math-sum
26872705
core-js(-pure)/stage/3
26882706
```
26892707

2690-
##### [`Iterator` sequencing](https://github.com/tc39/proposal-iterator-sequencing)[](#index)
2691-
Module [`esnext.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.concat.js)
2692-
```ts
2693-
class Iterator {
2694-
static concat(...items: Array<IterableObject>): Iterator<any>;
2695-
}
2696-
```
2697-
[*CommonJS entry points:*](#commonjs-api)
2698-
```
2699-
core-js/proposals/iterator-sequencing
2700-
core-js(-pure)/actual|full/iterator/concat
2701-
```
2702-
[*Example*](https://tinyurl.com/2522xjae):
2703-
```js
2704-
Iterator.concat([0, 1].values(), [2, 3], function * () {
2705-
yield 4;
2706-
yield 5;
2707-
}()).toArray(); // => [0, 1, 2, 3, 4, 5]
2708-
```
2709-
27102708
##### [`Map` upsert](https://github.com/thumbsupep/proposal-upsert)[](#index)
27112709
Modules [`esnext.map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.get-or-insert.js), [`esnext.map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.map.get-or-insert-computed.js), [`esnext.weak-map.get-or-insert`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.get-or-insert.js) and [`esnext.weak-map.get-or-insert-computed`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.weak-map.get-or-insert-computed.js)
27122710
```ts

docs/web/docs/features/ecmascript/iterator.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# ECMAScript: Iterator
22
## Modules
3-
[`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)
3+
[`es.iterator.constructor`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.constructor.js), [`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js), [`es.iterator.dispose`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.dispose.js), [`es.iterator.drop`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.drop.js), [`es.iterator.every`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.every.js), [`es.iterator.filter`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.filter.js), [`es.iterator.find`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.find.js), [`es.iterator.flat-map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.flat-map.js), [`es.iterator.for-each`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.for-each.js), [`es.iterator.from`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.from.js), [`es.iterator.map`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.map.js), [`es.iterator.reduce`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.reduce.js), [`es.iterator.some`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.some.js), [`es.iterator.take`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.take.js), [`es.iterator.to-array`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.to-array.js)
44

55
## Built-ins signatures
66
```ts
77
class Iterator {
8+
static concat(...items: Array<IterableObject>): Iterator<any>;
89
static from(iterable: Iterable<any> | Iterator<any>): Iterator<any>;
910
drop(limit: uint): Iterator<any>;
1011
every(callbackfn: (value: any, counter: uint) => boolean): boolean;
@@ -25,6 +26,7 @@ class Iterator {
2526
## [Entry points]({docs-version}/docs/usage#h-entry-points)
2627
```
2728
core-js(-pure)/es|stable|actual|full/iterator
29+
core-js(-pure)/es|stable|actual|full/iterator/concat
2830
core-js(-pure)/es|stable|actual|full/iterator/dispose
2931
core-js(-pure)/es|stable|actual|full/iterator/drop
3032
core-js(-pure)/es|stable|actual|full/iterator/every
@@ -52,6 +54,11 @@ core-js(-pure)/es|stable|actual|full/iterator/to-array
5254
Iterator.from({
5355
next: () => ({ done: Math.random() > 0.9, value: Math.random() * 10 | 0 }),
5456
}).toArray(); // => [7, 6, 3, 0, 2, 8]
57+
58+
Iterator.concat([0, 1].values(), [2, 3], function * () {
59+
yield 4;
60+
yield 5;
61+
}()).toArray(); // => [0, 1, 2, 3, 4, 5]
5562
```
5663

5764
> [!WARNING]

docs/web/docs/features/proposals/iterator-sequencing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[Proposal repo](https://github.com/tc39/proposal-iterator-sequencing)
44

55
## Modules
6-
[`esnext.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/esnext.iterator.concat.js)
6+
[`es.iterator.concat`](https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/es.iterator.concat.js)
77

88
## Built-ins signatures
99
```ts
@@ -15,7 +15,7 @@ class Iterator {
1515
## [Entry points]({docs-version}/docs/usage#h-entry-points)
1616
```ts
1717
core-js/proposals/iterator-sequencing
18-
core-js(-pure)/actual|full/iterator/concat
18+
core-js(-pure)/es|stable|actual|full/iterator/concat
1919
```
2020

2121
## Example

docs/web/docs/menu.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@
145145
"title": "Iterator helpers",
146146
"url": "{docs-version}/docs/features/proposals/iterator-helpers"
147147
},
148+
{
149+
"title": "Iterator sequencing",
150+
"url": "{docs-version}/docs/features/proposals/iterator-sequencing"
151+
},
148152
{
149153
"title": "Object.values / Object.entries",
150154
"url": "{docs-version}/docs/features/proposals/object-values-entries"
@@ -238,10 +242,6 @@
238242
{
239243
"title": "Stage 3 proposals",
240244
"children": [
241-
{
242-
"title": "Iterator sequencing",
243-
"url": "{docs-version}/docs/features/proposals/iterator-sequencing"
244-
},
245245
{
246246
"title": "Map upsert",
247247
"url": "{docs-version}/docs/features/proposals/map-upsert"

packages/core-js-compat/src/data.mjs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,9 @@ export const data = {
685685
firefox: '131',
686686
safari: '18.4',
687687
},
688+
'es.iterator.concat': {
689+
firefox: '147',
690+
},
688691
'es.iterator.dispose': {
689692
bun: '1.3.0',
690693
// reverted in https://issues.chromium.org/issues/42203506#comment25
@@ -2506,9 +2509,8 @@ export const data = {
25062509
},
25072510
'esnext.iterator.chunks': {
25082511
},
2509-
'esnext.iterator.concat': {
2510-
firefox: '147',
2511-
},
2512+
// TODO: Remove from `core-js@4`
2513+
'esnext.iterator.concat': null,
25122514
// TODO: Remove from `core-js@4`
25132515
'esnext.iterator.dispose': null,
25142516
// TODO: Remove from `core-js@4`
@@ -3167,6 +3169,7 @@ export const renamed = new Map([
31673169
['esnext.error.is-error', 'es.error.is-error'],
31683170
['esnext.global-this', 'es.global-this'],
31693171
['esnext.iterator.constructor', 'es.iterator.constructor'],
3172+
['esnext.iterator.concat', 'es.iterator.concat'],
31703173
['esnext.iterator.dispose', 'es.iterator.dispose'],
31713174
['esnext.iterator.drop', 'es.iterator.drop'],
31723175
['esnext.iterator.every', 'es.iterator.every'],

packages/core-js-compat/src/modules-by-versions.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,4 +311,7 @@ export default {
311311
'es.uint8-array.to-base64',
312312
'es.uint8-array.to-hex',
313313
],
314+
3.47: [
315+
'es.iterator.concat',
316+
],
314317
};
Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
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('../../stable/iterator/concat');
173
require('../../modules/esnext.iterator.concat');
18-
require('../../modules/web.dom-collections.iterator');
19-
var path = require('../../internals/path');
204

21-
module.exports = path.Iterator.concat;
5+
module.exports = parent;
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/es.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/es/iterator/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ require('../../modules/es.array.iterator');
33
require('../../modules/es.object.to-string');
44
require('../../modules/es.string.iterator');
55
require('../../modules/es.iterator.constructor');
6+
require('../../modules/es.iterator.concat');
67
require('../../modules/es.iterator.dispose');
78
require('../../modules/es.iterator.drop');
89
require('../../modules/es.iterator.every');

0 commit comments

Comments
 (0)