44 FunctionPrototypeBind,
55 Promise,
66 PromiseReject,
7+ PromiseWithResolvers,
78 ReflectConstruct,
89 SafePromisePrototypeFinally,
910 Symbol,
@@ -75,20 +76,19 @@ function setTimeout(after, value, options = kEmptyObject) {
7576 }
7677
7778 let oncancel ;
78- const ret = new Promise ( ( resolve , reject ) => {
79- const timeout = new Timeout ( resolve , after , [ value ] , false , ref ) ;
80- insert ( timeout , timeout . _idleTimeout ) ;
81- if ( signal ) {
82- oncancel = FunctionPrototypeBind ( cancelListenerHandler ,
83- timeout , clearTimeout , reject , signal ) ;
84- kResistStopPropagation ??= require ( 'internal/event_target' ) . kResistStopPropagation ;
85- signal . addEventListener ( 'abort' , oncancel , { __proto__ : null , [ kResistStopPropagation ] : true } ) ;
86- }
87- } ) ;
79+ const { promise, resolve, reject } = PromiseWithResolvers ( ) ;
80+ const timeout = new Timeout ( resolve , after , [ value ] , false , ref ) ;
81+ insert ( timeout , timeout . _idleTimeout ) ;
82+ if ( signal ) {
83+ oncancel = FunctionPrototypeBind ( cancelListenerHandler ,
84+ timeout , clearTimeout , reject , signal ) ;
85+ kResistStopPropagation ??= require ( 'internal/event_target' ) . kResistStopPropagation ;
86+ signal . addEventListener ( 'abort' , oncancel , { __proto__ : null , [ kResistStopPropagation ] : true } ) ;
87+ }
8888 return oncancel !== undefined ?
8989 SafePromisePrototypeFinally (
90- ret ,
91- ( ) => signal . removeEventListener ( 'abort' , oncancel ) ) : ret ;
90+ promise ,
91+ ( ) => signal . removeEventListener ( 'abort' , oncancel ) ) : promise ;
9292}
9393
9494function setImmediate ( value , options = kEmptyObject ) {
@@ -113,21 +113,20 @@ function setImmediate(value, options = kEmptyObject) {
113113 }
114114
115115 let oncancel ;
116- const ret = new Promise ( ( resolve , reject ) => {
117- const immediate = new Immediate ( resolve , [ value ] ) ;
118- if ( ! ref ) immediate . unref ( ) ;
119- if ( signal ) {
120- oncancel = FunctionPrototypeBind ( cancelListenerHandler ,
121- immediate , clearImmediate , reject ,
122- signal ) ;
123- kResistStopPropagation ??= require ( 'internal/event_target' ) . kResistStopPropagation ;
124- signal . addEventListener ( 'abort' , oncancel , { __proto__ : null , [ kResistStopPropagation ] : true } ) ;
125- }
126- } ) ;
116+ const { promise, resolve, reject } = PromiseWithResolvers ( ) ;
117+ const immediate = new Immediate ( resolve , [ value ] ) ;
118+ if ( ! ref ) immediate . unref ( ) ;
119+ if ( signal ) {
120+ oncancel = FunctionPrototypeBind ( cancelListenerHandler ,
121+ immediate , clearImmediate , reject ,
122+ signal ) ;
123+ kResistStopPropagation ??= require ( 'internal/event_target' ) . kResistStopPropagation ;
124+ signal . addEventListener ( 'abort' , oncancel , { __proto__ : null , [ kResistStopPropagation ] : true } ) ;
125+ }
127126 return oncancel !== undefined ?
128127 SafePromisePrototypeFinally (
129- ret ,
130- ( ) => signal . removeEventListener ( 'abort' , oncancel ) ) : ret ;
128+ promise ,
129+ ( ) => signal . removeEventListener ( 'abort' , oncancel ) ) : promise ;
131130}
132131
133132async function * setInterval ( after , value , options = kEmptyObject ) {
0 commit comments