aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/global_objects/webassembly/global
diff options
context:
space:
mode:
authorMasahiro FUJIMOTO <mfujimot@gmail.com>2021-09-09 20:08:51 +0900
committerGitHub <noreply@github.com>2021-09-09 20:08:51 +0900
commit7144ca0458a33571ade432951827e61443d85ff5 (patch)
treefb25736d410c7513a6c70f3408ab158db0ccdc93 /files/ja/web/javascript/reference/global_objects/webassembly/global
parent4047ed2d96fd9426e9726e96d7d6a7ad46166eed (diff)
downloadtranslated-content-7144ca0458a33571ade432951827e61443d85ff5.tar.gz
translated-content-7144ca0458a33571ade432951827e61443d85ff5.tar.bz2
translated-content-7144ca0458a33571ade432951827e61443d85ff5.zip
Global_Objects/WebAssembly/Global を更新 (#2295)
- Markdownに変換 - 2021/08/31 時点の英語版に同期 - Global コンストラクターは新規翻訳
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects/webassembly/global')
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/global/global/index.md84
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/global/index.html118
-rw-r--r--files/ja/web/javascript/reference/global_objects/webassembly/global/index.md87
3 files changed, 171 insertions, 118 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/global/global/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/global/global/index.md
new file mode 100644
index 0000000000..116ea04f15
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/global/global/index.md
@@ -0,0 +1,84 @@
+---
+title: WebAssembly.Global() コンストラクター
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/Global
+tags:
+ - Constructor
+ - JavaScript
+ - Reference
+ - WebAssembly
+browser-compat: javascript.builtins.WebAssembly.Global.Global
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/Global
+---
+{{JSRef}}
+
+**`WebAssembly.Global()`** コンストラクターは、グローバル変数のインスタンスを表す新しい `Global` オブジェクトを表し、これは JavaScript からアクセス可能で、 1 つ以上の {{jsxref("WebAssembly.Module")}} インスタンスの間でインポート/エクスポート可能です。これにより、複数のモジュールを動的リンクすることができます。
+
+## 構文
+
+```js
+new WebAssembly.Global(descriptor, value)
+```
+
+### 引数
+
+- _descriptor_
+
+ - : `GlobalDescriptor` 辞書オブジェクトで、 2 つのプロパティを持っています。
+
+ - `value`: [`USVString`](/ja/docs/Web/API/USVString) で、そのグローバル変数のデータ型を表します。これは `i32`、`i64`、`f32`、`f64` のいずれかです。 USVString は Unicode のスカラー値の取りうる並びに相当します。 USVString は JavaScript で返されたときに、 String にマップされます。一般的に、テキスト処理を行い、操作するために Unicode スカラー値の文字列を必要とする API にのみ使用されます。 USVString は、対になっていないサロゲートコードポイントを許可しないことを除いて、 DOMString と同等です。 USVString に存在する対になっていないサロゲートコードポイントは、ブラウザーが Unicode の「置換文字」 U+FFFD, (�) に変換されます。
+ - `mutable`: 論理値で、そのグローバル変数が変更可能であるかどうかを表します。既定では `false` です。
+
+- _value_
+ - : 変数が保持する値です。変数のデータ型に合う限りどんな値でも取れます。もしも何の値も渡されないと、[`DefaultValue`
+ アルゴリズム](https://webassembly.github.io/spec/js-api/#defaultvalue)で指定した時のように、型付きの 0 が使われます。
+
+## 例
+
+### 新しい Global インスタンスの生成
+
+以下の例は、 `WebAssembly.Global()` コンストラクターを用いて生成された新しいグローバルインスタンスです。これは変更可能 (mutable) な `i32` 型で、値は 0 です。
+
+その後、グローバルの値は、まず `Global.value` プロパティを使用して `42` に変更され、次に `global.wasm` モジュールからエクスポートされた `incGlobal()` 関数を使用して 43 に変更されます (これは、与えられた値に 1 を追加してから新しい値を返します)。
+
+```js
+const output = document.getElementById('output');
+
+function assertEq(msg, got, expected) {
+ output.innerHTML += `Testing ${msg}: `;
+ if (got !== expected)
+ output.innerHTML += `FAIL!<br>Got: ${got}<br>Expected: ${expected}<br>`;
+ else
+ output.innerHTML += `SUCCESS! Got: ${got}<br>`;
+}
+
+assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function");
+
+const global = new WebAssembly.Global({value:'i32', mutable:true}, 0);
+
+WebAssembly.instantiateStreaming(fetch('global.wasm'), { js: { global } })
+.then(({instance}) => {
+ assertEq("getting initial value from wasm", instance.exports.getGlobal(), 0);
+ global.value = 42;
+ assertEq("getting JS-updated value from wasm", instance.exports.getGlobal(), 42);
+ instance.exports.incGlobal();
+ assertEq("getting wasm-updated value from JS", global.value, 43);
+});
+```
+
+> **Note:** この例は[GitHub 上の実行例](https://mdn.github.io/webassembly-examples/js-api-examples/global.html)で確認できます。また、[ソースコード](https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/global.html)も参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) overview page
+- [WebAssembly concepts](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)
+- [Import/Export
+ mutable globals proposal](https://github.com/WebAssembly/mutable-global/blob/master/proposals/mutable-global/Overview.md)
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/global/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/global/index.html
deleted file mode 100644
index 16817b0777..0000000000
--- a/files/ja/web/javascript/reference/global_objects/webassembly/global/index.html
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: WebAssembly.Global
-slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global
-tags:
- - API
- - Constructor
- - JavaScript
- - Reference
- - WebAssembly
- - global
-translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global
----
-<div>{{JSRef}}</div>
-
-<p><strong><code>WebAssembly.Global</code></strong> はグローバル変数として存在し、JavaScript または {{jsxref("WebAssembly.Module")}} インスタンスから参照することができます。これにより動的に複数のモジュールをリンクすることができます。</p>
-
-<h2 id="Constructor_Syntax" name="Constructor_Syntax">コンストラクターの文法</h2>
-
-<pre class="syntaxbox">var myGlobal = new WebAssembly.Global(<em>descriptor</em>, <em>value</em>);</pre>
-
-<h3 id="Parameters" name="Parameters">パラメーター</h3>
-
-<dl>
- <dt><em>descriptor</em></dt>
- <dd><code>GlobalDescriptor</code> 辞書オブジェクト、2 つの要素を持っている:
- <ul>
- <li><code>value</code>: {{domxref("USVString")}} はグローバルデータ形式を表し値として <code>i32</code>、<code>i64</code>、<code>f32</code>、<code>f64</code> のうち一つを取ります。</li>
- <li><code>mutable</code>: グローバルがミュータブルかどうかの真偽値です。デフォルトでは <code>false</code> です。</li>
- </ul>
- </dd>
- <dt><em>value</em></dt>
- <dd>変数が保持する値です。変数のデータ型に合う限りどんな値でも取れます。もしも何の値も渡されないと、<a href="https://webassembly.github.io/spec/js-api/#defaultvalue"><code>DefaultValue</code> algorithm</a> で指定した時の様な 型ありの 0 が使われます。</dd>
-</dl>
-
-<h2 id="Function_properties_of_the_Global_constructor" name="Function_properties_of_the_Global_constructor">グローバルコンストラクターによる関数プロパティ</h2>
-
-<p>無し</p>
-
-<h2 id="Global_instances" name="Global_instances">グローバルインスタンス</h2>
-
-<p>すべてのグローバルインスタンスは <code>Global()</code> コンストラクターのプロパティオブジェクトを受け継ぐ — これによりすべての <code>Global</code> インスタンスを変更できる</p>
-
-<h3 id="Instance_properties" name="Instance_properties">インスタンスプロパティ</h3>
-
-<p>{{page('/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Properties')}}</p>
-
-<h3 id="Instance_methods" name="Instance_methods">インスタンスメソッド</h3>
-
-<p>{{page('/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Methods')}}</p>
-
-<h2 id="Examples" name="Examples">例</h2>
-
-<p>以下の例では新しいグローバルインスタンスは <code>WebAssembly.Global()</code> コンストラクターを用いて初期化され、初期値 0 のミュータブルな <code>i32</code> 型として定義されます。</p>
-
-<p>その後この値は、<code>Global.value</code> プロパティを使うことによって <code>42</code> に、<code>global.wasm</code> モジュールから公開された <code>incGlobal()</code> 関数 (入力に限らず 1 を加算する) を使うことによって <code>43</code> になります。</p>
-
-<pre class="brush: js">const output = document.getElementById('output');
-
-function assertEq(msg, got, expected) {
- output.innerHTML += `Testing ${msg}: `;
- if (got !== expected)
- output.innerHTML += `FAIL!&lt;br&gt;Got: ${got}&lt;br&gt;Expected: ${expected}&lt;br&gt;`;
- else
- output.innerHTML += `SUCCESS! Got: ${got}&lt;br&gt;`;
-}
-
-assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function");
-
-const global = new WebAssembly.Global({value:'i32', mutable:true}, 0);
-
-WebAssembly.instantiateStreaming(fetch('global.wasm'), { js: { global } })
-.then(({instance}) =&gt; {
- assertEq("getting initial value from wasm", instance.exports.getGlobal(), 0);
- global.value = 42;
- assertEq("getting JS-updated value from wasm", instance.exports.getGlobal(), 42);
- instance.exports.incGlobal();
- assertEq("getting wasm-updated value from JS", global.value, 43);
-});</pre>
-
-<div class="note">
-<p><strong>メモ</strong>: <a href="https://mdn.github.io/webassembly-examples/js-api-examples/global.html">GitHub 上で動くデモ</a>が試せます。<a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/global.html">ソースコード</a>も確認してみてください。</p>
-</div>
-
-<h2 id="Specifications" name="Specifications">仕様</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', '#globals', 'WebAssembly.Global()')}}</td>
- <td>{{Spec2('WebAssembly JS')}}</td>
- <td>初回ドラフト定義</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2>
-
-<div>
-
-
-<p>{{Compat("javascript.builtins.WebAssembly.Global")}}</p>
-</div>
-
-<h2 id="See_also" name="See_also">参考</h2>
-
-<ul>
- <li><a href="/ja/docs/WebAssembly">WebAssembly</a> 概要ページ</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>
- <li><a href="https://github.com/WebAssembly/mutable-global/blob/master/proposals/mutable-global/Overview.md">Import/Export mutable globals proposal</a></li>
-</ul>
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/global/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/global/index.md
new file mode 100644
index 0000000000..68b78bdb66
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/global/index.md
@@ -0,0 +1,87 @@
+---
+title: WebAssembly.Global
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global
+tags:
+ - Class
+ - JavaScript
+ - Reference
+ - WebAssembly
+browser-compat: javascript.builtins.WebAssembly.Global
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global
+---
+{{JSRef}}
+
+**`WebAssembly.Global`** はグローバル変数のインスタンスを表します。 JavaScript からアクセスでき、1つ以上の {{jsxref("WebAssembly.Module")}} インスタンス間でインポート/エクスポートすることができます。これにより複数のモジュールを動的にリンクすることができます。
+
+## コンストラクター
+
+- [`WebAssembly.Global()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/Global)
+ - : 新しい `Global` オブジェクトを生成します。
+
+## Global のインスタンス
+
+すべての `Global` のインスタンスは `Global()` コンストラクターのプロパティオブジェクトを継承します。これによりすべての `Global` インスタンスを変更することができます。
+
+### インスタンスプロパティ
+
+- `Global.prototype.constructor`
+ - : このオブジェクトのインスタンスを生成した関数を返します。既定では、これは {{jsxref("WebAssembly.Global()")}} コンストラクターです。
+- `Global.prototype[@@toStringTag]`
+ - : [@@toStringTag](/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag) プロパティの初期値で、文字列値 "WebAssembly.Global" です。
+- `Global.prototype.value`
+ - : グローバル変数の中に含まれている値です。これにより、グローバル値を直接設定および取得することができます。
+
+### インスタンスメソッド
+
+- `Global.prototype.valueOf()`
+ - : グローバル変数の中に含まれている値を返す古い形のメソッドです。
+
+## 例
+
+### 新しい Global インスタンスの生成
+
+以下の例では新しいグローバルインスタンスは `WebAssembly.Global()` コンストラクターを用いて初期化され、初期値 0 の変更可能な `i32` 型として定義されます。
+
+その後この値は、`Global.value` プロパティを使うことによって `42` に、`global.wasm` モジュールから公開された (どんな値が与えられても 1 を加算して、新しい値を返す) `incGlobal()` 関数を使うことによって `43` になります。
+
+```js
+const output = document.getElementById('output');
+
+function assertEq(msg, got, expected) {
+ output.innerHTML += `Testing ${msg}: `;
+ if (got !== expected)
+ output.innerHTML += `FAIL!<br>Got: ${got}<br>Expected: ${expected}<br>`;
+ else
+ output.innerHTML += `SUCCESS! Got: ${got}<br>`;
+}
+
+assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function");
+
+const global = new WebAssembly.Global({value:'i32', mutable:true}, 0);
+
+WebAssembly.instantiateStreaming(fetch('global.wasm'), { js: { global } })
+.then(({instance}) => {
+ assertEq("getting initial value from wasm", instance.exports.getGlobal(), 0);
+ global.value = 42;
+ assertEq("getting JS-updated value from wasm", instance.exports.getGlobal(), 42);
+ instance.exports.incGlobal();
+ assertEq("getting wasm-updated value from JS", global.value, 43);
+});
+```
+
+> **Note:** この例は[GitHub 上の実行例](https://mdn.github.io/webassembly-examples/js-api-examples/global.html)で確認できます。また、[ソースコード](https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/global.html)も参照してください。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) overview page
+- [WebAssembly concepts](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)
+- [Import/Export mutable globals proposal](https://github.com/WebAssembly/mutable-global/blob/master/proposals/mutable-global/Overview.md)