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 bdb6d12

Browse filesBrowse files
sungpaksaduh95
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 787e51e commit bdb6d12
Copy full SHA for bdb6d12

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
@@ -276,6 +276,12 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', {
276276
},
277277
});
278278

279+
function hasEventListener(self, type) {
280+
if (type === undefined)
281+
return self._events !== undefined;
282+
return self._events !== undefined && self._events[type] !== undefined;
283+
};
284+
279285
ObjectDefineProperties(EventEmitter, {
280286
kMaxEventTargetListeners: {
281287
__proto__: null,
@@ -669,13 +675,11 @@ EventEmitter.prototype.removeListener =
669675
function removeListener(type, listener) {
670676
checkListener(listener);
671677

672-
const events = this._events;
673-
if (events === undefined)
678+
if (!hasEventListener(this, type))
674679
return this;
675680

681+
const events = this._events;
676682
const list = events[type];
677-
if (list === undefined)
678-
return this;
679683

680684
if (list === listener || list.listener === listener) {
681685
this._eventsCount -= 1;
@@ -729,9 +733,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
729733
*/
730734
EventEmitter.prototype.removeAllListeners =
731735
function removeAllListeners(type) {
732-
const events = this._events;
733-
if (events === undefined)
736+
if (!hasEventListener(this))
734737
return this;
738+
const events = this._events;
735739

736740
// Not listening for removeListener, no need to emit
737741
if (events.removeListener === undefined) {
@@ -776,14 +780,10 @@ EventEmitter.prototype.removeAllListeners =
776780
};
777781

778782
function _listeners(target, type, unwrap) {
779-
const events = target._events;
780-
781-
if (events === undefined)
783+
if (!hasEventListener(target, type))
782784
return [];
783785

784-
const evlistener = events[type];
785-
if (evlistener === undefined)
786-
return [];
786+
const evlistener = target._events[type];
787787

788788
if (typeof evlistener === 'function')
789789
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.