"JSC will now will start by executing code in LLInt and will only tier up to the old JIT after the code is proven hot," a change report on the new interpreter describes.
"LLInt is written in a modified form of our macro assembly. This new macro assembly is compiled by an offline assembler (see offlineasm), which implements many modern conveniences such as a Turing-complete CPS-based macro language and direct access to relevant C++ type information (basically offsets of fields and sizes of structs/classes)."
The new interpreter "is 2-2.5x faster than our old interpreter on SunSpider, V8, and Kraken [benchmarks]," the report states. "With triple-tiering turned on [to allow the LLInt to interpret code], we're neutral on SunSpider, V8, and Kraken, but appear to get a double-digit improvement on real-world websites due to a huge reduction in the amount of JIT'ing."
In iOS 5, Apple solved the security issues that prevented earlier releases from running full screen web apps using Nitro, although security measures still prevent apps that use UIWebView to present a web view from invoking Nitro.
In a discussion about Dart in December, Apple's Oliver Hunt wrote, "Adding direct and exposed support for a non-standard language is hostile to the open-web by skipping any form "consensus" driven language development that might happen, and foisting whatever language we want on the web instead. This implicitly puts any browser that supports additional proprietary extensions in the same position as a browser supporting something like vbscript, and has the same effect: breaking the open web by making content that only works effectively in a single product."
Google's efforts to leverage Chrome to push its own preferred technologies rather than open standards has also occured with its own WebM video codec (as opposed to H.264) and a prioritization of Adobe's Flash (over HTML5) for delivering video and interactivity, particularly as a differentiating feature of its Android mobile platform.
[ View article on AppleInsider ]