diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-08 23:25:10 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-08 23:25:10 +0900 |
commit | 5b2cf7d1fdb2a506a84336f97fa58aecab2b8374 (patch) | |
tree | 2c1da22a80ecb2f143478b718e9731883d90ae58 | |
parent | 09c97e92cb1a9aa011c0dcc40aac7ee2998a10c4 (diff) | |
download | translated-content-5b2cf7d1fdb2a506a84336f97fa58aecab2b8374.tar.gz translated-content-5b2cf7d1fdb2a506a84336f97fa58aecab2b8374.tar.bz2 translated-content-5b2cf7d1fdb2a506a84336f97fa58aecab2b8374.zip |
Global_Objects/WebAssembly/compile を更新 (#2253)
- Markdownに変換
- 2021/08/27 時点の英語版に同期
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/webassembly/compile/index.html | 97 | ||||
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/webassembly/compile/index.md | 72 |
2 files changed, 72 insertions, 97 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.html deleted file mode 100644 index 1cdf19f657..0000000000 --- a/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: WebAssembly.compile() -slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile -translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile ---- -<div>{{JSRef}} {{SeeCompatTable}}</div> - -<p><strong><code>WebAssembly.compile()</code></strong> 関数は WebAssembly バイナリコードから {{jsxref("WebAssembly.Module")}} にコンパイルします。この関数はモジュールをインスタンス化する前にコンパイルする必要がある時に便利です。(そうでなければ、 {{jsxref("WebAssembly.instantiate()")}} 関数の使用が推奨されます。</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">Promise<WebAssembly.Module> WebAssembly.compile(bufferSource);</pre> - -<h3 id="パラメータ">パラメータ</h3> - -<dl> - <dt><em>bufferSource</em></dt> - <dd>コンパイルする <a href="/ja/docs/Web/JavaScript/Typed_arrays">型付き配列</a> か <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer">ArrayBuffer</a> を含む .wasm モジュールのバイナリコード。</dd> -</dl> - -<h3 id="戻り値">戻り値</h3> - -<p>解決時にコンパイルされたモジュールを表す {{jsxref("WebAssembly.Module")}} オブジェクト渡す <code>Promise 。</code></p> - -<h3 id="例外">例外</h3> - -<ul> - <li><font face="Consolas, Liberation Mono, Courier, monospace">バイナリソースが</font> <a href="/ja/docs/Web/JavaScript/Typed_arrays">型付き配列</a> でない場合、 {{jsxref("TypeError")}} がスローされます。</li> - <li>コンパイルが失敗したとき、プロミスは {{jsxref("WebAssembly.CompileError")}} で棄却されます。</li> -</ul> - -<h2 id="例">例</h2> - -<p>以下の例では (Github上のデモ <a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/index-compile.html">index-compile.html</a> と <a href="https://mdn.github.io/webassembly-examples/js-api-examples/index-compile.html">動作例</a> をご確認ください) <code>compile()</code> 関数を使ってロードした simple.wasm のバイトコードをコンパイルして、その後 <a href="/ja/docs/Web/API/Worker/postMessage">postMessage()</a> を使って <a href="https://developer.mozilla.org/ja/docs/Web/API/Web_Workers_API">worker</a> に送信しています。</p> - -<pre class="brush: js">var worker = new Worker("wasm_worker.js"); - -fetch('simple.wasm').then(response => - response.arrayBuffer() -).then(bytes => - WebAssembly.compile(bytes) -).then(mod => - worker.postMessage(mod) -);</pre> - -<p>ワーカー内で (<code><a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/wasm_worker.js">wasm_worker.js</a> を参照</code>) モジュールで使用するためのインポートオブジェクトを定義して、メインスレッドからモジュールを受け取るためのイベントハンドラをセットアップします。モジュールを受け取ったとき、 {{jsxref("WebAssembly.Instantiate()")}} メソッドを使用してモジュールからインスタンスを生成します。内部からエクスポートされた関数を実行して、その後に {{jsxref("WebAssembly.Module/exports", "WebAssembly.Module.exports")}} プロパティを使用してモジュール上で利用可能なエクスポートに関する情報を確認する方法を示します。</p> - -<pre class="brush: 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(); - }); - - var exports = WebAssembly.Module.exports(mod); - console.log(exports[0]); -};</pre> - -<h2 id="仕様">仕様</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様</th> - <th scope="col">策定状況</th> - <th scope="col">コメント</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('WebAssembly JS', '#webassemblycompile', 'compile()')}}</td> - <td>{{Spec2('WebAssembly JS')}}</td> - <td>初回ドラフト定義。</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2> - -<div>{{Compat("javascript.builtins.WebAssembly.compile")}}</div> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li><a href="/ja/docs/WebAssembly">WebAssembly</a> overview page</li> - <li><a href="https://developer.mozilla.org/ja/docs/WebAssembly/Concepts">WebAssembly のコンセプト</a></li> - <li><a href="https://developer.mozilla.org/ja/docs/WebAssembly/Using_the_JavaScript_API">WebAssembly JavaScript API を使用する</a></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.md new file mode 100644 index 0000000000..0fb86c25d4 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/compile/index.md @@ -0,0 +1,72 @@ +--- +title: WebAssembly.compile() +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile +tags: + - API + - JavaScript + - Method + - Object + - Reference + - WebAssembly + - compile +browser-compat: javascript.builtins.WebAssembly.compile +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/compile +--- +{{JSRef}} + +**`WebAssembly.compile()`** 関数は WebAssembly バイナリーコードを {{jsxref("WebAssembly.Module")}} の形にコンパイルします。この関数は、モジュールをインスタンス化する前にコンパイルする必要がある場合に便利です (それ以外の場合は、 {{jsxref("WebAssembly.instantiate()")}} 関数を使用してください)。</p> + +## 構文 + +```js +WebAssembly.compile(bufferSource) +``` + +### 引数 + +- _bufferSource_ + - : コンパイルする .wasm モジュールのバイナリーコードを含む[型付き配列](/ja/docs/Web/JavaScript/Typed_arrays)または [`ArrayBuffer`](/ja/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) です。 + +### 返値 + +コンパイルされたモジュールを表す {{jsxref("WebAssembly.Module")}} オブジェクトに解決する `Promise` です。 + +### 例外 + +- `bufferSource` が[型付き配列](/ja/docs/Web/JavaScript/Typed_arrays)ではなかった場合、 {{jsxref("TypeError")}} が発生します。 +- コンパイルに失敗した場合、プロミスは {{jsxref("WebAssembly.CompileError")}} で拒否されます。 + +## 例 + +### compile の使用 + +次の例では、読み込まれた simple.wasm バイトコードを、 `compile()` 関数を使用してコンパイルし、[ワーカー](/ja/docs/Web/API/Web_Workers_API)に [postMessage()](/ja/docs/Web/API/Worker/postMessage) を用いて送信します。 + +```js +var worker = new Worker("wasm_worker.js"); + +fetch('simple.wasm').then(response => + response.arrayBuffer() +).then(bytes => + WebAssembly.compile(bytes) +).then(mod => + worker.postMessage(mod) +); +``` + +> **Note:** おそらく多くの場合は {{jsxref("WebAssembly.compileStreaming()")}} を使用したほうが `compile()` よりも効率的なのでそちらの方がいいでしょう。 + + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- [WebAssembly](/ja/docs/WebAssembly) 概要ページ +- [WebAssembly の概念](/ja/docs/WebAssembly/Concepts) +- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API) |