Skip to content

Commit d322e4d

Browse files
committed
fix: emit removeListener event when last listener is removed
When the last listener is removed and _eventsCount becomes 0, the removeListener event was not being emitted because the check was inside the else block. This moves the removeListener emission outside the conditional to ensure it always fires when a listener is removed.
1 parent e04ddfc commit d322e4d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

lib/events.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,9 +687,10 @@ EventEmitter.prototype.removeListener =
687687
this._events = { __proto__: null };
688688
} else {
689689
delete events[type];
690-
if (events.removeListener)
691-
this.emit('removeListener', type, list.listener || listener);
692690
}
691+
692+
if (events.removeListener !== undefined)
693+
this.emit('removeListener', type, list.listener || listener);
693694
} else if (typeof list !== 'function') {
694695
let position = -1;
695696

0 commit comments

Comments
 (0)