HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2017年10月.
* Some parts of this feature may have varying levels of support.
WebAssembly は JavaScript のオブジェクトで、 WebAssembly に関するすべての機能の名前空間の役割をします。
WebAssembly
他のグローバルオブジェクトとは異なり、 WebAssembly はコンストラクターではありません (関数オブジェクトではありません) 。数学の定数や関数の名前空間である Math や 、国際化のコンストラクターやその他の言語を意識した関数ための Intl と同様のものです。
Math
Intl
WebAssembly オブジェクトの主な用途は次のとおりです。
WebAssembly.instantiate()
WebAssembly.Memory()
WebAssembly.Table()
WebAssembly.CompileError()
WebAssembly.LinkError()
WebAssembly.RuntimeError()
WebAssembly のデコードまたは検証中のエラーを示します。
WebAssembly.Global()
グローバル変数のインスタンスを表し、 JavaScript からアクセス可能で、 1 つ以上の WebAssembly.Module インスタンスの間でインポート/エクスポート可能です。これにより、複数のモジュールを動的リンクすることができます。
WebAssembly.Module
WebAssembly.Instance()
ステートフルで、実行可能な WebAssembly.Module のインスタンスです。
(関数開始後のトラップではなく) モジュールの初期化時に発生したエラーを示します。
buffer プロパティが可変長の ArrayBuffer であり、これが WebAssembly の Instance からアクセス可能なメモリーのバイト列を保持しています。
buffer
Instance
WebAssembly.Module()
ステートレスの WebAssembly のコードであり、ブラウザーでコンパイルされ、効率的にワーカーと共有することができ、複数回インスタンス化することができます。
WebAssembly がトラップを指定するたびに例外として発生するエラー型です。
WebAssembly のテーブルを表す配列風の構造で、関数の参照を保持します。
WebAssembly コードをコンパイル、インスタンス化するための主要な API で、 Module と、その最初の Instance を返します。
Module
WebAssembly.instantiateStreaming()
ソースのストリームから直接 WebAssembly モジュールをコンパイル、インスタンス化し、 Module と、その最初の Instance を返します。
WebAssembly.compile()
WebAssembly.Module を用いて WebAssembly バイナリーコードからコンパイルします。インスタンス化は別ステップとして分離されます。
WebAssembly.compileStreaming()
ソースのストリームから直接 WebAssembly.Module にコンパイルします。インスタンス化は別ステップとして分離されます。
WebAssembly.validate()
WebAssembly バイナリーコードの型付き配列を検証し、バイト列が有効な WebAssembly コードか (true) 否か (false) を返します。
true
false
次の例 (GitHub 上の instantiate-streaming.html のデモと、動作例も参照) は、基礎となるソースから .wasm モジュールを直接ストリーミングし、コンパイルしてインスタンス化し、 ResultObject で履行されるプロミスを返します。 instantiateStreaming() 関数は Response オブジェクトのプロミスを受け付けるので、 fetch() の呼び出し結果を直接渡すと、履行されたときにレスポンスを関数に渡すことができます。
ResultObject
instantiateStreaming()
Response
fetch()
var importObject = { imports: { imported_func: (arg) => console.log(arg) } }; WebAssembly.instantiateStreaming(fetch("simple.wasm"), importObject).then( (obj) => obj.instance.exports.exported_func(), );
それから ResultObject の instance メンバーにアクセスすると、呼び出し対象のエクスポートされた関数が入っています。
Enable JavaScript to view this browser compatibility table.