Microsoft Edge's JavaScript Engine Goes Open-source
Today at JSConf US Last Call in Florida, Microsdoft announced plans to open-source the core components of Chakra as ChakraCore, which will include all the key components of the JavaScript engine powering Microsoft Edge. Microsoft expects to open the ChakraCore repository on GitHub next month.
Microsoft says that Chakra offers "best-in-class JavaScript execution with the broadest set of ES2015 feature coverage and dependable performance, reliability, and scalability." The company wants to see ChakraCore to be used wherever these factors are important, ranging from cloud-based services to the Internet of Things and beyond.
Chakra features a multi-tiered pipeline that supports an interpreter, a multi-tiered background JIT compiler, and a traditional mark and sweep garbage collector that can do concurrent and partial collections.
Today, outside of the Microsoft Edge browser, Chakra powers Universal Windows applications across all form factors where Windows 10 is supported - whether it’s on an Xbox, a phone, or a traditional PC. It powers services such Azure DocumentDB, Cortana and Outlook.com. It is used by (and optimized for) TypeScript. And with Windows 10, Microsoft enabled Node.js to run with Chakra, to help advance the reach of Node.js ecosystem and make Node.js available on a new IoT platform: Windows 10 IoT Core.
With the release of Windows 10 earlier this year, Chakra was not only optimized to run the web faster, but more than doubled its performance on some key JavaScript benchmarks owned by other browser vendors.
Additionally, Chakra supports most of the ECMAScript 2015 (aka ES6) features and has support for some of the future ECMAScript proposals like Async Functions and SIMD. It supports asm.js and the team is a key participant in helping evolve WebAssembly and its associated infrastructure.
ChakraCore is a self-contained JavaScript virtual machine that can be embedded in derivative products and power applications that need scriptability such as NoSQL databases, productivity software, and game engines. ChakraCore can be used to extend the reach of JavaScript on the server with platforms such as Node.js and cloud-based services. It includes everything that is needed to parse, interpret, compile and execute JavaScript code without any dependencies on Microsoft Edge internals.
ChakraCore shares the same set of capabilities that are supported by Chakra in Microsoft Edge, with two key differences. First, it does not expose Chakra’s private bindings to the browser or the Universal Windows Platform, both of which constrain it to a very specific use case. Second, instead of exposing the COM based diagnostic APIs that are currently available in Chakra, ChakraCore will support a new set of modern diagnostic APIs, which will be platform agnostic and could be standardized or made interoperable across different implementations in the long run.
While the initial January release will be Windows-only, Microsoft wants to bring ChakraCore to other platforms in the future.