Enhancements in JScript 5.8, the IE8 Scripting Engine
After a couple of betas, IE8 was finally released last month including version 5.8 of its JScript engine. The main enhancements of the scripting engine are: JSON support, performance optimizations, ECMA 3 compatibility, a profiler plus a debugger.
Native JSON support. The IE team boasts as having the first browser which implements JSON natively. This significantly improves the serialization/deserialization process and is considered more secure having better protection against code injection and bad data.
Performance optimization. One of the main problems developers complained about was string concatenation which has been addressed and is several times faster compared to previous JScript versions. Array operations have been also optimized for speed. The engine is now 2.5 times faster according to Greg Badros, Senior Director of Engineering, Google:
Some of the tests we have done show pure JScript performance improvements up to 2.5 times. Key gains are in strings. We also measured the performance gains on common Gmail operations, like loading the inbox (24%), opening a conversation (35%) and opening a thread (25%) compared to IE7.
Compatibility with ECMA 3. One of the main problems was full compatibility with ECMAScript 3 (PDF). The compatibility issues found have been gathered in a public document (PDF) and they are supposedly fixed as the IE team promised.
The circular memory leak. While this problem started to be addressed in 2007, it was fixed starting with IE8 Beta 1 in the COM infrastructure, according to Shreesh Dubey, Product Unit Manager, JScript:
We took a hard look at this problem and realized that this has to be fixed at the COM infrastructure. We implemented a design that bridges the gap between COM ref-counting and automatic garbage collection models. We extended the IDispatchEx interface to enable COM clients to simultaneously live in both the ref-counted and garbage collected worlds.
Profiler and Debugger. IE Developer Tools now have an integrated JScript profiler and also a debugger.