@@ -82,18 +82,11 @@ EventEmitter.prototype.emit = function(type) {
82
82
break ;
83
83
// slower
84
84
default :
85
- len = arguments . length ;
86
- args = new Array ( len - 1 ) ;
87
- for ( i = 1 ; i < len ; i ++ )
88
- args [ i - 1 ] = arguments [ i ] ;
85
+ args = Array . prototype . slice . call ( arguments , 1 ) ;
89
86
handler . apply ( this , args ) ;
90
87
}
91
88
} else if ( isObject ( handler ) ) {
92
- len = arguments . length ;
93
- args = new Array ( len - 1 ) ;
94
- for ( i = 1 ; i < len ; i ++ )
95
- args [ i - 1 ] = arguments [ i ] ;
96
-
89
+ args = Array . prototype . slice . call ( arguments , 1 ) ;
97
90
listeners = handler . slice ( ) ;
98
91
len = listeners . length ;
99
92
for ( i = 0 ; i < len ; i ++ )
@@ -131,7 +124,6 @@ EventEmitter.prototype.addListener = function(type, listener) {
131
124
132
125
// Check for listener leak
133
126
if ( isObject ( this . _events [ type ] ) && ! this . _events [ type ] . warned ) {
134
- var m ;
135
127
if ( ! isUndefined ( this . _maxListeners ) ) {
136
128
m = this . _maxListeners ;
137
129
} else {
@@ -253,7 +245,7 @@ EventEmitter.prototype.removeAllListeners = function(type) {
253
245
254
246
if ( isFunction ( listeners ) ) {
255
247
this . removeListener ( type , listeners ) ;
256
- } else {
248
+ } else if ( listeners ) {
257
249
// LIFO order
258
250
while ( listeners . length )
259
251
this . removeListener ( type , listeners [ listeners . length - 1 ] ) ;
@@ -274,15 +266,20 @@ EventEmitter.prototype.listeners = function(type) {
274
266
return ret ;
275
267
} ;
276
268
269
+ EventEmitter . prototype . listenerCount = function ( type ) {
270
+ if ( this . _events ) {
271
+ var evlistener = this . _events [ type ] ;
272
+
273
+ if ( isFunction ( evlistener ) )
274
+ return 1 ;
275
+ else if ( evlistener )
276
+ return evlistener . length ;
277
+ }
278
+ return 0 ;
279
+ } ;
280
+
277
281
EventEmitter . listenerCount = function ( emitter , type ) {
278
- var ret ;
279
- if ( ! emitter . _events || ! emitter . _events [ type ] )
280
- ret = 0 ;
281
- else if ( isFunction ( emitter . _events [ type ] ) )
282
- ret = 1 ;
283
- else
284
- ret = emitter . _events [ type ] . length ;
285
- return ret ;
282
+ return emitter . listenerCount ( type ) ;
286
283
} ;
287
284
288
285
function isFunction ( arg ) {
@@ -2521,7 +2518,7 @@ function hash (ids) {
2521
2518
CHR . History = Runtime . History
2522
2519
CHR . Rule = Rule
2523
2520
2524
- CHR . version = '2.0.3 '
2521
+ CHR . version = '2.0.4 '
2525
2522
2526
2523
CHR . noConflict = function ( ) {
2527
2524
root . CHR = prevCHR
0 commit comments