Introduction
JavaScript is a language of Web. This series of articles will talk about my observations learned during my decade of software development experience with JavaScript.
Before moving further let us look at the previous articles of the series:
- Voice of a Developer: JavaScript Data Types - Part One
- Voice of a Developer: JavaScript Objects - Part Two
- Voice of a Developer: JavaScript Engines - Part Three
- Voice of a Developer: JavaScript Common Mistakes - Part Four
- Voice of a Developer: Editors - Part Five
- Voice of a Developer: VSCode - Part Six
- Voice of a Developer: Debugging Capabilities of VSCode - Part Seven
- Voice of a Developer: JavaScript OOP - Part Eight
- Voice of a Developer: JavaScript Useful Reserved Keywords - Part Nine
- Voice of a Developer: JavaScript Functions - Part Ten
- Voice of a Developer: JavaScript Functions Invocations - Part Eleven
- Voice of a Developer: JavaScript Anonymous Functions - Part Twelve
- Voice of a Developer: JavaScript Pure And Impure Function - Part Thirteen
- Voice of a Developer: JavaScript Closures - Part Fourteen
- Voice of a Developer: JavaScript Currying - Part Fifteen
- Voice of a Developer: JavaScript Chaining - Part Sixteen
- Voice of a Developer: JavaScript Array Methods - Part Seventeen
- Voice of a Developer: JavaScript ECMAScript 6 - Part Eighteen
- Voice of a Developer: JavaScript ECMAScript 6 Features v1 - Part Nineteen
- Voice of a Developer: JavaScript ECMAScript 6 Features v2 - Part Twenty
- Voice of a Developer: JavaScript Web Workers - Part Twenty One
- Voice of a Developer: JavaScript JSLint v1 - Part Twenty-Two
- Voice of a Developer: JavaScript JSLint v2 - Part Twenty Three
- Voice of a Developer: XMLHttpRequest API - Part Twenty Four
- Voice of a Developer: Web Storage API - Part 25
- Voice of a Developer: Application Cache API - Part Twenty-Six
- Voice of a Developer: Javascript WebSocket - Part 27
- Voice of a Developer: Parse JSON - Part 28
- Voice of a Developer: Save Coding Time With Lodash.js - Part Twenty Nine
In this article, I am going to explore the new JavaScript Engine Chakra by Microsoft.
ChakraCore is a new JavaScript engine developed by Microsoft. It doesn’t support IE9. The cool thing about ChakraCore is that it is OSS (Open Source Software). ChakraCore is the core part of the Chakra JavaScript engine and source code is available at GitHub.
It is part of the Microsoft Edge browser and available for any developer as an open-source project.
Currently, NodeJS uses a V8 engine for compiling JavaScript source code to machine code instead of interpreting in real-time. Now with ChakraCore Microsoft is providing an alternative. Microsoft submitted a pull request to Node.js to work with ChakraCore.
Microsoft implemented a V8 API shim (aka ChakraShim) which takes advantage of ChakraCore runtime hosting APIs (JSRT). Many developers supported this as it is going to be big and awesome stuff. Node.js also welcomed this step that Microsoft coming closer to Node.js. We know Microsoft is an early adopter of Node.js.
"This pull request enables Node.js to optionally use the ChakraCore JavaScript engine," Gaurav Seth
The ChakraCore roadmap shows that they are planning to port to Linux, targeting x64 Ubuntu. However, it doesn’t talk about the MAC OSX platform. To read more detail please go to URL: https://github.com/Microsoft/ChakraCore/wiki/Roadmap
JSRT APIs provide a way to embed ChakraCore into applications. It is part of the Core project. Refer architecture diagram.
JavaScript engine using the JSRT APIs depends on two key concepts: runtime and execution contexts. It also allows embedding Chakra outside of client-only scenarios also,
ChakraCore
Alternate to the V8 engine
Roadmap
JSRT (JavaScript Runtime) APIs

- A runtime represents a complete JavaScript execution environment
- Execution contexts are tied to a particular runtime and execute code within that runtime.
- High-performance JavaScript engine
- Support Just-in-time (JIT) compilation of JavaScript
- Supports JSRT APIs which allows you to embed in your applications
Building ChakraCore
- Clone
- Open Build\Chakra.Core.sln in Visual Studio

- Build Solution
Kuppurasu NagarajPosted May 22, 2016, 5:20 AM
Nice Sharing..
Vignesh ManiPosted May 21, 2016, 9:26 AM
Nice one
Neeraj KumarPosted May 19, 2016, 7:15 AM
Nice Article
Debasis SahaPosted May 19, 2016, 6:26 AM
Good One..