← 返回首页
WebAssembly.Module - WebAssembly | MDN

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

WebAssembly.Module

Baseline 広く利用可能 *

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2017年10月以降、すべてのブラウザーで利用可能です。

* この機能の一部は、対応レベルが異なる場合があります。

WebAssembly.Module オブジェクトには、ブラウザーでコンパイルされたステートレスな WebAssembly コードが含まれています。これを効率的にワーカー間で共有したり、複数回インスタンス化したりすることができます。

目次

コンストラクター

WebAssembly.Module()

新しい Module オブジェクトを生成します。

静的プロパティ

WebAssembly.Module.customSections()

Module と文字列を指定すると、モジュール内の与えられた文字列を名前に持つすべてのカスタムセクションの内容を返します。

WebAssembly.Module.exports()

Module を指定すると、エクスポート宣言の情報を配列として返します。

WebAssembly.Module.imports()

Module を指定すると、インポート宣言の情報を配列として返します。

コンパイル済みのモジュールをワーカーに送信

以下の例では (GitHub 上の index-compile.html および実行例も参照)、読み込まれた simple.wasm のバイトコードを WebAssembly.compileStreaming() メソッドでコンパイルし、結果の Module インスタンスをワーカーへ、 postMessage() を使用して送信します。

js
var worker = new Worker("wasm_worker.js"); WebAssembly.compileStreaming(fetch("simple.wasm")).then((mod) => worker.postMessage(mod), );

ワーカー内では (wasm_worker.js を参照)、モジュールを使用するための import オブジェクトを定義し、メインスレッドからモジュールを受け取るためのイベントハンドラーをセットアップします。モジュールを受け取ったら、 WebAssembly.instantiate() メソッドを使ってインスタンスを作成し、その中からエクスポートされた関数を呼び出します。

js
var importObject = { imports: { imported_func: function (arg) { console.log(arg); }, }, }; onmessage = function (e) { console.log("module received from main thread"); var mod = e.data; WebAssembly.instantiate(mod, importObject).then(function (instance) { instance.exports.exported_func(); }); };

仕様書

仕様書
WebAssembly JavaScript Interface
# modules

ブラウザーの互換性

ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。

関連情報