Skip to content

Commit 907f5dc

Browse files
authored
Merge pull request microsoft#1713 from microsoft/builtiniteratorreturn
Add BuiltinIteratorReturn to IterableIterator and AsyncIterableIterator return types
2 parents 36b4e1c + 91e30ab commit 907f5dc

33 files changed

+58369
-372
lines changed

Diff for: baselines/audioworklet.asynciterable.generated.d.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
/// AudioWorklet Async Iterable APIs
33
/////////////////////////////
44

5+
interface ReadableStreamAsyncIterator<T> extends AsyncIteratorObject<T, BuiltinIteratorReturn, unknown> {
6+
[Symbol.asyncIterator](): ReadableStreamAsyncIterator<T>;
7+
}
8+
59
interface ReadableStream<R = any> {
6-
[Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): AsyncIterableIterator<R>;
7-
values(options?: ReadableStreamIteratorOptions): AsyncIterableIterator<R>;
10+
[Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator<R>;
11+
values(options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator<R>;
812
}

Diff for: baselines/audioworklet.iterable.generated.d.ts

+8-4
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,16 @@ interface MessageEvent<T = any> {
1212
initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable<MessagePort>): void;
1313
}
1414

15+
interface URLSearchParamsIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
16+
[Symbol.iterator](): URLSearchParamsIterator<T>;
17+
}
18+
1519
interface URLSearchParams {
16-
[Symbol.iterator](): IterableIterator<[string, string]>;
20+
[Symbol.iterator](): URLSearchParamsIterator<[string, string]>;
1721
/** Returns an array of key, value pairs for every entry in the search params. */
18-
entries(): IterableIterator<[string, string]>;
22+
entries(): URLSearchParamsIterator<[string, string]>;
1923
/** Returns a list of keys in the search params. */
20-
keys(): IterableIterator<string>;
24+
keys(): URLSearchParamsIterator<string>;
2125
/** Returns a list of values in the search params. */
22-
values(): IterableIterator<string>;
26+
values(): URLSearchParamsIterator<string>;
2327
}

Diff for: baselines/dom.asynciterable.generated.d.ts

+14-6
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,22 @@
22
/// Window Async Iterable APIs
33
/////////////////////////////
44

