aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2021-09-14 11:08:23 +0900
committerGitHub <noreply@github.com>2021-09-14 11:08:23 +0900
commit6c82813dfb8eabfec094f1926f898122214b81d9 (patch)
treed0e63933967bf87e5afc5a31681c28b7ddfae9ed
parent03385cc9f4f157cec2e5fd05f35e6af646055908 (diff)
downloadtranslated-content-6c82813dfb8eabfec094f1926f898122214b81d9.tar.gz
translated-content-6c82813dfb8eabfec094f1926f898122214b81d9.tar.bz2
translated-content-6c82813dfb8eabfec094f1926f898122214b81d9.zip
Global_Objects/WebAssembly を更新 (#2338)
- Markdownに変換 - 2021/09/01 時点の英語版に同期
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/index.html116
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/index.md87
2 files changed, 87 insertions, 116 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/index.html
deleted file mode 100644
index 721d647799..0000000000
--- a/files/ja/web/javascript/reference/global_objects/webassembly/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
----
-title: WebAssembly
-slug: Web/JavaScript/Reference/Global_Objects/WebAssembly
-tags:
- - API
- - JavaScript
- - Namespace
- - Object
- - Reference
- - WebAssembly
-translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly
----
-<div>{{JSRef}}{{SeeCompatTable}}</div>
-
-<p><strong><code>WebAssembly</code></strong> JavaScript オブジェクトは全ての <a href="/ja/docs/WebAssembly">WebAssembly</a> に関連する機能の名前空間として振る舞います。</p>
-
-<p>他のグローバルオブジェクトとは異なり、<code>WebAssembly</code> はコンストラクタではありません (関数オブジェクトではない) 。数学定数、関数の名前空間である {{jsxref("Math")}} や 、国際化コンストラクタと他の言語に依存する関数のための {{jsxref("Intl")}} と同等のものです。</p>
-
-<h2 id="概要">概要</h2>
-
-<p><code>WebAssembly</code> オブジェクトの主な用途は次のとおりです:</p>
-
-<ul>
- <li>{{jsxref("WebAssembly.instantiate()")}} 関数を用いて WebAssembly コードをロードします。</li>
- <li>{{jsxref("WebAssembly.Memory()")}}/{{jsxref("WebAssembly.Table()")}} コンストラクタ経由で新しいメモリやテーブルを生成します。</li>
- <li>{{jsxref("WebAssembly.CompileError()")}}/{{jsxref("WebAssembly.LinkError()")}}/{{jsxref("WebAssembly.RuntimeError()")}} コンストラクタを経由して、WebAssembly で発生するエラーを処理する機能を提供します、</li>
-</ul>
-
-<h2 id="メソッド">メソッド</h2>
-
-<dl>
- <dt>{{jsxref("WebAssembly.instantiate()")}}</dt>
- <dd>WebAssembly コードをコンパイル、インスタンス化するための主要な API で、 <code>Module</code> と、その最初の <code>Instance</code> を返します。</dd>
- <dt>{{jsxref("WebAssembly.instantiateStreaming()")}}</dt>
- <dd>ソースのストリームから直接 WebAssembly モジュールをコンパイル、インスタンス化し、 <code>Module</code> と、その最初の <code>Instance</code> を返します。</dd>
- <dt>{{jsxref("WebAssembly.compile()")}}</dt>
- <dd>{{jsxref("WebAssembly.Module")}} を用いて WebAssembly バイナリコードからコンパイルします。インスタンス化は別ステップとして分離されます。</dd>
- <dt>{{jsxref("WebAssembly.compileStreaming()")}}</dt>
- <dd>ソースのストリームから直接 {{jsxref("WebAssembly.Module")}} にコンパイルします。インスタンス化は別ステップとして分離されます。</dd>
- <dt>{{jsxref("WebAssembly.validate()")}}</dt>
- <dd>WebAssembly バイナリコードの型付き配列を検証し、バイト列が有効な WebAssembly コードか (<code>true</code>) 否か (<code>false</code>) を返します。</dd>
-</dl>
-
-<h2 id="コンストラクタ">コンストラクタ</h2>
-
-<dl>
- <dt>{{jsxref("WebAssembly.Module()")}}</dt>
- <dd>新しい WebAssembly <code>Module</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.Instance()")}}</dt>
- <dd>新しい WebAssembly <code>Instance</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.Memory()")}}</dt>
- <dd>新しい WebAssembly <code>Memory</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.Table()")}}</dt>
- <dd>新しい WebAssembly <code>Table</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.CompileError()")}}</dt>
- <dd>新しい WebAssembly <code>CompileError</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.LinkError()")}}</dt>
- <dd>新しい WebAssembly <code>LinkError</code> オブジェクトを生成します。</dd>
- <dt>{{jsxref("WebAssembly.RuntimeError()")}}</dt>
- <dd>新しい WebAssembly <code>RuntimeError</code> オブジェクトを生成します。</dd>
-</dl>
-
-<h2 id="例">例</h2>
-
-<p>fetch を使用して WebAssembly バイトコードをフェッチした後、{{jsxref("WebAssembly.instantiate()")}} 関数を使用してモジュールをコンパイル、インスタンス化します。その過程で、WebAssembly モジュールに JavaScript の関数をインポートします。このプロミスは解決時に <code><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module">Module</a></code> と <code><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance">Instance</a></code> を含むオブジェクト (<code>result</code>) を渡します。次に、<code>Instance</code> からエクスポートされている <a href="/ja/docs/WebAssembly/Exported_functions">エクスポートされた WebAssembly 関数</a> を呼び出します。</p>
-
-<pre class="brush: js notranslate">var importObject = {
- imports: {
- imported_func: function(arg) {
- console.log(arg);
- }
- }
-};
-
-fetch('simple.wasm').then(response =&gt;
-  response.arrayBuffer()
-).then(bytes =&gt;
-  WebAssembly.instantiate(bytes, importObject)
-).then(result =&gt;
-  result.instance.exports.exported_func()
-);</pre>
-
-<div class="note">
-<p><strong>注</strong>: GitHub上の例 (<a href="https://mdn.github.io/webassembly-examples/js-api-examples/">動作例</a>) の<a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/index.html">index.html</a>では、我々で定義した <code><a href="https://github.com/mdn/webassembly-examples/blob/master/wasm-utils.js#L1">fetchAndInstantiate()</a></code> ライブラリ関数を使用しています。</p>
-</div>
-
-<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', '#the-webassembly-object', 'WebAssembly')}}</td>
- <td>{{Spec2('WebAssembly JS')}}</td>
- <td>初回ドラフト定義。</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
-
-<div>{{Compat("javascript.builtins.WebAssembly")}}</div>
-
-<h2 id="関連情報">関連情報</h2>
-
-<ul>
- <li><a href="/ja/docs/WebAssembly">WebAssembly</a> overview page</li>
- <li><a href="/ja/docs/WebAssembly/Concepts">WebAssembly のコンセプト</a></li>
- <li><a href="/ja/docs/WebAssembly/Using_the_JavaScript_API">WebAssembly JavaScript API を使用する</a></li>
-</ul>
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/index.md
new file mode 100644
index 0000000000..700baceb0b
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/index.md
@@ -0,0 +1,87 @@
+---
+title: WebAssembly
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly
+tags:
+ - API
+ - JavaScript
+ - Namespace
+ - Object
+ - Reference
+ - WebAssembly
+browser-compat: javascript.builtins.WebAssembly
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly
+---
+{{JSRef}}
+
+**`WebAssembly`** は JavaScript のオブジェクトで、 [WebAssembly](/ja/docs/WebAssembly) に関するすべての機能の名前空間の役割をします。
+
+他のグローバルオブジェクトとは異なり、 `WebAssembly` はコンストラクターではありません (関数オブジェクトではありません) 。数学の定数や関数の名前空間である {{jsxref("Math")}} や 、国際化のコンストラクターやその他の言語を意識した関数ための {{jsxref("Intl")}} と同様のものです。
+
+## 概要
+
+`WebAssembly` オブジェクトの主な用途は次のとおりです。
+
+- {{jsxref("WebAssembly.instantiate()")}} 関数を用いた WebAssembly コードの読み込み。
+- {{jsxref("WebAssembly.Memory()")}}/{{jsxref("WebAssembly.Table()")}} コンストラクターによる新しいメモリーやテーブルインスタンスの生成。
+- {{jsxref("WebAssembly.CompileError()")}}/{{jsxref("WebAssembly.LinkError()")}}/{{jsxref("WebAssembly.RuntimeError()")}} コンストラクターによる、WebAssembly で発生するエラーの処理する機能の提供。
+
+## コンストラクタープロパティ
+
+- [`WebAssembly.CompileError()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/CompileError/CompileError)
+ - : WebAssembly のデコードまたは検証中のエラーを示します。
+- [`WebAssembly.Global()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/Global)
+ - : グローバル変数のインスタンスを表し、 JavaScript からアクセス可能で、 1 つ以上の {{jsxref("WebAssembly.Module")}} インスタンスの間でインポート/エクスポート可能です。これにより、複数のモジュールを動的リンクすることができます。
+- [`WebAssembly.Instance()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance/Instance)
+ - : ステートフルで、実行可能な [WebAssembly.Module](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module) のインスタンスです。
+- [`WebAssembly.LinkError()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/LinkError/LinkError)
+ - : (関数開始後の[トラップ](https://webassembly.org/docs/semantics/#traps)ではなく) モジュールの初期化時に発生したエラーを示します。
+- [`WebAssembly.Memory()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/Memory)
+ - : {{jsxref("WebAssembly/Memory/buffer","buffer")}} プロパティが可変長の [ArrayBuffer](/ja/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) であり、これが WebAssembly の `Instance` からアクセス可能なメモリーのバイト列を保持しています。
+- [`WebAssembly.Module()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module/Module)
+ - : ステートレスの WebAssembly のコードであり、ブラウザーでコンパイルされ、効率的に[ワーカーと共有](/ja/docs/Web/API/Worker/postMessage)することができ、複数回インスタンス化することができます。
+- [`WebAssembly.RuntimeError()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/RuntimeError/RuntimeError)
+ - : WebAssembly が[トラップ](https://webassembly.org/docs/semantics/#traps)を指定するたびに例外として発生するエラー型です。
+- [`WebAssembly.Table()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Table/Table)
+ - : WebAssembly のテーブルを表す配列風の構造で、関数の参照を保持します。
+
+## 静的メソッド
+
+- {{jsxref("WebAssembly.instantiate()")}}
+ - : WebAssembly コードをコンパイル、インスタンス化するための主要な API で、 `Module` と、その最初の `Instance` を返します。
+- {{jsxref("WebAssembly.instantiateStreaming()")}}
+ - : ソースのストリームから直接 WebAssembly モジュールをコンパイル、インスタンス化し、 `Module` と、その最初の `Instance` を返します。
+- {{jsxref("WebAssembly.compile()")}}
+ - : {{jsxref("WebAssembly.Module")}} を用いて WebAssembly バイナリコードからコンパイルします。インスタンス化は別ステップとして分離されます。
+- {{jsxref("WebAssembly.compileStreaming()")}}
+ - : ソースのストリームから直接 {{jsxref("WebAssembly.Module")}} にコンパイルします。インスタンス化は別ステップとして分離されます。
+- {{jsxref("WebAssembly.validate()")}}
+ - : WebAssembly バイナリコードの型付き配列を検証し、バイト列が有効な WebAssembly コードか (`true`) 否か (`false`) を返します。
+
+## 例
+
+## .wasm モジュールを読み込み、コンパイルし、インスタンス化する
+
+次の例 (GitHub 上の [instantiate-streaming.html](https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/instantiate-streaming.html) のデモと、[動作例](https://mdn.github.io/webassembly-examples/js-api-examples/instantiate-streaming.html)も参照) は、基礎となるソースから .wasm モジュールを直接ストリーミングし、コンパイルしてインスタンス化し、 `ResultObject` で履行されるプロミスを返します。 `instantiateStreaming()` 関数は [`Response`](/ja/docs/Web/API/Response "Response は Fetch API のインターフェイスで、リクエストのレスポンスを表します。") オブジェクトのプロミスを受け付けるので、 [`fetch()`](/ja/docs/Web/API/fetch) の呼び出し結果を直接渡すと、履行されたときにレスポンスを関数に渡すことができます。
+
+```js
+var importObject = { imports: { imported_func: arg => console.log(arg) } };
+
+WebAssembly.instantiateStreaming(fetch('simple.wasm'), importObject)
+.then(obj => obj.instance.exports.exported_func());
+```
+
+それから `ResultObject` の instance メンバーにアクセスすると、呼び出し対象のエクスポートされた関数が入っています。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) 概要ページ
+- [WebAssembly の概念](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)