AppleのSafariはWebAssemblyを完全にサポートした。これは将来のECMAScriptモジュールとスレッドの統合準備も含んでいる。
AppleはWebKitにWebAssemblyの完全なサポートを追加し、Safariが他言語で書かれたコードを実行できるよう拡張している。WebKitはWebAssemblyをx86とx64、ARM 64プラットフォームでサポートする。
WebAssemblyはブラウザ内でJavaScriptとして使えるので、WebKitはそれを動作させるために既存のJavaScriptの機能を再利用している。たとえば、WebAssembly.Instance
APIはブラウザですでにサポートされているECMAScriptモジュールを使って実装されている。それが要望されている機能となったときの、JavaScriptモジュールとの統合手段を準備している。また、WebAssemblyのWebKitでの実装はスレッドのサポートを追加するときの準備のためにスレッドセーフとなっている。この機能はChromeもロードマップに持っている。
ツールがコードをWebAssemblyにコンパイルするとき、さまざまなパフォーマンスの最適化をすでにやっている。しかしWebKitはもう2つ最適化の層を追加する。即時バイトコード構築(BBQ)と最適化された機械語ジェネレータ(OMG)だ。両者ともB3 JITをベースにしている。これはWebKitがJavaScriptコードを調整するために使っているものだ。AppleのエンジニアによるとBBQはOMGより4倍速いが、生じたコードは2倍遅い。BBQはすばやくコードを実行するために使い、OMGはホットコードに使う。後者は速度が重要なコード部分へより深い最適化を実行する。
WebAssemblyはSafari Technology Previewのリリース32で利用できる。ChromeとFirefoxは3月にWebAssemblyの完全なサポートを追加した。Microsoft Edgeは全プラットフォームのプレビューモードにWebAssemblyがある。デスクトップとモバイル、Xbox、複合現実向けだ。
Rate this Article
- Editor Review
- Chief Editor Action