createEventObject is ancient, that is why I left it out.
createEvent is supported, but deprecated, so I wanted to use the new Event constructor too.

Although your order is more logical, try-catch seemed overkill for what an if-then can achieve.
There is also a major performance difference (http://jsperf.com/try-catch-versus-massive-if), but that is likely irrelevant in our use case.

No problem with constructive pickiness :)