23
23
24
24
var domain ;
25
25
26
- // This constructor is used to store event handlers. Instantiating this is
27
- // faster than explicitly calling `Object.create(null)` to get a "clean" empty
28
- // object (tested with v8 v4.9).
29
- function EventHandlers ( ) { }
30
- EventHandlers . prototype = Object . create ( null ) ;
31
-
32
26
function EventEmitter ( ) {
33
27
EventEmitter . init . call ( this ) ;
34
28
}
@@ -75,7 +69,7 @@ EventEmitter.init = function() {
75
69
}
76
70
77
71
if ( ! this . _events || this . _events === Object . getPrototypeOf ( this ) . _events ) {
78
- this . _events = new EventHandlers ( ) ;
72
+ this . _events = Object . create ( null ) ;
79
73
this . _eventsCount = 0 ;
80
74
}
81
75
@@ -245,7 +239,7 @@ function _addListener(target, type, listener, prepend) {
245
239
246
240
events = target . _events ;
247
241
if ( ! events ) {
248
- events = target . _events = new EventHandlers ( ) ;
242
+ events = target . _events = Object . create ( null ) ;
249
243
target . _eventsCount = 0 ;
250
244
} else {
251
245
// To avoid recursion in the case that type === "newListener"! Before
@@ -360,7 +354,7 @@ EventEmitter.prototype.removeListener =
360
354
361
355
if ( list === listener || list . listener === listener ) {
362
356
if ( -- this . _eventsCount === 0 )
363
- this . _events = new EventHandlers ( ) ;
357
+ this . _events = Object . create ( null ) ;
364
358
else {
365
359
delete events [ type ] ;
366
360
if ( events . removeListener )
@@ -383,7 +377,7 @@ EventEmitter.prototype.removeListener =
383
377
if ( list . length === 1 ) {
384
378
list [ 0 ] = undefined ;
385
379
if ( -- this . _eventsCount === 0 ) {
386
- this . _events = new EventHandlers ( ) ;
380
+ this . _events = Object . create ( null ) ;
387
381
return this ;
388
382
} else {
389
383
delete events [ type ] ;
@@ -412,11 +406,11 @@ EventEmitter.prototype.removeAllListeners =
412
406
// not listening for removeListener, no need to emit
413
407
if ( ! events . removeListener ) {
414
408
if ( arguments . length === 0 ) {
415
- this . _events = new EventHandlers ( ) ;
409
+ this . _events = Object . create ( null ) ;
416
410
this . _eventsCount = 0 ;
417
411
} else if ( events [ type ] ) {
418
412
if ( -- this . _eventsCount === 0 )
419
- this . _events = new EventHandlers ( ) ;
413
+ this . _events = Object . create ( null ) ;
420
414
else
421
415
delete events [ type ] ;
422
416
}
@@ -432,7 +426,7 @@ EventEmitter.prototype.removeAllListeners =
432
426
this . removeAllListeners ( key ) ;
433
427
}
434
428
this . removeAllListeners ( 'removeListener' ) ;
435
- this . _events = new EventHandlers ( ) ;
429
+ this . _events = Object . create ( null ) ;
436
430
this . _eventsCount = 0 ;
437
431
return this ;
438
432
}
0 commit comments