How would you feel about the following: Making sure that the same number of synthetic events are fired in every browser, every version. That way our apps behave the same in every browser.
The only way I can see doing this, is by doing something similar to what you suggested. On any `keyDown` (maybe others too) store the previous value (but _not_ on a DOM node), and do a `setTimeout` to see if the value ended up being changed. Only then would you dispatch the event, but you would never need to rely on the `topInput` event at all because we wanted all browsers to behave identically.