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
This commit is contained in:
Damian Senn 2016-01-14 21:24:43 +01:00 committed by Dave Methvin
parent df2051cf59
commit 9f268caaf4

View File

@ -283,19 +283,23 @@ jQuery.event = {
}
},
dispatch: function( event ) {
dispatch: function( nativeEvent ) {
// Make a writable jQuery.Event from the native event object
event = jQuery.event.fix( event );
var event = jQuery.event.fix( nativeEvent );
var i, j, ret, matched, handleObj,
handlerQueue = [],
args = slice.call( arguments ),
var i, j, ret, matched, handleObj, handlerQueue,
args = new Array( arguments.length ),
handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
special = jQuery.event.special[ event.type ] || {};
// Use the fix-ed jQuery.Event rather than the (read-only) native event
args[ 0 ] = event;
for ( i = 1; i < arguments.length; i++ ) {
args[ i ] = arguments[ i ];
}
event.delegateTarget = this;
// Call the preDispatch hook for the mapped type, and let it bail if desired