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() {
84
84
}
85
85
86
86
const 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
+ }
88
92
signal [ kDependantSignals ] . forEach ( ( ref ) => {
89
93
if ( ! ref . deref ( ) ) {
90
94
signal [ kDependantSignals ] . delete ( ref ) ;
@@ -244,11 +248,12 @@ class AbortSignal extends EventTarget {
244
248
resultSignal [ kSourceSignals ] = new SafeSet ( ) ;
245
249
for ( let i = 0 ; i < signalsArray . length ; i ++ ) {
246
250
const signal = signalsArray [ i ] ;
247
- finalizers . register ( resultSignal , signal ) ;
248
251
if ( signal . aborted ) {
249
252
abortSignal ( resultSignal , signal . reason ) ;
250
253
return resultSignal ;
251
254
}
255
+ const signalWeakRef = new SafeWeakRef ( signal ) ;
256
+ finalizers . register ( resultSignal , signalWeakRef ) ;
252
257
signal [ kDependantSignals ] ??= new SafeSet ( ) ;
253
258
if ( ! signal [ kComposite ] ) {
254
259
resultSignal [ kSourceSignals ] . add ( new SafeWeakRef ( signal ) ) ;
You can’t perform that action at this time.
0 commit comments