@@ -71,7 +71,8 @@ Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
7171EventEmitter . init = function ( ) {
7272 this . domain = null ;
7373
74- if ( ! this . _events || this . _events === Object . getPrototypeOf ( this ) . _events ) {
74+ if ( this . _events === undefined ||
75+ this . _events === Object . getPrototypeOf ( this ) . _events ) {
7576 this . _events = Object . create ( null ) ;
7677 this . _eventsCount = 0 ;
7778 }
@@ -165,8 +166,8 @@ EventEmitter.prototype.emit = function emit(type) {
165166 var doError = ( type === 'error' ) ;
166167
167168 events = this . _events ;
168- if ( events )
169- doError = ( doError && events . error == null ) ;
169+ if ( events !== undefined )
170+ doError = ( doError && events . error === undefined ) ;
170171 else if ( ! doError )
171172 return false ;
172173
@@ -176,7 +177,7 @@ EventEmitter.prototype.emit = function emit(type) {
176177 if ( doError ) {
177178 if ( arguments . length > 1 )
178179 er = arguments [ 1 ] ;
179- if ( domain ) {
180+ if ( domain !== null && domain !== undefined ) {
180181 if ( ! er ) {
181182 er = new Error ( 'Unhandled "error" event' ) ;
182183 er . code = 'ERR_UNHANDLED_ERROR' ;
@@ -202,7 +203,7 @@ EventEmitter.prototype.emit = function emit(type) {
202203
203204 handler = events [ type ] ;
204205
205- if ( ! handler )
206+ if ( handler === undefined )
206207 return false ;
207208
208209 if ( typeof process !== 'undefined' && domain && this !== process ) {
@@ -254,13 +255,13 @@ function _addListener(target, type, listener, prepend) {
254255 }
255256
256257 events = target . _events ;
257- if ( ! events ) {
258+ if ( events === undefined ) {
258259 events = target . _events = Object . create ( null ) ;
259260 target . _eventsCount = 0 ;
260261 } else {
261262 // To avoid recursion in the case that type === "newListener"! Before
262263 // adding it to the listeners, first emit "newListener".
263- if ( events . newListener ) {
264+ if ( events . newListener !== undefined ) {
264265 target . emit ( 'newListener' , type ,
265266 listener . listener ? listener . listener : listener ) ;
266267
@@ -271,7 +272,7 @@ function _addListener(target, type, listener, prepend) {
271272 existing = events [ type ] ;
272273 }
273274
274- if ( ! existing ) {
275+ if ( existing === undefined ) {
275276 // Optimize the case of one listener. Don't need the extra array object.
276277 existing = events [ type ] = listener ;
277278 ++ target . _eventsCount ;
@@ -390,11 +391,11 @@ EventEmitter.prototype.removeListener =
390391 }
391392
392393 events = this . _events ;
393- if ( ! events )
394+ if ( events === undefined )
394395 return this ;
395396
396397 list = events [ type ] ;
397- if ( ! list )
398+ if ( list === undefined )
398399 return this ;
399400
400401 if ( list === listener || list . listener === listener ) {
@@ -427,7 +428,7 @@ EventEmitter.prototype.removeListener =
427428 if ( list . length === 1 )
428429 events [ type ] = list [ 0 ] ;
429430
430- if ( events . removeListener )
431+ if ( events . removeListener !== undefined )
431432 this . emit ( 'removeListener' , type , originalListener || listener ) ;
432433 }
433434
@@ -439,15 +440,15 @@ EventEmitter.prototype.removeAllListeners =
439440 var listeners , events , i ;
440441
441442 events = this . _events ;
442- if ( ! events )
443+ if ( events === undefined )
443444 return this ;
444445
445446 // not listening for removeListener, no need to emit
446- if ( ! events . removeListener ) {
447+ if ( events . removeListener === undefined ) {
447448 if ( arguments . length === 0 ) {
448449 this . _events = Object . create ( null ) ;
449450 this . _eventsCount = 0 ;
450- } else if ( events [ type ] ) {
451+ } else if ( events [ type ] !== undefined ) {
451452 if ( -- this . _eventsCount === 0 )
452453 this . _events = Object . create ( null ) ;
453454 else
@@ -475,7 +476,7 @@ EventEmitter.prototype.removeAllListeners =
475476
476477 if ( typeof listeners === 'function' ) {
477478 this . removeListener ( type , listeners ) ;
478- } else if ( listeners ) {
479+ } else if ( listeners !== undefined ) {
479480 // LIFO order
480481 for ( i = listeners . length - 1 ; i >= 0 ; i -- ) {
481482 this . removeListener ( type , listeners [ i ] ) ;
@@ -490,11 +491,11 @@ EventEmitter.prototype.listeners = function listeners(type) {
490491 var ret ;
491492 var events = this . _events ;
492493
493- if ( ! events )
494+ if ( events === undefined )
494495 ret = [ ] ;
495496 else {
496497 evlistener = events [ type ] ;
497- if ( ! evlistener )
498+ if ( evlistener === undefined )
498499 ret = [ ] ;
499500 else if ( typeof evlistener === 'function' )
500501 ret = [ evlistener . listener || evlistener ] ;
@@ -517,12 +518,12 @@ EventEmitter.prototype.listenerCount = listenerCount;
517518function listenerCount ( type ) {
518519 const events = this . _events ;
519520
520- if ( events ) {
521+ if ( events !== undefined ) {
521522 const evlistener = events [ type ] ;
522523
523524 if ( typeof evlistener === 'function' ) {
524525 return 1 ;
525- } else if ( evlistener ) {
526+ } else if ( evlistener !== undefined ) {
526527 return evlistener . length ;
527528 }
528529 }
0 commit comments