Skip to content

Commit 9f268ca

Browse files
topaxidmethvin
authored andcommitted
Event: Make event dispatch optimizable by JavaScript engines
Closes gh-2834 - Do not assign to function parameters - Do not pass arguments object to other functions
1 parent df2051c commit 9f268ca

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/event.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -283,19 +283,23 @@ jQuery.event = {
283283
}
284284
},
285285

286-
dispatch: function( event ) {
286+
dispatch: function( nativeEvent ) {
287287

288288
// Make a writable jQuery.Event from the native event object
289-
event = jQuery.event.fix( event );
289+
var event = jQuery.event.fix( nativeEvent );
290290

291-
var i, j, ret, matched, handleObj,
292-
handlerQueue = [],
293-
args = slice.call( arguments ),
291+
var i, j, ret, matched, handleObj, handlerQueue,
292+
args = new Array( arguments.length ),
294293
handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
295294
special = jQuery.event.special[ event.type ] || {};
296295

297296
// Use the fix-ed jQuery.Event rather than the (read-only) native event
298297
args[ 0 ] = event;
298+
299+
for ( i = 1; i < arguments.length; i++ ) {
300+
args[ i ] = arguments[ i ];
301+
}
302+
299303
event.delegateTarget = this;
300304

301305
// Call the preDispatch hook for the mapped type, and let it bail if desired

0 commit comments

Comments
 (0)