Skip to content

Commit 50f9ce4

Browse files
committed
Merge pull request #2083 from Microsoft/iterators
Split Iterator into Iterator and IterableIterator in es6.d.ts
2 parents a27d19d + 7711a45 commit 50f9ce4

File tree

1 file changed

+60
-54
lines changed

1 file changed

+60
-54
lines changed

src/lib/es6.d.ts

Lines changed: 60 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -230,22 +230,22 @@ interface ArrayLike<T> {
230230

231231
interface Array<T> {
232232
/** Iterator */
233-
[Symbol.iterator] (): Iterator<T>;
233+
[Symbol.iterator](): IterableIterator<T>;
234234

235235
/**
236236
* Returns an array of key, value pairs for every entry in the array
237237
*/
238-
entries(): Iterator<[number, T]>;
238+
entries(): IterableIterator<[number, T]>;
239239

240240
/**
241241
* Returns an list of keys in the array
242242
*/
243-
keys(): Iterator<number>;
243+
keys(): IterableIterator<number>;
244244

245245
/**
246246
* Returns an list of values in the array
247247
*/
248-
values(): Iterator<T>;
248+
values(): IterableIterator<T>;
249249

250250
/**
251251
* Returns the value of the first element in the array where predicate is true, and undefined
@@ -329,7 +329,7 @@ interface ArrayConstructor {
329329

330330
interface String {
331331
/** Iterator */
332-
[Symbol.iterator] (): Iterator<string>;
332+
[Symbol.iterator](): IterableIterator<string>;
333333

334334
/**
335335
* Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point
@@ -447,14 +447,19 @@ interface IteratorResult<T> {
447447
}
448448

449449
interface Iterator<T> {
450-
[Symbol.iterator](): Iterator<T>;
451450
next(): IteratorResult<T>;
451+
return?(value?: any): IteratorResult<T>;
452+
throw?(e?: any): IteratorResult<T>;
452453
}
453454

454455
interface Iterable<T> {
455456
[Symbol.iterator](): Iterator<T>;
456457
}
457458

459+
interface IterableIterator<T> extends Iterator<T> {
460+
[Symbol.iterator](): IterableIterator<T>;
461+
}
462+
458463
interface GeneratorFunction extends Function {
459464

460465
}
@@ -470,10 +475,11 @@ interface GeneratorFunctionConstructor {
470475
}
471476
declare var GeneratorFunction: GeneratorFunctionConstructor;
472477

473-
interface Generator<T> extends Iterator<T> {
478+
interface Generator<T> extends IterableIterator<T> {
474479
next(value?: any): IteratorResult<T>;
475-
throw (exception: any): IteratorResult<T>;
476-
return (value: T): IteratorResult<T>;
480+
throw(exception: any): IteratorResult<T>;
481+
return(value: T): IteratorResult<T>;
482+
[Symbol.iterator](): Generator<T>;
477483
[Symbol.toStringTag]: string;
478484
}
479485

@@ -641,15 +647,15 @@ interface RegExp {
641647
interface Map<K, V> {
642648
clear(): void;
643649
delete(key: K): boolean;
644-
entries(): Iterator<[K, V]>;
650+
entries(): IterableIterator<[K, V]>;
645651
forEach(callbackfn: (value: V, index: K, map: Map<K, V>) => void, thisArg?: any): void;
646652
get(key: K): V;
647653
has(key: K): boolean;
648-
keys(): Iterator<K>;
654+
keys(): IterableIterator<K>;
649655
set(key: K, value?: V): Map<K, V>;
650656
size: number;
651-
values(): Iterator<V>;
652-
[Symbol.iterator]():Iterator<[K,V]>;
657+
values(): IterableIterator<V>;
658+
[Symbol.iterator]():IterableIterator<[K,V]>;
653659
[Symbol.toStringTag]: string;
654660
}
655661

@@ -680,13 +686,13 @@ interface Set<T> {
680686
add(value: T): Set<T>;
681687
clear(): void;
682688
delete(value: T): boolean;
683-
entries(): Iterator<[T, T]>;
689+
entries(): IterableIterator<[T, T]>;
684690
forEach(callbackfn: (value: T, index: T, set: Set<T>) => void, thisArg?: any): void;
685691
has(value: T): boolean;
686-
keys(): Iterator<T>;
692+
keys(): IterableIterator<T>;
687693
size: number;
688-
values(): Iterator<T>;
689-
[Symbol.iterator]():Iterator<T>;
694+
values(): IterableIterator<T>;
695+
[Symbol.iterator]():IterableIterator<T>;
690696
[Symbol.toStringTag]: string;
691697
}
692698

@@ -917,7 +923,7 @@ interface Int8Array {
917923
/**
918924
* Returns an array of key, value pairs for every entry in the array
919925
*/
920-
entries(): Iterator<[number, number]>;
926+
entries(): IterableIterator<[number, number]>;
921927

922928
/**
923929
* Determines whether all the members of an array satisfy the specified test.
@@ -997,7 +1003,7 @@ interface Int8Array {
9971003
/**
9981004
* Returns an list of keys in the array
9991005
*/
1000-
keys(): Iterator<number>;
1006+
keys(): IterableIterator<number>;
10011007

10021008
/**
10031009
* Returns the index of the last occurrence of a value in an array.
@@ -1134,10 +1140,10 @@ interface Int8Array {
11341140
/**
11351141
* Returns an list of values in the array
11361142
*/
1137-
values(): Iterator<number>;
1143+
values(): IterableIterator<number>;
11381144

11391145
[index: number]: number;
1140-
[Symbol.iterator] (): Iterator<number>;
1146+
[Symbol.iterator](): IterableIterator<number>;
11411147
}
11421148

11431149
interface Int8ArrayConstructor {
@@ -1207,7 +1213,7 @@ interface Uint8Array {
12071213
/**
12081214
* Returns an array of key, value pairs for every entry in the array
12091215
*/
1210-
entries(): Iterator<[number, number]>;
1216+
entries(): IterableIterator<[number, number]>;
12111217

12121218
/**
12131219
* Determines whether all the members of an array satisfy the specified test.
@@ -1287,7 +1293,7 @@ interface Uint8Array {
12871293
/**
12881294
* Returns an list of keys in the array
12891295
*/
1290-
keys(): Iterator<number>;
1296+
keys(): IterableIterator<number>;
12911297

12921298
/**
12931299
* Returns the index of the last occurrence of a value in an array.
@@ -1424,10 +1430,10 @@ interface Uint8Array {
14241430
/**
14251431
* Returns an list of values in the array
14261432
*/
1427-
values(): Iterator<number>;
1433+
values(): IterableIterator<number>;
14281434

14291435
[index: number]: number;
1430-
[Symbol.iterator] (): Iterator<number>;
1436+
[Symbol.iterator](): IterableIterator<number>;
14311437
}
14321438

14331439
interface Uint8ArrayConstructor {
@@ -1497,7 +1503,7 @@ interface Uint8ClampedArray {
14971503
/**
14981504
* Returns an array of key, value pairs for every entry in the array
14991505
*/
1500-
entries(): Iterator<[number, number]>;
1506+
entries(): IterableIterator<[number, number]>;
15011507

15021508
/**
15031509
* Determines whether all the members of an array satisfy the specified test.
@@ -1577,7 +1583,7 @@ interface Uint8ClampedArray {
15771583
/**
15781584
* Returns an list of keys in the array
15791585
*/
1580-
keys(): Iterator<number>;
1586+
keys(): IterableIterator<number>;
15811587

15821588
/**
15831589
* Returns the index of the last occurrence of a value in an array.
@@ -1714,10 +1720,10 @@ interface Uint8ClampedArray {
17141720
/**
17151721
* Returns an list of values in the array
17161722
*/
1717-
values(): Iterator<number>;
1723+
values(): IterableIterator<number>;
17181724

17191725
[index: number]: number;
1720-
[Symbol.iterator] (): Iterator<number>;
1726+
[Symbol.iterator](): IterableIterator<number>;
17211727
}
17221728

17231729
interface Uint8ClampedArrayConstructor {
@@ -1787,7 +1793,7 @@ interface Int16Array {
17871793
/**
17881794
* Returns an array of key, value pairs for every entry in the array
17891795
*/
1790-
entries(): Iterator<[number, number]>;
1796+
entries(): IterableIterator<[number, number]>;
17911797

17921798
/**
17931799
* Determines whether all the members of an array satisfy the specified test.
@@ -1867,7 +1873,7 @@ interface Int16Array {
18671873
/**
18681874
* Returns an list of keys in the array
18691875
*/
1870-
keys(): Iterator<number>;
1876+
keys(): IterableIterator<number>;
18711877

18721878
/**
18731879
* Returns the index of the last occurrence of a value in an array.
@@ -2004,10 +2010,10 @@ interface Int16Array {
20042010
/**
20052011
* Returns an list of values in the array
20062012
*/
2007-
values(): Iterator<number>;
2013+
values(): IterableIterator<number>;
20082014

20092015
[index: number]: number;
2010-
[Symbol.iterator] (): Iterator<number>;
2016+
[Symbol.iterator](): IterableIterator<number>;
20112017
}
20122018

20132019
interface Int16ArrayConstructor {
@@ -2077,7 +2083,7 @@ interface Uint16Array {
20772083
/**
20782084
* Returns an array of key, value pairs for every entry in the array
20792085
*/
2080-
entries(): Iterator<[number, number]>;
2086+
entries(): IterableIterator<[number, number]>;
20812087

20822088
/**
20832089
* Determines whether all the members of an array satisfy the specified test.
@@ -2157,7 +2163,7 @@ interface Uint16Array {
21572163
/**
21582164
* Returns an list of keys in the array
21592165
*/
2160-
keys(): Iterator<number>;
2166+
keys(): IterableIterator<number>;
21612167

21622168
/**
21632169
* Returns the index of the last occurrence of a value in an array.
@@ -2294,10 +2300,10 @@ interface Uint16Array {
22942300
/**
22952301
* Returns an list of values in the array
22962302
*/
2297-
values(): Iterator<number>;
2303+
values(): IterableIterator<number>;
22982304

22992305
[index: number]: number;
2300-
[Symbol.iterator] (): Iterator<number>;
2306+
[Symbol.iterator](): IterableIterator<number>;
23012307
}
23022308

23032309
interface Uint16ArrayConstructor {
@@ -2367,7 +2373,7 @@ interface Int32Array {
23672373
/**
23682374
* Returns an array of key, value pairs for every entry in the array
23692375
*/
2370-
entries(): Iterator<[number, number]>;
2376+
entries(): IterableIterator<[number, number]>;
23712377

23722378
/**
23732379
* Determines whether all the members of an array satisfy the specified test.
@@ -2447,7 +2453,7 @@ interface Int32Array {
24472453
/**
24482454
* Returns an list of keys in the array
24492455
*/
2450-
keys(): Iterator<number>;
2456+
keys(): IterableIterator<number>;
24512457

24522458
/**
24532459
* Returns the index of the last occurrence of a value in an array.
@@ -2584,10 +2590,10 @@ interface Int32Array {
25842590
/**
25852591
* Returns an list of values in the array
25862592
*/
2587-
values(): Iterator<number>;
2593+
values(): IterableIterator<number>;
25882594

25892595
[index: number]: number;
2590-
[Symbol.iterator] (): Iterator<number>;
2596+
[Symbol.iterator](): IterableIterator<number>;
25912597
}
25922598

25932599
interface Int32ArrayConstructor {
@@ -2657,7 +2663,7 @@ interface Uint32Array {
26572663
/**
26582664
* Returns an array of key, value pairs for every entry in the array
26592665
*/
2660-
entries(): Iterator<[number, number]>;
2666+
entries(): IterableIterator<[number, number]>;
26612667

26622668
/**
26632669
* Determines whether all the members of an array satisfy the specified test.
@@ -2737,7 +2743,7 @@ interface Uint32Array {
27372743
/**
27382744
* Returns an list of keys in the array
27392745
*/
2740-
keys(): Iterator<number>;
2746+
keys(): IterableIterator<number>;
27412747

27422748
/**
27432749
* Returns the index of the last occurrence of a value in an array.
@@ -2874,10 +2880,10 @@ interface Uint32Array {
28742880
/**
28752881
* Returns an list of values in the array
28762882
*/
2877-
values(): Iterator<number>;
2883+
values(): IterableIterator<number>;
28782884

28792885
[index: number]: number;
2880-
[Symbol.iterator] (): Iterator<number>;
2886+
[Symbol.iterator](): IterableIterator<number>;
28812887
}
28822888

28832889
interface Uint32ArrayConstructor {
@@ -2947,7 +2953,7 @@ interface Float32Array {
29472953
/**
29482954
* Returns an array of key, value pairs for every entry in the array
29492955
*/
2950-
entries(): Iterator<[number, number]>;
2956+
entries(): IterableIterator<[number, number]>;
29512957

29522958
/**
29532959
* Determines whether all the members of an array satisfy the specified test.
@@ -3027,7 +3033,7 @@ interface Float32Array {
30273033
/**
30283034
* Returns an list of keys in the array
30293035
*/
3030-
keys(): Iterator<number>;
3036+
keys(): IterableIterator<number>;
30313037

30323038
/**
30333039
* Returns the index of the last occurrence of a value in an array.
@@ -3164,10 +3170,10 @@ interface Float32Array {
31643170
/**
31653171
* Returns an list of values in the array
31663172
*/
3167-
values(): Iterator<number>;
3173+
values(): IterableIterator<number>;
31683174

31693175
[index: number]: number;
3170-
[Symbol.iterator] (): Iterator<number>;
3176+
[Symbol.iterator](): IterableIterator<number>;
31713177
}
31723178

31733179
interface Float32ArrayConstructor {
@@ -3237,7 +3243,7 @@ interface Float64Array {
32373243
/**
32383244
* Returns an array of key, value pairs for every entry in the array
32393245
*/
3240-
entries(): Iterator<[number, number]>;
3246+
entries(): IterableIterator<[number, number]>;
32413247

32423248
/**
32433249
* Determines whether all the members of an array satisfy the specified test.
@@ -3317,7 +3323,7 @@ interface Float64Array {
33173323
/**
33183324
* Returns an list of keys in the array
33193325
*/
3320-
keys(): Iterator<number>;
3326+
keys(): IterableIterator<number>;
33213327

33223328
/**
33233329
* Returns the index of the last occurrence of a value in an array.
@@ -3454,10 +3460,10 @@ interface Float64Array {
34543460
/**
34553461
* Returns an list of values in the array
34563462
*/
3457-
values(): Iterator<number>;
3463+
values(): IterableIterator<number>;
34583464

34593465
[index: number]: number;
3460-
[Symbol.iterator] (): Iterator<number>;
3466+
[Symbol.iterator](): IterableIterator<number>;
34613467
}
34623468

34633469
interface Float64ArrayConstructor {
@@ -3516,7 +3522,7 @@ declare var Reflect: {
35163522
construct(target: Function, argumentsList: ArrayLike<any>): any;
35173523
defineProperty(target: any, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean;
35183524
deleteProperty(target: any, propertyKey: PropertyKey): boolean;
3519-
enumerate(target: any): Iterator<any>;
3525+
enumerate(target: any): IterableIterator<any>;
35203526
get(target: any, propertyKey: PropertyKey, receiver?: any): any;
35213527
getOwnPropertyDescriptor(target: any, propertyKey: PropertyKey): PropertyDescriptor;
35223528
getPrototypeOf(target: any): any;

0 commit comments

Comments
 (0)