Limit disabled dispatching fix to inserted and removed events #220
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The fix for #207 causes an infinite loop. Every time a disabled element has an event dispatched, there are 2 mutation events that are emitted (one for enabling and one for disabling the element).
When those 2 events go through
dispatch
4 more mutation events are emitted (2 for each event) are emitted and so on exponentially.This fix limits the new logic in
dispatch
to the two most common synthetic events a CanJS user will encounter (inserted and removed). This does mean that other synthetic events will have an issue but this bug in FF has been around for 11 years and to my knowledge has not been caused a big problem thus far.