Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 3b8ec34

Browse filesBrowse files
yuzheng14ruyadorno
authored andcommitted
events: fix bug listenerCount don't compare wrapped listener
When add listener by once, it will be wrapped into another function. And when pass listener and there is just one event listener added by once, it will return 0 even if passed listener equal wrapped event listener. Refs: #46523 PR-URL: #48592 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
1 parent 1aa798d commit 3b8ec34
Copy full SHA for 3b8ec34

File tree

Expand file treeCollapse file tree

2 files changed

+13
-1
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

2 files changed

+13
-1
lines changed
Open diff view settings
Collapse file

‎lib/events.js‎

Copy file name to clipboardExpand all lines: lib/events.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ function listenerCount(type, listener) {
850850

851851
if (typeof evlistener === 'function') {
852852
if (listener != null) {
853-
return listener === evlistener ? 1 : 0;
853+
return listener === evlistener || listener === evlistener.listener ? 1 : 0;
854854
}
855855

856856
return 1;
Collapse file

‎test/parallel/test-events-listener-count-with-listener.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-events-listener-count-with-listener.js
+12Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ assert.strictEqual(EE.listenerCount('event'), 0);
1212
assert.strictEqual(EE.listenerCount('event', handler), 0);
1313
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
1414

15+
EE.once('event', handler);
16+
17+
assert.strictEqual(EE.listenerCount('event'), 1);
18+
assert.strictEqual(EE.listenerCount('event', handler), 1);
19+
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
20+
21+
EE.removeAllListeners('event');
22+
23+
assert.strictEqual(EE.listenerCount('event'), 0);
24+
assert.strictEqual(EE.listenerCount('event', handler), 0);
25+
assert.strictEqual(EE.listenerCount('event', anotherHandler), 0);
26+
1527
EE.on('event', handler);
1628

1729
assert.strictEqual(EE.listenerCount('event'), 1);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.