共同発表においてMicrosoft, Google, Mozillaは、それぞれのブラウザでWebAssembly機能を公表するブログ投稿を公開した。
このコラボレーションはWebAssemblyバイナリフォーマットの標準化に必要なステップであることを表している。各ベンダーは、フォーマットと方向性についてよりよい議論をすることになる。
ベンダーのWebAssemblyは彼らのasm.js実装の上で動作する。asm.jsと同様に、WebAssemblyは"メモリセーフ、サンドボックス実行環境"を提供する。asm.jsとは違い、同等のWebAssemblyバイナリははるかに小さく、JavaScriptを解析する必要がなくなる。ブラウザはバイナリ表現をネイティブに解析でき、はるかに高速である。 Fluent 2016 ConferenceキーノートにおいてBrendan Eich氏は、"JavaScriptにはできない安全で、高速な、自己検証コードであり、ある時点でWebAssemblyは、安全で、Webのためのネイティブフォーマットになる。"と説明した。
GoogleのV8の発表でSeth Thompson氏は以下のように話した:
V8のWebAssembly実装は、既存のJavaScript仮想マシンインフラストラクチャ、特にTurboFanコンパイラを再利用するように設計されている。デコーダーは、様々な最適化パスで処理されるTurboFanグラフを生成して、最終的には、最適化されたJavaScriptとasm.jsのために生成されたマシンコードと同じバックエンドによってマシンコードに変換される。
MozillaキャンプからWebAssembly W3C Community Groupの議長であるLuke Wagner氏は言う:
Firefoxでは、WebWebAssemblyのバイナリーフォーマットに使うために、asm.jsコード表現をメイン構文解析スレッドからバックグラウンドコンパイラスレッドに送信する既存のasm.js最適化パイプラインをリファクタリングした。
WebAssemblyアプリのデモとして、Edge内部のゲームプレイのビデオがhttp://webassembly.github.io/demo/下で提供されている:
実験的な機能を有効にするには:
- Chrome: Canary 51.0.2677.0以上で
chrome://flags#enable-webassembly
フラグを有効にする - Firefox: 最新のナイトリービルドで
javascript.options.wasm
をtrue
にセットする
EdgeはWebAssemblyをサポートするが現時点ではMicrosoft内部ビルドのみであり、WebKitの実装はまだ開発中である。
Rate this Article
- Editor Review
- Chief Editor Action