We already have jQuery.propHooks for the .prop() method, so using the same name for unrelated functionality on a sub-namespace is crazy talk. Since the method involved is jQuery.event.fix(), this will hopefully tie them together. Oh, and it's shorter.
* 'fix-8789-rwldrn-fix' of git://github.com/dmethvin/jquery:
Minor cleanups to code. Futile effort to get IE to pass the unit test.
propHooks now an object with `props` array and `filter` function.
Moves mouse properties to mouseProps
current state
Removes early return loop, must copy properties
Shortcircuit fix if possible
More ref localization
Remove unnec. empty line
More reference caching
Cache reference to propHook lookup and result
Restore this.propHooks => jQuery.event.propHooks for better gzip compression. Thanks gnarf
Adds notes re: crash status of fix conditions
Moves key event fixes to own even prop hook defs
jQuery.event.propHooks => this.propHooks where possible
Removes pageX pageY from prop list
Updates rmouseEvent
Implements jQuery.event.propHooks. Fixes#8789
Adds implementation tests for jQuery.event.propHooks #8789
Use the originalEvent to grab properties in filter functions since they often won't have been copied to event. Mark a few current props in the main jQuery.event.props list as deprecated, they aren't supported across all browsers.
It was previously used in liveHandler for delegated events, but is now baked in to events.js. The signature is a strange one since it returns an array of matches, *not* a chainable jQuery object. I've marked it as deprecated.
The code is simplified by two things: 1) We don't care about optimizing the duplicate selectors case, and 2) `.is()` now handles positional selectors by looking for set membership, which eliminates the workaround that was being applied here. See 70e2e32e0e for that commit.
This is a major revamp of the approach we use for IE change events. Instead of trying to track and simulate, we lazy-attach real change events to inputs and have only one workaround for check/radio. Somewhat more resource intensive but closes several sticky bugs. The onchange is still triggered for check/radio on blur but no double-trigger on any element occurs.