Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
events: improve creation time of EventTarget
  • Loading branch information
rluvaton committed Apr 7, 2024
commit 245433110b68415e3ea9c2de3c719df86b10b803
16 changes: 8 additions & 8 deletions lib/internal/event_target.js
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,7 @@ class Listener {
}
}

// Updating this function will require updating the EventTarget as well
function initEventTarget(self) {
self[kEvents] = new SafeMap();
self[kMaxEventTargetListeners] = EventEmitter.defaultMaxListeners;
Expand All @@ -554,9 +555,12 @@ class EventTarget {
// Ref: https://github.com/nodejs/node/pull/33661
static [kIsEventTarget] = true;

constructor() {
initEventTarget(this);
}
// From here: Same as initEventTarget code, added here due to performance reasons
[kEvents] = new SafeMap();
[kMaxEventTargetListeners] = EventEmitter.defaultMaxListeners;
[kMaxEventTargetListenersWarned] = false;
[kHandlers] = new SafeMap();
// Until here

[kNewListener](size, type, listener, once, capture, passive, weak) {
if (this[kMaxEventTargetListeners] > 0 &&
Expand Down Expand Up @@ -868,6 +872,7 @@ ObjectDefineProperties(EventTarget.prototype, {
},
});

// If you update this function please add to node event target as well, not used in NodeEventTarget due to performance reasons
function initNodeEventTarget(self) {
initEventTarget(self);
}
Expand All @@ -876,11 +881,6 @@ class NodeEventTarget extends EventTarget {
static [kIsNodeEventTarget] = true;
static defaultMaxListeners = 10;

constructor() {
super();
initNodeEventTarget(this);
}

/**
* @param {number} n
*/
Expand Down