diff --git a/doc/api/events.md b/doc/api/events.md index db0fa60f1e0387..55ede34dc38c64 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -1451,6 +1451,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 afaadc564396ff..58ae809302461e 100644 --- a/lib/internal/event_target.js +++ b/lib/internal/event_target.js @@ -475,6 +475,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 f4116f72a34d75..0f9218f540860d 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(), []);