| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 787e51e commit bdb6d12
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -276,6 +276,12 @@ ObjectDefineProperty(EventEmitter, 'defaultMaxListeners', { | |||
| 276 | 276 | }, | |
| 277 | 277 | }); | |
| 278 | 278 | ||
| 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 | + | ||
| 279 | 285 | ObjectDefineProperties(EventEmitter, { | |
| 280 | 286 | kMaxEventTargetListeners: { | |
| 281 | 287 | __proto__: null, | |
@@ -669,13 +675,11 @@ EventEmitter.prototype.removeListener = | |||
| 669 | 675 | function removeListener(type, listener) { | |
| 670 | 676 | checkListener(listener); | |
| 671 | 677 | ||
| 672 | - const events = this._events; | ||
| 673 | - if (events === undefined) | ||
| 678 | + if (!hasEventListener(this, type)) | ||
| 674 | 679 | return this; | |
| 675 | 680 | ||
| 681 | + const events = this._events; | ||
| 676 | 682 | const list = events[type]; | |
| 677 | - if (list === undefined) | ||
| 678 | - return this; | ||
| 679 | 683 | ||
| 680 | 684 | if (list === listener || list.listener === listener) { | |
| 681 | 685 | this._eventsCount -= 1; | |
@@ -729,9 +733,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener; | |||
| 729 | 733 | */ | |
| 730 | 734 | EventEmitter.prototype.removeAllListeners = | |
| 731 | 735 | function removeAllListeners(type) { | |
| 732 | - const events = this._events; | ||
| 733 | - if (events === undefined) | ||
| 736 | + if (!hasEventListener(this)) | ||
| 734 | 737 | return this; | |
| 738 | + const events = this._events; | ||
| 735 | 739 | ||
| 736 | 740 | // Not listening for removeListener, no need to emit | |
| 737 | 741 | if (events.removeListener === undefined) { | |
@@ -776,14 +780,10 @@ EventEmitter.prototype.removeAllListeners = | |||
| 776 | 780 | }; | |
| 777 | 781 | ||
| 778 | 782 | function _listeners(target, type, unwrap) { | |
| 779 | - const events = target._events; | ||
| 780 | - | ||
| 781 | - if (events === undefined) | ||
| 783 | + if (!hasEventListener(target, type)) | ||
| 782 | 784 | return []; | |
| 783 | 785 | ||
| 784 | - const evlistener = events[type]; | ||
| 785 | - if (evlistener === undefined) | ||
| 786 | - return []; | ||
| 786 | + const evlistener = target._events[type]; | ||
| 787 | 787 | ||
| 788 | 788 | if (typeof evlistener === 'function') | |
| 789 | 789 | return unwrap ? [evlistener.listener || evlistener] : [evlistener]; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments