Bringing asm.js to the Chakra JavaScript engine in Windows 10

Earlier today, we flipped asm.js to “In Development” at status.modern.ie. Support for asm.js has been one of the top 10 most-requested items at the IE Suggestion Box on UserVoice since we launched it in December.

Delivering an interoperable & spec compliant JavaScript engine with the capabilities and performance for modern experiences has been a key goal for us since the inception of Chakra. Bringing near-native performance for JavaScript code execution is a part of the same. We recently shared the details of some of the work we’ve done in Windows 10 to boost JavaScript execution speed in the Chakra engine.

Over the last few months we’ve taken a close look at asm.js as a technology, related technologies, and what they entail for the Web at large. While challenging to write by hand, asm.js is leveraged principally by transpiling C/C++ code to run on the Web platform, utilizing technologies such as WebGL and Web Audio. Asm.js is a clear step towards enabling near-native performance for the Web platform, which is why we’re excited to bring it to Chakra in an upcoming release.

Amongst other similar initiatives, asm.js as a technology has two key characteristics that we like:

  • First and obvious is the boost to JavaScript execution speed, which we’ve already talked about. We believe that asm.js and the work we do to enable asm.js has the potential to provide speed benefits to many more scenarios over a period of time.
  • Second but more importantly is the fact that asm.js is a pure subset of JavaScript and guarantees interoperability across platforms and browsers. This means that engines that support asm.js light up the new features, while engines that don’t will simply run with degraded performance. Since the beginning of Chakra, our team’s focus has always been to prioritize this approach to new functionality.

During this period, we’ve also been working closely with folks from the Firefox team who are working on asm.js, to learn from and partner with them to bring asm.js to the Chakra JavaScript engine.

We look forward to sharing more details and getting your feedback as we advance our implementation towards a preview state.

— Gaurav Seth, Principal PM Manager, Chakra Team
— Ed Maurer, Principal Group Software Engg. Manager, Chakra Team