Add for-await-of, always use Symbol for iterables.

This commit is contained in:
Ron Buckton
2016-11-16 14:22:42 -08:00
parent d6a5e39c3a
commit 28d23ce8de
20 changed files with 223 additions and 169 deletions

View File

@@ -8,6 +8,17 @@ interface SymbolConstructor {
readonly iterator: symbol;
}
interface IteratorResult<T> {
done: boolean;
value: T;
}
interface Iterator<T> {
next(value?: any): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}
interface Iterable<T> {
[Symbol.iterator](): Iterator<T>;
}

View File

@@ -1,4 +1,5 @@
/// <reference path="lib.es2015.symbol.d.ts" />
/// <reference path="lib.es2015.iterable.d.ts" />
interface SymbolConstructor {
/**

1
src/lib/es2017.d.ts vendored
View File

@@ -2,3 +2,4 @@
/// <reference path="lib.es2017.object.d.ts" />
/// <reference path="lib.es2017.sharedmemory.d.ts" />
/// <reference path="lib.es2017.string.d.ts" />
/// <reference path="lib.es2017.asynciterable.d.ts" />

33
src/lib/es5.d.ts vendored
View File

@@ -1338,39 +1338,6 @@ interface PromiseLike<T> {
onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>;
}
interface IteratorResult<T> {
done: boolean;
value: T;
}
interface Iterator<T> {
next(value?: any): IteratorResult<T>;
return?(value?: any): IteratorResult<T>;
throw?(e?: any): IteratorResult<T>;
}
interface PseudoIterable<T> {
__iterator__(): Iterator<T>;
}
interface PseudoIterableIterator<T> extends Iterator<T> {
__iterator__(): PseudoIterableIterator<T>;
}
interface PseudoAsyncIterator<T> {
next(value?: any): PromiseLike<IteratorResult<T>>;
return?(value?: any): PromiseLike<IteratorResult<T>>;
throw?(e?: any): PromiseLike<IteratorResult<T>>;
}
interface PseudoAsyncIterable<T> {
__asyncIterator__(): PseudoAsyncIterator<T>;
}
interface PseudoAsyncIterableIterator<T> extends PseudoAsyncIterator<T> {
__asyncIterator__(): PseudoAsyncIterableIterator<T>;
}
interface ArrayLike<T> {
readonly length: number;
readonly [n: number]: T;

2
src/lib/esnext.d.ts vendored
View File

@@ -1,2 +1,2 @@
/// <reference path="lib.es2017.d.ts" />
/// <reference path="lib.esnext.asynciterable.d.ts" />
/// <reference path="lib.es2017.asynciterable.d.ts" />