Chakra

Chakra（チャクラ）はマイクロソフトのウェブブラウザとWindowsランタイム上のアプリケーションで使用されるJavaScriptエンジンのコードネームである。

Internet ExplorerのHTMLレンダリングエンジンであるTridentがMicrosoft Edge用にEdgeHTMLとしてフォークされたのと同じく、Chakraもまたフォークされ、Internet Explorer用は従来通りJScript9.dll、Microsoft Edge用にChakra.dllと分離されている。

 歴史 
 JScript9.dll 
Internet ExplorerのJavaScriptエンジンである。JavaScript互換エンジンであるJScriptに代わる新しいJavaScriptエンジンとしてInternet Explorer 9から搭載された。
Internet Explorer開発終了に伴い、保守のみ行われている。

 バージョン 9.0 
Internet Explorer 9に含まれるバージョンである。32 ビット版Chakraと 64 ビット版Chakraでは機能差があり、64 ビット版にはJIT コンパイラが含まれておらず、性能差がでた。
競合相手であるWebKitの開発者が開発したベンチマーク スイートのSunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、32 ビット版での比較でInternet Explorer 7のJScript 5.7では約50倍、Internet Explorer 8のJScript 5.8より約18倍の処理速度が向上した。
機能強化点
 処理の遅延化や回避、アイドル時間の活用、処理並列化
 複数のCPUコアを利用した並列実行の対応や高速に処理可能なCPU命令の使用（SSE2など）
 インタプリタの改善
 インラインキャッシュの導入
 Internet ExplorerへJavaScriptエンジンの統合
 COMを使用してのDOMバインド処理を廃止
 JavaScriptエンジン側のDOMとInternet Explorer側のDOMへ統合し単一DOM化
 デッドコード削除
 ECMAScript 5の対応

 バージョン 10.0 
Internet Explorer 10に含まれるバージョンである。
Windows 8およびWindows RTと同じくWindowsの新しいAPIとして発表されたWindowsランタイム上に構築されるWindows ストアアプリのJavaScriptエンジンとしても使用されている。
Chakra 9.0にはあった32ビット版と64ビット版の性能差はなくなり、ARMアーキテクチャも同等品質のものが発表された。
SunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、Chakra 9.0より25%処理速度が向上した。
機能強化点
 64ビット版に対応
 ARMアーキテクチャに対応
 ECMAScript 5.0 Strict Modeの対応
 型指定された配列の強化
 JITコンパイラの改善
 ガベージコレクションの改善
 浮動小数点演算の高速化

 バージョン 11.0 
Internet Explorer 11に含まれるバージョンである。
SunSpider JavaScript Benchmarkを使用したパフォーマンス比較では、Chakra 10.0より9%処理速度が向上した。
機能強化点
 型指定された配列の強化
 コードのインストルメント化
 JavaScript拡張機能
 ブロック スコープ (let, const) の対応
 コンテナ オブジェクト (Set, Map, WeakMap) の対応
 __proto__プロパティの対応
 ECMAScript Internationalization APIの対応

 Chakra.dll
Microsoft EdgeのJavaScriptエンジンである。Windows 10 Insider Previewにてアップデート プレビュー版が定期的に公開されており、Windows 10のアップデートで定期的にChakraのアップデートが行われている。

ECMAScript 6の仕様準拠や、WebRTC、asm.jsなどの対応が行われている。

 ChakraCore 
マイクロソフトがChakraをウェブブラウザなどから分離した純粋なJavaScriptエンジンとしてGitHubでChakraCoreという名前でオープンソース化した。

 脚注 

Category:マイクロソフトのソフトウェア
Category:JavaScript