@@ -547,20 +547,22 @@ type IteratorResult<Yield,Return> =
547547 | { done : true , value ? : Return }
548548 | { done : false , value : Yield } ;
549549
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-
556550interface $Iterable< + Yield , + Return , - Next > {
557551 @@iterator ( ) : $Iterator < Yield , Return , Next > ;
558552}
559553type Iterable< + T > = $Iterable< T , void , void > ;
560554
561- interface Generator < + Yield , + Return , - Next > {
555+ interface $Iterator < + Yield , + Return , - Next > extends $Iterable < Yield , Return , Next > {
562556 @@iterator ( ) : $Iterator < Yield , Return , Next > ;
563557 next ( value ? : Next ) : IteratorResult < Yield , Return > ;
558+ + return ?: < R > (value: R) => IteratorResult < Yield , R | Return > ;
559+ + throw ?: ( error ? : any ) => IteratorResult < Yield , Return > ;
560+ }
561+ type Iterator< + T > = $Iterator< T , void , void > ;
562+
563+ interface Generator< + Yield , + Return , - Next > extends $Iterator< Yield , Return , Next > {
564+ @@iterator ( ) : Generator < Yield , Return , Next > ;
565+ next ( value ? : Next ) : IteratorResult < Yield , Return > ;
564566 return < R > (value: R): IteratorResult< Yield , R | Return > ;
565567 throw(error?: any): IteratorResult< Yield , Return > ;
566568}
@@ -569,25 +571,27 @@ declare function $iterate<T>(p: Iterable<T>): T;
569571
570572/* Async Iterable/Iterator/Generator */
571573
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-
578574interface $AsyncIterable< + Yield , + Return , - Next > {
579575 @@asyncIterator ( ) : $AsyncIterator < Yield , Return , Next > ;
580576}
581577type AsyncIterable< + T > = $AsyncIterable< T , void , void > ;
582578
583- interface AsyncGenerator < + Yield , + Return , - Next > {
579+ interface $AsyncIterator < + Yield , + Return , - Next > extends $AsyncIterable < Yield , Return , Next > {
584580 @@asyncIterator ( ) : $AsyncIterator < Yield , Return , Next > ;
585581 next ( value ? : Next ) : Promise < IteratorResult < Yield , Return >> ;
582+ + return ?: < R > (value: R) => Promise < IteratorResult < Yield , R | Return >> ;
583+ + throw ?: ( error ? : any ) => Promise < IteratorResult < Yield , Return >> ;
584+ }
585+ type AsyncIterator< + T > = $AsyncIterator< T , void , void > ;
586+
587+ interface AsyncGenerator< + Yield , + Return , - Next > extends $AsyncIterator {
588+ @@asyncIterator ( ) : AsyncGenerator < Yield , Return , Next > ;
589+ next ( value ? : Next ) : Promise < IteratorResult < Yield , Return >> ;
586590 return < R > (value: R): Promise< IteratorResult < Yield , R | Return > > ;
587591 throw ( error ? : any ) : Promise < IteratorResult < Yield , Return >> ;
588592}
589593
590- declare function $asyncIterator < T > (p: AsyncIterable< T > ): T;
594+ declare function $asyncIterate < T > (p: AsyncIterable< T > ): T;
591595
592596/* Maps and Sets */
593597
0 commit comments