@@ -4,16 +4,15 @@ const {
4
4
ArrayFrom,
5
5
Boolean,
6
6
Error,
7
- Map,
8
7
NumberIsInteger,
9
8
Object,
10
9
ObjectDefineProperty,
11
10
ObjectGetOwnPropertyDescriptor,
11
+ SafeMap,
12
12
String,
13
13
Symbol,
14
14
SymbolFor,
15
15
SymbolToStringTag,
16
- SafeWeakMap,
17
16
SafeWeakSet,
18
17
} = primordials ;
19
18
@@ -35,6 +34,7 @@ const kIsEventTarget = SymbolFor('nodejs.event_target');
35
34
const kEvents = Symbol ( 'kEvents' ) ;
36
35
const kStop = Symbol ( 'kStop' ) ;
37
36
const kTarget = Symbol ( 'kTarget' ) ;
37
+ const kHandlers = Symbol ( 'khandlers' ) ;
38
38
39
39
const kHybridDispatch = Symbol . for ( 'nodejs.internal.kHybridDispatch' ) ;
40
40
const kCreateEvent = Symbol ( 'kCreateEvent' ) ;
@@ -218,7 +218,7 @@ class Listener {
218
218
}
219
219
220
220
function initEventTarget ( self ) {
221
- self [ kEvents ] = new Map ( ) ;
221
+ self [ kEvents ] = new SafeMap ( ) ;
222
222
}
223
223
224
224
class EventTarget {
@@ -577,27 +577,24 @@ function emitUnhandledRejectionOrErr(that, err, event) {
577
577
process . emit ( 'error' , err , event ) ;
578
578
}
579
579
580
- // A map of emitter -> map of name -> handler
581
- const eventHandlerValueMap = new SafeWeakMap ( ) ;
582
-
583
580
function defineEventHandler ( emitter , name ) {
584
581
// 8.1.5.1 Event handlers - basically `on[eventName]` attributes
585
582
ObjectDefineProperty ( emitter , `on${ name } ` , {
586
583
get ( ) {
587
- return eventHandlerValueMap . get ( this ) ?. get ( name ) ;
584
+ return this [ kHandlers ] ?. get ( name ) ;
588
585
} ,
589
586
set ( value ) {
590
- const oldValue = eventHandlerValueMap . get ( this ) ?. get ( name ) ;
587
+ const oldValue = this [ kHandlers ] ?. get ( name ) ;
591
588
if ( oldValue ) {
592
589
this . removeEventListener ( name , oldValue ) ;
593
590
}
594
591
if ( typeof value === 'function' ) {
595
592
this . addEventListener ( name , value ) ;
596
593
}
597
- if ( ! eventHandlerValueMap . has ( this ) ) {
598
- eventHandlerValueMap . set ( this , new Map ( ) ) ;
594
+ if ( ! this [ kHandlers ] ) {
595
+ this [ kHandlers ] = new SafeMap ( ) ;
599
596
}
600
- eventHandlerValueMap . get ( this ) . set ( name , value ) ;
597
+ this [ kHandlers ] . set ( name , value ) ;
601
598
} ,
602
599
configurable : true ,
603
600
enumerable : true
0 commit comments