5+
interface FileSystemDirectoryHandleAsyncIterator<T> extends AsyncIteratorObject<T, BuiltinIteratorReturn, unknown> {
6+
[Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator<T>;
7+
}
8+
59
interface FileSystemDirectoryHandle {
6-
[Symbol.asyncIterator](): AsyncIterableIterator<[string, FileSystemHandle]>;
7-
entries(): AsyncIterableIterator<[string, FileSystemHandle]>;
8-
keys(): AsyncIterableIterator<string>;
9-
values(): AsyncIterableIterator<FileSystemHandle>;
10+
[Symbol.asyncIterator](): FileSystemDirectoryHandleAsyncIterator<[string, FileSystemHandle]>;
11+
entries(): FileSystemDirectoryHandleAsyncIterator<[string, FileSystemHandle]>;
12+
keys(): FileSystemDirectoryHandleAsyncIterator<string>;
13+
values(): FileSystemDirectoryHandleAsyncIterator<FileSystemHandle>;
14+
}
15+
16+
interface ReadableStreamAsyncIterator<T> extends AsyncIteratorObject<T, BuiltinIteratorReturn, unknown> {
17+
[Symbol.asyncIterator](): ReadableStreamAsyncIterator<T>;
1018
}
1119

1220
interface ReadableStream<R = any> {
13-
[Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): AsyncIterableIterator<R>;
14-
values(options?: ReadableStreamIteratorOptions): AsyncIterableIterator<R>;
21+
[Symbol.asyncIterator](options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator<R>;
22+
values(options?: ReadableStreamIteratorOptions): ReadableStreamAsyncIterator<R>;
1523
}

Diff for: baselines/dom.iterable.generated.d.ts

+93-73
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,36 @@ interface BaseAudioContext {
2323
}
2424

2525
interface CSSKeyframesRule {
26-
[Symbol.iterator](): IterableIterator<CSSKeyframeRule>;
26+
[Symbol.iterator](): ArrayIterator<CSSKeyframeRule>;
2727
}
2828

2929
interface CSSNumericArray {
30-
[Symbol.iterator](): IterableIterator<CSSNumericValue>;
31-
entries(): IterableIterator<[number, CSSNumericValue]>;
32-
keys(): IterableIterator<number>;
33-
values(): IterableIterator<CSSNumericValue>;
30+
[Symbol.iterator](): ArrayIterator<CSSNumericValue>;
31+
entries(): ArrayIterator<[number, CSSNumericValue]>;
32+
keys(): ArrayIterator<number>;
33+
values(): ArrayIterator<CSSNumericValue>;
3434
}
3535

3636
interface CSSRuleList {
37-
[Symbol.iterator](): IterableIterator<CSSRule>;
37+
[Symbol.iterator](): ArrayIterator<CSSRule>;
3838
}
3939

4040
interface CSSStyleDeclaration {
41-
[Symbol.iterator](): IterableIterator<string>;
41+
[Symbol.iterator](): ArrayIterator<string>;
4242
}
4343

4444
interface CSSTransformValue {
45-
[Symbol.iterator](): IterableIterator<CSSTransformComponent>;
46-
entries(): IterableIterator<[number, CSSTransformComponent]>;
47-
keys(): IterableIterator<number>;
48-
values(): IterableIterator<CSSTransformComponent>;
45+
[Symbol.iterator](): ArrayIterator<CSSTransformComponent>;
46+
entries(): ArrayIterator<[number, CSSTransformComponent]>;
47+
keys(): ArrayIterator<number>;
48+
values(): ArrayIterator<CSSTransformComponent>;
4949
}
5050

5151
interface CSSUnparsedValue {
52-
[Symbol.iterator](): IterableIterator<CSSUnparsedSegment>;
53-
entries(): IterableIterator<[number, CSSUnparsedSegment]>;
54-
keys(): IterableIterator<number>;
55-
values(): IterableIterator<CSSUnparsedSegment>;
52+
[Symbol.iterator](): ArrayIterator<CSSUnparsedSegment>;
53+
entries(): ArrayIterator<[number, CSSUnparsedSegment]>;
54+
keys(): ArrayIterator<number>;
55+
values(): ArrayIterator<CSSUnparsedSegment>;
5656
}
5757

5858
interface Cache {
@@ -74,72 +74,80 @@ interface CustomStateSet extends Set<string> {
7474
}
7575

7676
interface DOMRectList {
77-
[Symbol.iterator](): IterableIterator<DOMRect>;
77+
[Symbol.iterator](): ArrayIterator<DOMRect>;
7878
}
7979

8080
interface DOMStringList {
81-
[Symbol.iterator](): IterableIterator<string>;
81+
[Symbol.iterator](): ArrayIterator<string>;
8282
}
8383

8484
interface DOMTokenList {
85-
[Symbol.iterator](): IterableIterator<string>;
86-
entries(): IterableIterator<[number, string]>;
87-
keys(): IterableIterator<number>;
88-
values(): IterableIterator<string>;
85+
[Symbol.iterator](): ArrayIterator<string>;
86+
entries(): ArrayIterator<[number, string]>;
87+
keys(): ArrayIterator<number>;
88+
values(): ArrayIterator<string>;
8989
}
9090

9191
interface DataTransferItemList {
92-
[Symbol.iterator](): IterableIterator<DataTransferItem>;
92+
[Symbol.iterator](): ArrayIterator<DataTransferItem>;
9393
}
9494

9595
interface EventCounts extends ReadonlyMap<string, number> {
9696
}
9797

9898
interface FileList {
99-
[Symbol.iterator](): IterableIterator<File>;
99+
[Symbol.iterator](): ArrayIterator<File>;
100100
}
101101

102102
interface FontFaceSet extends Set<FontFace> {
103103
}
104104

105+
interface FormDataIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
106+
[Symbol.iterator](): FormDataIterator<T>;
107+
}
108+
105109
interface FormData {
106-
[Symbol.iterator](): IterableIterator<[string, FormDataEntryValue]>;
110+
[Symbol.iterator](): FormDataIterator<[string, FormDataEntryValue]>;
107111
/** Returns an array of key, value pairs for every entry in the list. */
108-
entries(): IterableIterator<[string, FormDataEntryValue]>;
112+
entries(): FormDataIterator<[string, FormDataEntryValue]>;
109113
/** Returns a list of keys in the list. */
110-
keys(): IterableIterator<string>;
114+
keys(): FormDataIterator<string>;
111115
/** Returns a list of values in the list. */
112-
values(): IterableIterator<FormDataEntryValue>;
116+
values(): FormDataIterator<FormDataEntryValue>;
113117
}
114118

115119
interface HTMLAllCollection {
116-
[Symbol.iterator](): IterableIterator<Element>;
120+
[Symbol.iterator](): ArrayIterator<Element>;
117121
}
118122

119123
interface HTMLCollectionBase {
120-
[Symbol.iterator](): IterableIterator<Element>;
124+
[Symbol.iterator](): ArrayIterator<Element>;
121125
}
122126

123127
interface HTMLCollectionOf<T extends Element> {
124-
[Symbol.iterator](): IterableIterator<T>;
128+
[Symbol.iterator](): ArrayIterator<T>;
125129
}
126130

127131
interface HTMLFormElement {
128-
[Symbol.iterator](): IterableIterator<Element>;
132+
[Symbol.iterator](): ArrayIterator<Element>;
129133
}
130134

131135
interface HTMLSelectElement {
132-
[Symbol.iterator](): IterableIterator<HTMLOptionElement>;
136+
[Symbol.iterator](): ArrayIterator<HTMLOptionElement>;
137+
}
138+
139+
interface HeadersIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
140+
[Symbol.iterator](): HeadersIterator<T>;
133141
}
134142

135143
interface Headers {
136-
[Symbol.iterator](): IterableIterator<[string, string]>;
144+
[Symbol.iterator](): HeadersIterator<[string, string]>;
137145
/** Returns an iterator allowing to go through all key/value pairs contained in this object. */
138-
entries(): IterableIterator<[string, string]>;
146+
entries(): HeadersIterator<[string, string]>;
139147
/** Returns an iterator allowing to go through all keys of the key/value pairs contained in this object. */
140-
keys(): IterableIterator<string>;
148+
keys(): HeadersIterator<string>;
141149
/** Returns an iterator allowing to go through all values of the key/value pairs contained in this object. */
142-
values(): IterableIterator<string>;
150+
values(): HeadersIterator<string>;
143151
}
144152

145153
interface Highlight extends Set<AbstractRange> {
@@ -179,15 +187,19 @@ interface MIDIOutput {
179187
interface MIDIOutputMap extends ReadonlyMap<string, MIDIOutput> {
180188
}
181189

190+
interface MediaKeyStatusMapIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
191+
[Symbol.iterator](): MediaKeyStatusMapIterator<T>;
192+
}
193+
182194
interface MediaKeyStatusMap {
183-
[Symbol.iterator](): IterableIterator<[BufferSource, MediaKeyStatus]>;
184-
entries(): IterableIterator<[BufferSource, MediaKeyStatus]>;
185-
keys(): IterableIterator<BufferSource>;
186-
values(): IterableIterator<MediaKeyStatus>;
195+
[Symbol.iterator](): MediaKeyStatusMapIterator<[BufferSource, MediaKeyStatus]>;
196+
entries(): MediaKeyStatusMapIterator<[BufferSource, MediaKeyStatus]>;
197+
keys(): MediaKeyStatusMapIterator<BufferSource>;
198+
values(): MediaKeyStatusMapIterator<MediaKeyStatus>;
187199
}
188200

189201
interface MediaList {
190-
[Symbol.iterator](): IterableIterator<string>;
202+
[Symbol.iterator](): ArrayIterator<string>;
191203
}
192204

193205
interface MessageEvent<T = any> {
@@ -196,11 +208,11 @@ interface MessageEvent<T = any> {
196208
}
197209

198210
interface MimeTypeArray {
199-
[Symbol.iterator](): IterableIterator<MimeType>;
211+
[Symbol.iterator](): ArrayIterator<MimeType>;
200212
}
201213

202214
interface NamedNodeMap {
203-
[Symbol.iterator](): IterableIterator<Attr>;
215+
[Symbol.iterator](): ArrayIterator<Attr>;
204216
}
205217

206218
interface Navigator {
@@ -215,31 +227,31 @@ interface Navigator {
215227
}
216228

217229
interface NodeList {
218-
[Symbol.iterator](): IterableIterator<Node>;
230+
[Symbol.iterator](): ArrayIterator<Node>;
219231
/** Returns an array of key, value pairs for every entry in the list. */
220-
entries(): IterableIterator<[number, Node]>;
232+
entries(): ArrayIterator<[number, Node]>;
221233
/** Returns an list of keys in the list. */
222-
keys(): IterableIterator<number>;
234+
keys(): ArrayIterator<number>;
223235
/** Returns an list of values in the list. */
224-
values(): IterableIterator<Node>;
236+
values(): ArrayIterator<Node>;
225237
}
226238

227239
interface NodeListOf<TNode extends Node> {
228-
[Symbol.iterator](): IterableIterator<TNode>;
240+
[Symbol.iterator](): ArrayIterator<TNode>;
229241
/** Returns an array of key, value pairs for every entry in the list. */
230-
entries(): IterableIterator<[number, TNode]>;
242+
entries(): ArrayIterator<[number, TNode]>;
231243
/** Returns an list of keys in the list. */
232-
keys(): IterableIterator<number>;
244+
keys(): ArrayIterator<number>;
233245
/** Returns an list of values in the list. */
234-
values(): IterableIterator<TNode>;
246+
values(): ArrayIterator<TNode>;
235247
}
236248

237249
interface Plugin {
238-
[Symbol.iterator](): IterableIterator<MimeType>;
250+
[Symbol.iterator](): ArrayIterator<MimeType>;
239251
}
240252

241253
interface PluginArray {
242-
[Symbol.iterator](): IterableIterator<Plugin>;
254+
[Symbol.iterator](): ArrayIterator<Plugin>;
243255
}
244256

245257
interface RTCRtpTransceiver {
@@ -251,46 +263,50 @@ interface RTCStatsReport extends ReadonlyMap<string, any> {
251263
}
252264

253265
interface SVGLengthList {
254-
[Symbol.iterator](): IterableIterator<SVGLength>;
266+
[Symbol.iterator](): ArrayIterator<SVGLength>;
255267
}
256268

257269
interface SVGNumberList {
258-
[Symbol.iterator](): IterableIterator<SVGNumber>;
270+
[Symbol.iterator](): ArrayIterator<SVGNumber>;
259271
}
260272

261273
interface SVGPointList {
262-
[Symbol.iterator](): IterableIterator<DOMPoint>;
274+
[Symbol.iterator](): ArrayIterator<DOMPoint>;
263275
}
264276

265277
interface SVGStringList {
266-
[Symbol.iterator](): IterableIterator<string>;
278+
[Symbol.iterator](): ArrayIterator<string>;
267279
}
268280

269281
interface SVGTransformList {
270-
[Symbol.iterator](): IterableIterator<SVGTransform>;
282+
[Symbol.iterator](): ArrayIterator<SVGTransform>;
271283
}
272284

273285
interface SourceBufferList {
274-
[Symbol.iterator](): IterableIterator<SourceBuffer>;
286+
[Symbol.iterator](): ArrayIterator<SourceBuffer>;
275287
}
276288

277289
interface SpeechRecognitionResult {
278-
[Symbol.iterator](): IterableIterator<SpeechRecognitionAlternative>;
290+
[Symbol.iterator](): ArrayIterator<SpeechRecognitionAlternative>;
279291
}
280292

281293
interface SpeechRecognitionResultList {
282-
[Symbol.iterator](): IterableIterator<SpeechRecognitionResult>;
294+
[Symbol.iterator](): ArrayIterator<SpeechRecognitionResult>;
295+
}
296+
297+
interface StylePropertyMapReadOnlyIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
298+
[Symbol.iterator](): StylePropertyMapReadOnlyIterator<T>;
283299
}
284300

285301
interface StylePropertyMapReadOnly {
286-
[Symbol.iterator](): IterableIterator<[string, Iterable<CSSStyleValue>]>;
287-
entries(): IterableIterator<[string, Iterable<CSSStyleValue>]>;
288-
keys(): IterableIterator<string>;
289-
values(): IterableIterator<Iterable<CSSStyleValue>>;
302+
[Symbol.iterator](): StylePropertyMapReadOnlyIterator<[string, Iterable<CSSStyleValue>]>;
303+
entries(): StylePropertyMapReadOnlyIterator<[string, Iterable<CSSStyleValue>]>;
304+
keys(): StylePropertyMapReadOnlyIterator<string>;
305+
values(): StylePropertyMapReadOnlyIterator<Iterable<CSSStyleValue>>;
290306
}
291307

292308
interface StyleSheetList {
293-
[Symbol.iterator](): IterableIterator<CSSStyleSheet>;
309+
[Symbol.iterator](): ArrayIterator<CSSStyleSheet>;
294310
}
295311

296312
interface SubtleCrypto {
@@ -309,25 +325,29 @@ interface SubtleCrypto {
309325
}
310326

311327
interface TextTrackCueList {
312-
[Symbol.iterator](): IterableIterator<TextTrackCue>;
328+
[Symbol.iterator](): ArrayIterator<TextTrackCue>;
313329
}
314330

315331
interface TextTrackList {
316-
[Symbol.iterator](): IterableIterator<TextTrack>;
332+
[Symbol.iterator](): ArrayIterator<TextTrack>;
317333
}
318334

319335
interface TouchList {
320-
[Symbol.iterator](): IterableIterator<Touch>;
336+
[Symbol.iterator](): ArrayIterator<Touch>;
337+
}
338+
339+
interface URLSearchParamsIterator<T> extends IteratorObject<T, BuiltinIteratorReturn, unknown> {
340+
[Symbol.iterator](): URLSearchParamsIterator<T>;
321341
}
322342

323343
interface URLSearchParams {
324-
[Symbol.iterator](): IterableIterator<[string, string]>;
344+
[Symbol.iterator](): URLSearchParamsIterator<[string, string]>;
325345
/** Returns an array of key, value pairs for every entry in the search params. */
326-
entries(): IterableIterator<[string, string]>;
346+
entries(): URLSearchParamsIterator<[string, string]>;
327347
/** Returns a list of keys in the search params. */
328-
keys(): IterableIterator<string>;
348+
keys(): URLSearchParamsIterator<string>;
329349
/** Returns a list of values in the search params. */
330-
values(): IterableIterator<string>;
350+
values(): URLSearchParamsIterator<string>;
331351
}
332352

333353
interface WEBGL_draw_buffers {

0 commit comments

Comments
 (0)