File tree 2 files changed +11
-10
lines changed
2 files changed +11
-10
lines changed Original file line number Diff line number Diff line change 9
9
} = primordials ;
10
10
11
11
const {
12
+ defineEventHandler,
12
13
EventTarget,
13
14
Event,
14
15
kTrustEvent
@@ -52,21 +53,22 @@ function abortSignal(signal) {
52
53
const event = new Event ( 'abort' , {
53
54
[ kTrustEvent ] : true
54
55
} ) ;
55
- if ( typeof signal . onabort === 'function' ) {
56
- signal . onabort ( event ) ;
57
- }
58
56
signal . dispatchEvent ( event ) ;
59
57
}
60
58
59
+ // TODO(joyeecheung): V8 snapshot does not support instance member
60
+ // initializers for now:
61
+ // https://bugs.chromium.org/p/v8/issues/detail?id=10704
62
+ const kSignal = Symbol ( 'signal' ) ;
61
63
class AbortController {
62
- #signal = new AbortSignal ( ) ;
63
-
64
64
constructor ( ) {
65
+ this [ kSignal ] = new AbortSignal ( ) ;
65
66
emitExperimentalWarning ( 'AbortController' ) ;
67
+ defineEventHandler ( this [ kSignal ] , 'abort' ) ;
66
68
}
67
69
68
- get signal ( ) { return this . #signal ; }
69
- abort ( ) { abortSignal ( this . #signal ) ; }
70
+ get signal ( ) { return this [ kSignal ] ; }
71
+ abort ( ) { abortSignal ( this [ kSignal ] ) ; }
70
72
71
73
[ customInspectSymbol ] ( depth , options ) {
72
74
return customInspect ( this , {
Original file line number Diff line number Diff line change @@ -333,14 +333,13 @@ class EventTarget {
333
333
}
334
334
return event ;
335
335
} ;
336
+ if ( event !== undefined )
337
+ event [ kTarget ] = this ;
336
338
337
339
const root = this [ kEvents ] . get ( type ) ;
338
340
if ( root === undefined || root . next === undefined )
339
341
return true ;
340
342
341
- if ( event !== undefined )
342
- event [ kTarget ] = this ;
343
-
344
343
let handler = root . next ;
345
344
let next ;
346
345
You can’t perform that action at this time.
0 commit comments