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