Skip to content

Commit 598fbb4

Browse files
committed
events: 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 598fbb4

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)