HTML5 and ES5 shim. TODO: Replace reserved words, eg. "throw" with [...] notation to prevent syntax errors in IE (FF, Chrome etc. all support this) eg. "object.throw();", "object.instanceof();" Would fix https://github.com/chaijs/chai/issues/7 Hook eval() to filter JS Remove execScript() in IE (non-standard) Replace DOM with virtual DOM in IE It may be possible to do all this without having to replace the DOM - hooking property/method accesses could be enough