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という名前でオープンソース化した。
脚注
![]()
![]()
![]()
![]()