| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d69107f commit e87db6c
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -287,6 +287,12 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', { | |||
| 287 | 287 | }, | |
| 288 | 288 | }); | |
| 289 | 289 | ||
| 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 | + | ||
| 290 | 296 | ObjectDefineProperties(EventEmitter, { | |
| 291 | 297 | kMaxEventTargetListeners: { | |
| 292 | 298 | __proto__: null, | |
@@ -680,13 +686,11 @@ EventEmitter.prototype.removeListener = | |||
| 680 | 686 | function removeListener(type, listener) { | |
| 681 | 687 | checkListener(listener); | |
| 682 | 688 | ||
| 683 | - const events = this._events; | ||
| 684 | - if (events === undefined) | ||
| 689 | + if (!hasEventListener(this, type)) | ||
| 685 | 690 | return this; | |
| 686 | 691 | ||
| 692 | + const events = this._events; | ||
| 687 | 693 | const list = events[type]; | |
| 688 | - if (list === undefined) | ||
| 689 | - return this; | ||
| 690 | 694 | ||
| 691 | 695 | if (list === listener || list.listener === listener) { | |
| 692 | 696 | this._eventsCount -= 1; | |
@@ -742,9 +746,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener; | |||
| 742 | 746 | */ | |
| 743 | 747 | EventEmitter.prototype.removeAllListeners = | |
| 744 | 748 | function removeAllListeners(type) { | |
| 745 | - const events = this._events; | ||
| 746 | - if (events === undefined) | ||
| 749 | + if (!hasEventListener(this)) | ||
| 747 | 750 | return this; | |
| 751 | + const events = this._events; | ||
| 748 | 752 | ||
| 749 | 753 | // Not listening for removeListener, no need to emit | |
| 750 | 754 | if (events.removeListener === undefined) { | |
@@ -789,14 +793,10 @@ EventEmitter.prototype.removeAllListeners = | |||
| 789 | 793 | }; | |
| 790 | 794 | ||
| 791 | 795 | function _listeners(target, type, unwrap) { | |
| 792 | - const events = target._events; | ||
| 793 | - | ||
| 794 | - if (events === undefined) | ||
| 796 | + if (!hasEventListener(target, type)) | ||
| 795 | 797 | return []; | |
| 796 | 798 | ||
| 797 | - const evlistener = events[type]; | ||
| 798 | - if (evlistener === undefined) | ||
| 799 | - return []; | ||
| 799 | + const evlistener = target._events[type]; | ||
| 800 | 800 | ||
| 801 | 801 | if (typeof evlistener === 'function') | |
| 802 | 802 | return unwrap ? [evlistener.listener || evlistener] : [evlistener]; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments