Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ff59fcd

Browse filesBrowse 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
Copy full SHA for ff59fcd

File tree

Expand file treeCollapse file tree

3 files changed

+10
-14
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+10
-14
lines changed
Open diff view settings
Collapse file

‎lib/internal/abort_controller.js‎

Copy file name to clipboardExpand all lines: lib/internal/abort_controller.js
+2-1Lines 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
function abortSignal(signal) {
5254
if (signal[kAborted]) return;
5355
signal[kAborted] = true;
@@ -65,7 +67,6 @@ class AbortController {
6567
constructor() {
6668
this[kSignal] = new AbortSignal();
6769
emitExperimentalWarning('AbortController');
68-
defineEventHandler(this[kSignal], 'abort');
6970
}
7071

7172
get signal() { return this[kSignal]; }
Collapse file

‎lib/internal/event_target.js‎

Copy file name to clipboardExpand all lines: lib/internal/event_target.js
+8-11Lines 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
const kEvents = Symbol('kEvents');
3736
const kStop = Symbol('kStop');
3837
const kTarget = Symbol('kTarget');
38+
const kHandlers = Symbol('khandlers');
3939

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

221221
function initEventTarget(self) {
222-
self[kEvents] = new Map();
222+
self[kEvents] = new SafeMap();
223223
}
224224

225225
class EventTarget {
@@ -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-
const eventHandlerValueMap = new SafeWeakMap();
583-
584581
function defineEventHandler(emitter, name) {
585582
// 8.1.5.1 Event handlers - basically `on[eventName]` attributes
586583
ObjectDefineProperty(emitter, `on${name}`, {
587584
get() {
588-
return eventHandlerValueMap.get(this)?.get(name);
585+
return this[kHandlers]?.get(name);
589586
},
590587
set(value) {
591-
const oldValue = eventHandlerValueMap.get(this)?.get(name);
588+
const oldValue = this[kHandlers]?.get(name);
592589
if (oldValue) {
593590
this.removeEventListener(name, oldValue);
594591
}
595592
if (typeof value === 'function') {
596593
this.addEventListener(name, value);
597594
}
598-
if (!eventHandlerValueMap.has(this)) {
599-
eventHandlerValueMap.set(this, new Map());
595+
if (!this[kHandlers]) {
596+
this[kHandlers] = new SafeMap();
600597
}
601-
eventHandlerValueMap.get(this).set(name, value);
598+
this[kHandlers].set(name, value);
602599
},
603600
configurable: true,
604601
enumerable: true
Collapse file

‎lib/internal/worker/io.js‎

Copy file name to clipboardExpand all lines: lib/internal/worker/io.js
-2Lines 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
function oninit() {
148148
initNodeEventTarget(this);
149-
defineEventHandler(this, 'message');
150-
defineEventHandler(this, 'messageerror');
151149
setupPortReferencing(this, this, 'message');
152150
}
153151

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.