@@ -61,8 +61,9 @@ declare class Object {
6161
6262// Well known Symbols.
6363declare class $SymbolHasInstance mixins Symbol { }
64- declare class $SymboIsConcatSpreadable mixins Symbol { }
64+ declare class $SymbolIsConcatSpreadable mixins Symbol { }
6565declare class $SymbolIterator mixins Symbol { }
66+ declare class $SymbolAsyncIterator mixins Symbol { }
6667declare class $SymbolMatch mixins Symbol { }
6768declare class $SymbolReplace mixins Symbol { }
6869declare class $SymbolSearch mixins Symbol { }
@@ -76,8 +77,9 @@ declare class Symbol {
7677 static ( value ?:any ) : Symbol ;
7778 static for ( key : string ) : Symbol ;
7879 static hasInstance : $SymbolHasInstance ;
79- static isConcatSpreadable : $SymboIsConcatSpreadable ;
80+ static isConcatSpreadable : $SymbolIsConcatSpreadable ;
8081 static iterator : string ; // polyfill '@@iterator'
82+ static asyncIterator : $SymbolAsyncIterator ;
8183 static keyFor ( sym : Symbol ) : ?string ;
8284 static length : 0 ;
8385 static match : $SymbolMatch ;
@@ -547,20 +549,22 @@ type IteratorResult<Yield,Return> =
547549 | { done : true , value ? : Return }
548550 | { done : false , value : Yield } ;
549551
550- interface $Iterator< + Yield , + Return , - Next > {
551- @@iterator ( ) : $Iterator < Yield , Return , Next > ;
552- next ( value ? : Next ) : IteratorResult < Yield , Return > ;
553- }
554- type Iterator< + T > = $Iterator< T , void , void > ;
555-
556552interface $Iterable< + Yield , + Return , - Next > {
557553 @@iterator ( ) : $Iterator < Yield , Return , Next > ;
558554}
559555type Iterable< + T > = $Iterable< T , void , void > ;
560556
561- interface Generator < + Yield , + Return , - Next > {
557+ interface $Iterator < + Yield , + Return , - Next > extends $Iterable < Yield , Return , Next > {
562558 @@iterator ( ) : $Iterator < Yield , Return , Next > ;
563559 next ( value ? : Next ) : IteratorResult < Yield , Return > ;
560+ + return ?: < R > (value: R) => IteratorResult < Yield , R | Return > ;
561+ + throw ?: ( error ? : any ) => IteratorResult < Yield , Return > ;
562+ }
563+ type Iterator< + T > = $Iterator< T , void , void > ;
564+
565+ interface Generator< + Yield , + Return , - Next > extends $Iterator< Yield , Return , Next > {
566+ @@iterator ( ) : Generator < Yield , Return , Next > ;
567+ next ( value ? : Next ) : IteratorResult < Yield , Return > ;
564568 return < R > (value: R): IteratorResult< Yield , R | Return > ;
565569 throw(error?: any): IteratorResult< Yield , Return > ;
566570}
@@ -569,25 +573,27 @@ declare function $iterate<T>(p: Iterable<T>): T;
569573
570574/* Async Iterable/Iterator/Generator */
571575
572- interface $AsyncIterator< + Yield , + Return , - Next > {
573- @@asyncIterator ( ) : $AsyncIterator < Yield , Return , Next > ;
574- next ( value ? : Next ) : Promise < IteratorResult < Yield , Return >> ;
575- }
576- type AsyncIterator< + T > = $AsyncIterator< T , void , void > ;
577-
578576interface $AsyncIterable< + Yield , + Return , - Next > {
579577 @@asyncIterator ( ) : $AsyncIterator < Yield , Return , Next > ;
580578}
581579type AsyncIterable< + T > = $AsyncIterable< T , void , void > ;
582580
583- interface AsyncGenerator < + Yield , + Return , - Next > {
581+ interface $AsyncIterator < + Yield , + Return , - Next > extends $AsyncIterable < Yield , Return , Next > {
584582 @@asyncIterator ( ) : $AsyncIterator < Yield , Return , Next > ;
585583 next ( value ? : Next ) : Promise < IteratorResult < Yield , Return >> ;
584+ + return ?: < R > (value: R) => Promise < IteratorResult < Yield , R | Return >> ;
585+ + throw ?: ( error ? : any ) => Promise < IteratorResult < Yield , Return >> ;
586+ }
587+ type AsyncIterator< + T > = $AsyncIterator< T , void , void > ;
588+
589+ interface AsyncGenerator< + Yield , + Return , - Next > extends $AsyncIterator< Yield , Return , Next > {
590+ @@asyncIterator ( ) : AsyncGenerator < Yield , Return , Next > ;
591+ next ( value ? : Next ) : Promise < IteratorResult < Yield , Return >> ;
586592 return < R > (value: R): Promise< IteratorResult < Yield , R | Return > > ;
587593 throw ( error ? : any ) : Promise < IteratorResult < Yield , Return >> ;
588594}
589595
590- declare function $asyncIterator < T > (p: AsyncIterable< T > ): T;
596+ declare function $asyncIterate < T > (p: AsyncIterable< T > ): T;
591597
592598/* Maps and Sets */
593599
0 commit comments