File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -84,7 +84,11 @@ function lazyMessageChannel() {
8484}
8585
8686const clearTimeoutRegistry = new SafeFinalizationRegistry ( clearTimeout ) ;
87- const finalizers = new SafeFinalizationRegistry ( ( signal ) => {
87+ const finalizers = new SafeFinalizationRegistry ( ( signalWeakRef ) => {
88+ const signal = signalWeakRef . deref ( ) ;
89+ if ( ! signal ) {
90+ return ;
91+ }
8892 signal [ kDependantSignals ] . forEach ( ( ref ) => {
8993 if ( ! ref . deref ( ) ) {
9094 signal [ kDependantSignals ] . delete ( ref ) ;
@@ -244,11 +248,12 @@ class AbortSignal extends EventTarget {
244248 resultSignal [ kSourceSignals ] = new SafeSet ( ) ;
245249 for ( let i = 0 ; i < signalsArray . length ; i ++ ) {
246250 const signal = signalsArray [ i ] ;
247- finalizers . register ( resultSignal , signal ) ;
248251 if ( signal . aborted ) {
249252 abortSignal ( resultSignal , signal . reason ) ;
250253 return resultSignal ;
251254 }
255+ const signalWeakRef = new SafeWeakRef ( signal ) ;
256+ finalizers . register ( resultSignal , signalWeakRef ) ;
252257 signal [ kDependantSignals ] ??= new SafeSet ( ) ;
253258 if ( ! signal [ kComposite ] ) {
254259 resultSignal [ kSourceSignals ] . add ( new SafeWeakRef ( signal ) ) ;
You can’t perform that action at this time.
0 commit comments