Skip to content

Commit e3d0bb1

Browse files
committed
fixup! events: refactor to use more primordials
1 parent 69ff9a3 commit e3d0bb1

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

lib/events.js

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -486,22 +486,13 @@ EventEmitter.prototype.prependListener =
486486
return _addListener(this, type, listener, true);
487487
};
488488

489-
function onceWrapper() {
490-
if (!this.fired) {
491-
this.target.removeListener(this.type, this.wrapFn);
492-
this.fired = true;
493-
if (arguments.length === 0)
494-
return FunctionPrototypeCall(this.listener, this.target);
495-
return ReflectApply(this.listener, this.target, arguments);
496-
}
497-
}
498-
499489
function _onceWrap(target, type, listener) {
500-
const state = { fired: false, wrapFn: undefined, target, type, listener };
501-
const wrapped = FunctionPrototypeBind(onceWrapper, state);
502-
wrapped.listener = listener;
503-
state.wrapFn = wrapped;
504-
return wrapped;
490+
return function onceWrapper() {
491+
target.removeListener(type, onceWrapper);
492+
if (arguments.length === 0)
493+
return FunctionPrototypeCall(listener, target);
494+
return ReflectApply(listener, target, arguments);
495+
};
505496
}
506497

507498
EventEmitter.prototype.once = function once(type, listener) {
@@ -789,7 +780,7 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
789780
}
790781

791782
function on(emitter, event, options) {
792-
const { signal } = { ...options };
783+
const signal = options?.signal;
793784
validateAbortSignal(signal, 'options.signal');
794785
if (signal && signal.aborted) {
795786
throw lazyDOMException('The operation was aborted', 'AbortError');

0 commit comments

Comments
 (0)