Hm, but in that link they're falling back to createEventObject. In your diff we're falling back to new Event, which is not really a fallback... it's the new hotness. If a browser doesn't support "createEvent", it won't support "new Event" (as far as I know).

Chrome, Firefox, and Safari all have document.createEvent. It sounds like the right way to do this would be the following order:
try new Event
try document.createEvent
try document.createEventObject

Thanks for this pull request by the way! I hope I am not being too picky. In existing code in this file, we just use document.createEvent(), which would be OK with me also.