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 e87db6c

Browse filesBrowse files
sungpaksmarco-ippolito
authored andcommitted
events: add hasEventListener util for validate
There was some repetitive logics that validated the existence of eventlisteners. We now replace this with a single line of, `hasEventListener(self, type)`. `self` is the object(e.g. EventEmitter) to be checked whether eventlisteners exists or not. `type` is the type of eventlisteners, which can be `undefined` PR-URL: #55230 Reviewed-By: Jason Zhang <xzha4350@gmail.com>
1 parent d69107f commit e87db6c
Copy full SHA for e87db6c

File tree

Expand file treeCollapse file tree

1 file changed

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

1 file changed

+12
-12
lines changed
Open diff view settings
Collapse file

‎lib/events.js‎

Copy file name to clipboardExpand all lines: lib/events.js
+12-12Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,12 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', {
287287
},
288288
});
289289

290+
function hasEventListener(self, type) {
291+
if (type === undefined)
292+
return self._events !== undefined;
293+
return self._events !== undefined && self._events[type] !== undefined;
294+
}
295+
290296
ObjectDefineProperties(EventEmitter, {
291297
kMaxEventTargetListeners: {
292298
__proto__: null,
@@ -680,13 +686,11 @@ EventEmitter.prototype.removeListener =
680686
function removeListener(type, listener) {
681687
checkListener(listener);
682688

683-
const events = this._events;
684-
if (events === undefined)
689+
if (!hasEventListener(this, type))
685690
return this;
686691

692+
const events = this._events;
687693
const list = events[type];
688-
if (list === undefined)
689-
return this;
690694

691695
if (list === listener || list.listener === listener) {
692696
this._eventsCount -= 1;
@@ -742,9 +746,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
742746
*/
743747
EventEmitter.prototype.removeAllListeners =
744748
function removeAllListeners(type) {
745-
const events = this._events;
746-
if (events === undefined)
749+
if (!hasEventListener(this))
747750
return this;
751+
const events = this._events;
748752

749753
// Not listening for removeListener, no need to emit
750754
if (events.removeListener === undefined) {
@@ -789,14 +793,10 @@ EventEmitter.prototype.removeAllListeners =
789793
};
790794

791795
function _listeners(target, type, unwrap) {
792-
const events = target._events;
793-
794-
if (events === undefined)
796+
if (!hasEventListener(target, type))
795797
return [];
796798

797-
const evlistener = events[type];
798-
if (evlistener === undefined)
799-
return [];
799+
const evlistener = target._events[type];
800800

801801
if (typeof evlistener === 'function')
802802
return unwrap ? [evlistener.listener || evlistener] : [evlistener];

0 commit comments

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