@@ -642,11 +642,7 @@ async function once(emitter, name, options = {}) {
642642 const errorListener = ( err ) => {
643643 emitter . removeListener ( name , resolver ) ;
644644 if ( signal != null ) {
645- eventTargetAgnosticRemoveListener (
646- signal ,
647- 'abort' ,
648- abortListener ,
649- { once : true } ) ;
645+ eventTargetAgnosticRemoveListener ( signal , 'abort' , abortListener ) ;
650646 }
651647 reject ( err ) ;
652648 } ;
@@ -655,38 +651,22 @@ async function once(emitter, name, options = {}) {
655651 emitter . removeListener ( 'error' , errorListener ) ;
656652 }
657653 if ( signal != null ) {
658- eventTargetAgnosticRemoveListener (
659- signal ,
660- 'abort' ,
661- abortListener ,
662- { once : true } ) ;
654+ eventTargetAgnosticRemoveListener ( signal , 'abort' , abortListener ) ;
663655 }
664656 resolve ( args ) ;
665657 } ;
666658 eventTargetAgnosticAddListener ( emitter , name , resolver , { once : true } ) ;
667- if ( name !== 'error' ) {
668- addErrorHandlerIfEventEmitter ( emitter , errorListener , { once : true } ) ;
659+ if ( name !== 'error' && typeof emitter . once === 'function' ) {
660+ emitter . once ( 'error' , errorListener ) ;
669661 }
670662 function abortListener ( ) {
671- if ( typeof emitter . removeListener === 'function' ) {
672- emitter . removeListener ( name , resolver ) ;
673- emitter . removeListener ( 'error' , errorListener ) ;
674- } else {
675- eventTargetAgnosticRemoveListener (
676- emitter ,
677- name ,
678- resolver ,
679- { once : true } ) ;
680- eventTargetAgnosticRemoveListener (
681- emitter ,
682- 'error' ,
683- errorListener ,
684- { once : true } ) ;
685- }
663+ eventTargetAgnosticRemoveListener ( emitter , name , resolver ) ;
664+ eventTargetAgnosticRemoveListener ( emitter , 'error' , resolver ) ;
686665 reject ( lazyDOMException ( 'The operation was aborted' , 'AbortError' ) ) ;
687666 }
688667 if ( signal != null ) {
689- signal . addEventListener ( 'abort' , abortListener , { once : true } ) ;
668+ eventTargetAgnosticAddListener (
669+ signal , 'abort' , abortListener , { once : true } ) ;
690670 }
691671 } ) ;
692672}
@@ -698,12 +678,6 @@ function createIterResult(value, done) {
698678 return { value, done } ;
699679}
700680
701- function addErrorHandlerIfEventEmitter ( emitter , handler , flags ) {
702- if ( typeof emitter . on === 'function' ) {
703- eventTargetAgnosticAddListener ( emitter , 'error' , handler , flags ) ;
704- }
705- }
706-
707681function eventTargetAgnosticRemoveListener ( emitter , name , listener , flags ) {
708682 if ( typeof emitter . removeListener === 'function' ) {
709683 emitter . removeListener ( name , listener ) ;
@@ -808,8 +782,8 @@ function on(emitter, event, options) {
808782 } , AsyncIteratorPrototype ) ;
809783
810784 eventTargetAgnosticAddListener ( emitter , event , eventHandler ) ;
811- if ( event !== 'error' ) {
812- addErrorHandlerIfEventEmitter ( emitter , errorHandler ) ;
785+ if ( event !== 'error' && typeof emitter . on === 'function' ) {
786+ emitter . on ( 'error' , errorHandler ) ;
813787 }
814788
815789 if ( signal ) {
0 commit comments