Skip to content

Commit 7c95cfc

Browse files
benjamingrtargos
authored andcommitted
events: define abort on prototype
PR-URL: #35931 Backport-PR-URL: #38386 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
1 parent bdad1bc commit 7c95cfc

3 files changed

Lines changed: 10 additions & 14 deletions

File tree

‎lib/internal/abort_controller.js‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ Object.defineProperties(AbortSignal.prototype, {
4747
aborted: {enumerable: true}
4848
});
4949

50+
defineEventHandler(AbortSignal.prototype,'abort');
51+
5052
functionabortSignal(signal){
5153
if(signal[kAborted])return;
5254
signal[kAborted]=true;
@@ -64,7 +66,6 @@ class AbortController {
6466
constructor(){
6567
this[kSignal]=newAbortSignal();
6668
emitExperimentalWarning('AbortController');
67-
defineEventHandler(this[kSignal],'abort');
6869
}
6970

7071
getsignal(){returnthis[kSignal];}

‎lib/internal/event_target.js‎

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ const {
44
ArrayFrom,
55
Boolean,
66
Error,
7-
Map,
87
NumberIsInteger,
98
Object,
109
ObjectDefineProperty,
1110
ObjectGetOwnPropertyDescriptor,
11+
SafeMap,
1212
String,
1313
Symbol,
1414
SymbolFor,
1515
SymbolToStringTag,
16-
SafeWeakMap,
1716
SafeWeakSet,
1817
}=primordials;
1918

@@ -35,6 +34,7 @@ const kIsEventTarget = SymbolFor('nodejs.event_target');
3534
constkEvents=Symbol('kEvents');
3635
constkStop=Symbol('kStop');
3736
constkTarget=Symbol('kTarget');
37+
constkHandlers=Symbol('khandlers');
3838

3939
constkHybridDispatch=Symbol.for('nodejs.internal.kHybridDispatch');
4040
constkCreateEvent=Symbol('kCreateEvent');
@@ -218,7 +218,7 @@ class Listener {
218218
}
219219

220220
functioninitEventTarget(self){
221-
self[kEvents]=newMap();
221+
self[kEvents]=newSafeMap();
222222
}
223223

224224
classEventTarget{
@@ -577,27 +577,24 @@ function emitUnhandledRejectionOrErr(that, err, event) {
577577
process.emit('error',err,event);
578578
}
579579

580-
// A map of emitter -> map of name -> handler
581-
consteventHandlerValueMap=newSafeWeakMap();
582-
583580
functiondefineEventHandler(emitter,name){
584581
// 8.1.5.1 Event handlers - basically `on[eventName]` attributes
585582
ObjectDefineProperty(emitter,`on${name}`,{
586583
get(){
587-
returneventHandlerValueMap.get(this)?.get(name);
584+
returnthis[kHandlers]?.get(name);
588585
},
589586
set(value){
590-
constoldValue=eventHandlerValueMap.get(this)?.get(name);
587+
constoldValue=this[kHandlers]?.get(name);
591588
if(oldValue){
592589
this.removeEventListener(name,oldValue);
593590
}
594591
if(typeofvalue==='function'){
595592
this.addEventListener(name,value);
596593
}
597-
if(!eventHandlerValueMap.has(this)){
598-
eventHandlerValueMap.set(this,newMap());
594+
if(!this[kHandlers]){
595+
this[kHandlers]=newSafeMap();
599596
}
600-
eventHandlerValueMap.get(this).set(name,value);
597+
this[kHandlers].set(name,value);
601598
},
602599
configurable: true,
603600
enumerable: true

‎lib/internal/worker/io.js‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ ObjectDefineProperty(
9999
// This is called from inside the `MessagePort` constructor.
100100
functiononinit(){
101101
initNodeEventTarget(this);
102-
defineEventHandler(this,'message');
103-
defineEventHandler(this,'messageerror');
104102
setupPortReferencing(this,this,'message');
105103
}
106104

0 commit comments

Comments
 (0)