Skip to content

Commit 92ac6ed

Browse files
committed
events: improve addAbortListener perf by caching options object
1 parent 74343a7 commit 92ac6ed

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

lib/internal/events/abort_listener.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
const {
4+
ObjectFreeze,
45
SymbolDispose,
56
} = primordials;
67
const {
@@ -15,6 +16,7 @@ const {
1516

1617
let queueMicrotask;
1718
let kResistStopPropagation;
19+
let abortListenerOptions;
1820

1921
/**
2022
* @param {AbortSignal} signal
@@ -34,8 +36,9 @@ function addAbortListener(signal, listener) {
3436
queueMicrotask(() => listener());
3537
} else {
3638
kResistStopPropagation ??= require('internal/event_target').kResistStopPropagation;
39+
abortListenerOptions ??= ObjectFreeze({ __proto__: null, once: true, [kResistStopPropagation]: true });
3740
// TODO(atlowChemi) add { subscription: true } and return directly
38-
signal.addEventListener('abort', listener, { __proto__: null, once: true, [kResistStopPropagation]: true });
41+
signal.addEventListener('abort', listener, abortListenerOptions);
3942
removeEventListener = () => {
4043
signal.removeEventListener('abort', listener);
4144
};

0 commit comments

Comments
 (0)