Skip to content

Commit ff59fcd

Browse files
benjamingrdanielleadams
authored andcommitted
events: define abort on prototype
PR-URL: #35931 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 ab0eb4f commit ff59fcd

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
@@ -48,6 +48,8 @@ ObjectDefineProperties(AbortSignal.prototype, {
4848
aborted: {enumerable: true}
4949
});
5050

51+
defineEventHandler(AbortSignal.prototype,'abort');
52+
5153
functionabortSignal(signal){
5254
if(signal[kAborted])return;
5355
signal[kAborted]=true;
@@ -65,7 +67,6 @@ class AbortController {
6567
constructor(){
6668
this[kSignal]=newAbortSignal();
6769
emitExperimentalWarning('AbortController');
68-
defineEventHandler(this[kSignal],'abort');
6970
}
7071

7172
getsignal(){returnthis[kSignal];}

‎lib/internal/event_target.js‎

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

@@ -36,6 +35,7 @@ const kIsEventTarget = SymbolFor('nodejs.event_target');
3635
constkEvents=Symbol('kEvents');
3736
constkStop=Symbol('kStop');
3837
constkTarget=Symbol('kTarget');
38+
constkHandlers=Symbol('khandlers');
3939

4040
constkHybridDispatch=SymbolFor('nodejs.internal.kHybridDispatch');
4141
constkCreateEvent=Symbol('kCreateEvent');
@@ -219,7 +219,7 @@ class Listener {
219219
}
220220

221221
functioninitEventTarget(self){
222-
self[kEvents]=newMap();
222+
self[kEvents]=newSafeMap();
223223
}
224224

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

581-
// A map of emitter -> map of name -> handler
582-
consteventHandlerValueMap=newSafeWeakMap();
583-
584581
functiondefineEventHandler(emitter,name){
585582
// 8.1.5.1 Event handlers - basically `on[eventName]` attributes
586583
ObjectDefineProperty(emitter,`on${name}`,{
587584
get(){
588-
returneventHandlerValueMap.get(this)?.get(name);
585+
returnthis[kHandlers]?.get(name);
589586
},
590587
set(value){
591-
constoldValue=eventHandlerValueMap.get(this)?.get(name);
588+
constoldValue=this[kHandlers]?.get(name);
592589
if(oldValue){
593590
this.removeEventListener(name,oldValue);
594591
}
595592
if(typeofvalue==='function'){
596593
this.addEventListener(name,value);
597594
}
598-
if(!eventHandlerValueMap.has(this)){
599-
eventHandlerValueMap.set(this,newMap());
595+
if(!this[kHandlers]){
596+
this[kHandlers]=newSafeMap();
600597
}
601-
eventHandlerValueMap.get(this).set(name,value);
598+
this[kHandlers].set(name,value);
602599
},
603600
configurable: true,
604601
enumerable: true

‎lib/internal/worker/io.js‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,6 @@ ObjectDefineProperty(
146146
// This is called from inside the `MessagePort` constructor.
147147
functiononinit(){
148148
initNodeEventTarget(this);
149-
defineEventHandler(this,'message');
150-
defineEventHandler(this,'messageerror');
151149
setupPortReferencing(this,this,'message');
152150
}
153151

0 commit comments

Comments
 (0)