summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuigi Pinca <luigipinca@gmail.com>2020-10-26 09:03:16 +0100
committerRich Trott <rtrott@gmail.com>2020-10-28 06:39:16 -0700
commit81ba3ae699a8ee04e3a5a05b0f7e066b5a486c42 (patch)
treeed3ce3ee4f80c95d69cdc256fa9e1c072d9f5bb8
parent937b70ddec3e9befc06cf0ab07b39d66827d0886 (diff)
downloadnode-new-81ba3ae699a8ee04e3a5a05b0f7e066b5a486c42.tar.gz
events: make eventTarget.removeAllListeners() return this
Fixes: https://github.com/nodejs/node/issues/35762 PR-URL: https://github.com/nodejs/node/pull/35805 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
-rw-r--r--doc/api/events.md2
-rw-r--r--lib/internal/event_target.js2
-rw-r--r--test/parallel/test-nodeeventtarget.js4
3 files changed, 6 insertions, 2 deletions
diff --git a/doc/api/events.md b/doc/api/events.md
index b6403e812e..a46fa06042 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -1525,6 +1525,8 @@ added: v14.5.0
* `type` {string}
+* Returns: {EventTarget} this
+
Node.js-specific extension to the `EventTarget` class. If `type` is specified,
removes all registered listeners for `type`, otherwise removes all registered
listeners.
diff --git a/lib/internal/event_target.js b/lib/internal/event_target.js
index 4db6af26e3..3e0ae460d2 100644
--- a/lib/internal/event_target.js
+++ b/lib/internal/event_target.js
@@ -476,6 +476,8 @@ class NodeEventTarget extends EventTarget {
} else {
this[kEvents].clear();
}
+
+ return this;
}
}
diff --git a/test/parallel/test-nodeeventtarget.js b/test/parallel/test-nodeeventtarget.js
index f4116f72a3..0f9218f540 100644
--- a/test/parallel/test-nodeeventtarget.js
+++ b/test/parallel/test-nodeeventtarget.js
@@ -117,11 +117,11 @@ const { on } = require('events');
strictEqual(eventTarget.listenerCount('foo'), 2);
strictEqual(eventTarget.listenerCount('bar'), 1);
deepStrictEqual(eventTarget.eventNames(), ['foo', 'bar']);
- eventTarget.removeAllListeners('foo');
+ strictEqual(eventTarget.removeAllListeners('foo'), eventTarget);
strictEqual(eventTarget.listenerCount('foo'), 0);
strictEqual(eventTarget.listenerCount('bar'), 1);
deepStrictEqual(eventTarget.eventNames(), ['bar']);
- eventTarget.removeAllListeners();
+ strictEqual(eventTarget.removeAllListeners(), eventTarget);
strictEqual(eventTarget.listenerCount('foo'), 0);
strictEqual(eventTarget.listenerCount('bar'), 0);
deepStrictEqual(eventTarget.eventNames(), []);