Every native event has to go through jQuery.event.fix() to copy and normalize properties that go into the jQuery.Event object passed to handlers. There is a tension between minimizing the number of items copied for performance reasons versus making more of them available directly so that users won't be forced to get them via event.originalEvent.
See further discussion in gh-2860 and gh-1746.
Event: Remove fixHooks, propHooks; switch to ES5 getter with addProp
- Removes the copy loop in jQuery.event.fix
- Avoids accessing properties such as client/offset/page/screen X/Y
which may cause style recalc or layouts
- Simplifies adding property hooks to event object