@@ -276,12 +276,6 @@ 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 | | - |
285 | 279 | ObjectDefineProperties(EventEmitter, { |
286 | 280 | kMaxEventTargetListeners: { |
287 | 281 | __proto__: null, |
@@ -675,11 +669,13 @@ EventEmitter.prototype.removeListener = |
675 | 669 | function removeListener(type, listener) { |
676 | 670 | checkListener(listener); |
677 | 671 |
|
678 | | - if (!hasEventListener(this, type)) |
| 672 | + const events = this._events; |
| 673 | + if (events === undefined) |
679 | 674 | return this; |
680 | 675 |
|
681 | | - const events = this._events; |
682 | 676 | const list = events[type]; |
| 677 | + if (list === undefined) |
| 678 | + return this; |
683 | 679 |
|
684 | 680 | if (list === listener || list.listener === listener) { |
685 | 681 | this._eventsCount -= 1; |
@@ -733,9 +729,9 @@ EventEmitter.prototype.off = EventEmitter.prototype.removeListener; |
733 | 729 | */ |
734 | 730 | EventEmitter.prototype.removeAllListeners = |
735 | 731 | function removeAllListeners(type) { |
736 | | - if (!hasEventListener(this)) |
737 | | - return this; |
738 | 732 | const events = this._events; |
| 733 | + if (events === undefined) |
| 734 | + return this; |
739 | 735 |
|
740 | 736 | // Not listening for removeListener, no need to emit |
741 | 737 | if (events.removeListener === undefined) { |
@@ -780,10 +776,14 @@ EventEmitter.prototype.removeAllListeners = |
780 | 776 | }; |
781 | 777 |
|
782 | 778 | function _listeners(target, type, unwrap) { |
783 | | - if (!hasEventListener(target, type)) |
| 779 | + const events = target._events; |
| 780 | + |
| 781 | + if (events === undefined) |
784 | 782 | return []; |
785 | 783 |
|
786 | | - const evlistener = target._events[type]; |
| 784 | + const evlistener = events[type]; |
| 785 | + if (evlistener === undefined) |
| 786 | + return []; |
787 | 787 |
|
788 | 788 | if (typeof evlistener === 'function') |
789 | 789 | return unwrap ? [evlistener.listener || evlistener] : [evlistener]; |
|