In the event refactor, I tried to have the focus/blur events trigger the focus/blur plus focusin/focusout events but this doesn't handle various real-world cases that expect a trigger()ed jQuery handler to run and be able to pass data even if the native event shouldn't fire.
This reopens a bug that causes a double-fire of
inline event handlers.
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.