Handle some IE8 and IE9 quirks mode issues

- IE8 and 9 do not support array-style string parsing in quirks mode: ```"abcdef"[0]``` returns ```""``` whereas ```"abcdef".substr(0,1)``` returns ```"a"```
- ```document.fireEvent()``` returns ```Invalid argument``` regardless of the parameters sent to it. This happens in IE8 and IE9 in quirks mode.