@@ -105,63 +105,6 @@ EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
105
105
return $getMaxListeners ( this ) ;
106
106
} ;
107
107
108
- // These standalone emit* functions are used to optimize calling of event
109
- // handlers for fast cases because emit() itself often has a variable number of
110
- // arguments and can be deoptimized because of that. These functions always have
111
- // the same number of arguments and thus do not get deoptimized, so the code
112
- // inside them can execute faster.
113
- function emitNone ( handler , isFn , self ) {
114
- if ( isFn )
115
- handler . call ( self ) ;
116
- else {
117
- var len = handler . length ;
118
- var listeners = arrayClone ( handler , len ) ;
119
- for ( var i = 0 ; i < len ; ++ i )
120
- listeners [ i ] . call ( self ) ;
121
- }
122
- }
123
- function emitOne ( handler , isFn , self , arg1 ) {
124
- if ( isFn )
125
- handler . call ( self , arg1 ) ;
126
- else {
127
- var len = handler . length ;
128
- var listeners = arrayClone ( handler , len ) ;
129
- for ( var i = 0 ; i < len ; ++ i )
130
- listeners [ i ] . call ( self , arg1 ) ;
131
- }
132
- }
133
- function emitTwo ( handler , isFn , self , arg1 , arg2 ) {
134
- if ( isFn )
135
- handler . call ( self , arg1 , arg2 ) ;
136
- else {
137
- var len = handler . length ;
138
- var listeners = arrayClone ( handler , len ) ;
139
- for ( var i = 0 ; i < len ; ++ i )
140
- listeners [ i ] . call ( self , arg1 , arg2 ) ;
141
- }
142
- }
143
- function emitThree ( handler , isFn , self , arg1 , arg2 , arg3 ) {
144
- if ( isFn )
145
- handler . call ( self , arg1 , arg2 , arg3 ) ;
146
- else {
147
- var len = handler . length ;
148
- var listeners = arrayClone ( handler , len ) ;
149
- for ( var i = 0 ; i < len ; ++ i )
150
- listeners [ i ] . call ( self , arg1 , arg2 , arg3 ) ;
151
- }
152
- }
153
-
154
- function emitMany ( handler , isFn , self , args ) {
155
- if ( isFn )
156
- handler . apply ( self , args ) ;
157
- else {
158
- var len = handler . length ;
159
- var listeners = arrayClone ( handler , len ) ;
160
- for ( var i = 0 ; i < len ; ++ i )
161
- listeners [ i ] . apply ( self , args ) ;
162
- }
163
- }
164
-
165
108
EventEmitter . prototype . emit = function emit ( type , ...args ) {
166
109
let doError = ( type === 'error' ) ;
167
110
@@ -212,22 +155,13 @@ EventEmitter.prototype.emit = function emit(type, ...args) {
212
155
needDomainExit = true ;
213
156
}
214
157
215
- const isFn = typeof handler === 'function' ;
216
- switch ( args . length ) {
217
- case 0 :
218
- emitNone ( handler , isFn , this ) ;
219
- break ;
220
- case 1 :
221
- emitOne ( handler , isFn , this , args [ 0 ] ) ;
222
- break ;
223
- case 2 :
224
- emitTwo ( handler , isFn , this , args [ 0 ] , args [ 1 ] ) ;
225
- break ;
226
- case 3 :
227
- emitThree ( handler , isFn , this , args [ 0 ] , args [ 1 ] , args [ 2 ] ) ;
228
- break ;
229
- default :
230
- emitMany ( handler , isFn , this , args ) ;
158
+ if ( typeof handler === 'function' ) {
159
+ handler . apply ( this , args ) ;
160
+ } else {
161
+ const len = handler . length ;
162
+ const listeners = arrayClone ( handler , len ) ;
163
+ for ( var i = 0 ; i < len ; ++ i )
164
+ listeners [ i ] . apply ( this , args ) ;
231
165
}
232
166
233
167
if ( needDomainExit )
@@ -313,23 +247,11 @@ EventEmitter.prototype.prependListener =
313
247
return _addListener ( this , type , listener , true ) ;
314
248
} ;
315
249
316
- function onceWrapper ( ) {
250
+ function onceWrapper ( ... args ) {
317
251
if ( ! this . fired ) {
318
252
this . target . removeListener ( this . type , this . wrapFn ) ;
319
253
this . fired = true ;
320
- switch ( arguments . length ) {
321
- case 0 :
322
- return this . listener . call ( this . target ) ;
323
- case 1 :
324
- return this . listener . call ( this . target , arguments [ 0 ] ) ;
325
- case 2 :
326
- return this . listener . call ( this . target , arguments [ 0 ] , arguments [ 1 ] ) ;
327
- case 3 :
328
- return this . listener . call ( this . target , arguments [ 0 ] , arguments [ 1 ] ,
329
- arguments [ 2 ] ) ;
330
- default :
331
- this . listener . apply ( this . target , arguments ) ;
332
- }
254
+ this . listener . apply ( this . target , args ) ;
333
255
}
334
256
}
335
257
0 commit comments