From e35a795d7236ad7eebd1de40a1ca00e83912b0bc Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 次の例では (GitHub 上の memory.html およびライブデモ版 もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。 {{Compat("javascript.builtins.WebAssembly.Memory.buffer")}} 以前のメモリの大きさを、 WebAssembly ページ単位で返します。 以下の例では、新しい WebAssembly メモリインスタンスを初期サイズ1ページ (64KiB)、最大サイズ10ページ (640KiB) で作成します。 それから、インスタンスを1ページ分拡張することができます。 なお、ここでの {{Compat("javascript.builtins.WebAssembly.Memory.grow")}} JavaScript または WebAssembly コードから生成されたメモリは JavaScript と WebAssembly のどちらからもアクセス、変更が可能になります。 全ての 2つ目は WebAssembly モジュールからエクスポートされた {{Compat("javascript.builtins.WebAssembly.Memory")}}buffer は {{jsxref("WebAssembly.Memory")}} オブジェクトのプロトタイププロパティで、メモリに含まれるバッファーを返します。例
-
-WebAssembly.instantiateStreaming(fetch('memory.wasm'), { js: { mem: memory } })
-.then(obj => {
- var i32 = new Uint32Array(memory.buffer);
- for (var i = 0; i < 10; i++) {
- i32[i] = i;
- }
- var sum = obj.instance.exports.accumulate(0, 10);
- console.log(sum);
-});
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('WebAssembly JS', '#dom-memory-buffer', 'buffer')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.md
new file mode 100644
index 0000000000..49b0be1e58
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.md
@@ -0,0 +1,49 @@
+---
+title: WebAssembly.Memory.prototype.buffer
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer
+tags:
+ - API
+ - Buffer
+ - JavaScript
+ - プロパティ
+ - Reference
+ - WebAssembly
+ - memory
+browser-compat: javascript.builtins.WebAssembly.Memory.buffer
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer
+---
+{{JSRef}}
+
+**`buffer`** は {{jsxref("WebAssembly.Memory")}} オブジェクトのプロトタイププロパティで、メモリーに含まれるバッファーを返します。
+
+## 例
+
+### buffer の使用
+
+次の例 (GitHub 上の [memory.html](https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/memory.html) および[動作例](https://mdn.github.io/webassembly-examples/js-api-examples/memory.html)も参照) では、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリーにインポートします。それから、メモリーにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。
+
+```js
+WebAssembly.instantiateStreaming(fetch('memory.wasm'), { js: { mem: memory } })
+.then(obj => {
+ var i32 = new Uint32Array(memory.buffer);
+ for (var i = 0; i < 10; i++) {
+ i32[i] = i;
+ }
+ var sum = obj.instance.exports.accumulate(0, 10);
+ console.log(sum);
+});
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) 概要ページ
+- [WebAssembly の概念](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.html
deleted file mode 100644
index 7f7d936a08..0000000000
--- a/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: WebAssembly.Memory.prototype.grow()
-slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow
-tags:
- - API
- - JavaScript
- - Method
- - Reference
- - WebAssembly
- - grow
- - memory
- - メソッド
-translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow
----
-grow() は {{jsxref("WebAssembly.Memory")}} オブジェクトのプロトタイプメソッドで、指定した WebAssembly ページの数だけメモリインスタンスの大きさを拡張します。構文
-
-memory.grow(number);
-
-
-引数
-
-
-
-
-返値
-
-例
-
-var memory = new WebAssembly.Memory({initial:1, maximum:10});
-
-const bytesPerPage = 64 * 1024;
-console.log(memory.buffer.byteLength / bytesPerPage); // "1"
-console.log(memory.grow(1)); // "1"
-console.log(memory.buffer.byteLength / bytesPerPage); // "2"
-
-
-grow() の返値は直前の WebAssembly ページ数です。仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('WebAssembly JS', '#dom-memory-grow', 'grow()')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.md
new file mode 100644
index 0000000000..e868d4621a
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.md
@@ -0,0 +1,67 @@
+---
+title: WebAssembly.Memory.prototype.grow()
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow
+tags:
+ - API
+ - JavaScript
+ - メソッド
+ - Reference
+ - WebAssembly
+ - grow
+ - memory
+browser-compat: javascript.builtins.WebAssembly.Memory.grow
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/grow
+---
+{{JSRef}}
+
+**`grow()`** は [`Memory`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory) オブジェクトのプロトタイプメソッドで、指定した WebAssembly ページの数だけメモリーインスタンスの大きさを拡張します。
+
+## 構文
+
+```js
+grow(number)
+```
+
+## 引数
+
+- _number_
+ - : メモリーを拡大する WebAssembly ページ数 (それぞれは 64KiB の大きさ)。
+
+### 返値
+
+以前のメモリーの大きさを、 WebAssembly ページ単位で返します。
+
+## 例
+
+### grow の使用
+
+以下の例では、新しい WebAssembly メモリーインスタンスを初期サイズ 1 ページ (64KiB)、最大サイズ 10 ページ (640KiB) で作成します。
+
+```js
+var memory = new WebAssembly.Memory({initial:1, maximum:10});
+```
+
+それから、インスタンスを 1 ページ分拡張することができます。
+
+```js
+const bytesPerPage = 64 * 1024;
+console.log(memory.buffer.byteLength / bytesPerPage); // "1"
+console.log(memory.grow(1)); // "1"
+console.log(memory.buffer.byteLength / bytesPerPage); // "2"
+```
+
+なお、ここでの `grow()` の返値は直前の WebAssembly ページ数です。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- [WebAssembly](/ja/docs/WebAssembly) 概要ページ
+- [WebAssembly の概念](/ja/docs/WebAssembly/Concepts)
+- [WebAssembly JavaScript API の使用](/ja/docs/WebAssembly/Using_the_JavaScript_API)
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html
deleted file mode 100644
index 4064df7666..0000000000
--- a/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: WebAssembly.Memory()
-slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory
-tags:
- - Class
- - JavaScript
- - Reference
- - WebAssembly
- - クラス
-translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory
----
-WebAssembly.Memory オブジェクトは {{jsxref("WebAssembly/Memory/buffer","buffer")}} プロパティを持ち、これはサイズ変更可能な {{jsxref("ArrayBuffer")}} で、 WebAssembly Instance からアクセスする生のバイト列のメモリを持ちます。コンストラクター
-
-
-
-
-Memory オブジェクトを生成します。
-
-Memory インスタンスMemory インスタンスは Memory() コンストラクターのプロトタイプオブジェクトを継承しています。これは全ての Memory インスタンスに影響するように変更可能です。インスタンスプロパティ
-
-
-
-
-Memory.prototype.constructorインスタンスメソッド
-
-
-
-
-Memory インスタンスのサイズを増やします。例
-
-WebAssembly.Memory オブジェクトを取得する方法は2つあります。1つ目は JavaScript から生成する方法です。以下の例では、初期サイズが10ページ (640KiB) 、最大サイズが100ページ (6.4MiB) で新しい WebAssembly Memory インスタンスを生成しています。var memory = new WebAssembly.Memory({initial:10, maximum:100});
-
-WebAssembly.Memory オブジェクトを使用する方法です。次の例では (GitHub 上の memory.html およびライブデモ版 もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。fetchAndInstantiate('memory.wasm').then(function(instance) {
- var i32 = new Uint32Array(instance.exports.mem.buffer);
- for (var i = 0; i < 10; i++) {
- i32[i] = i;
- }
- var sum = instance.exports.accumulate(0, 10);
- console.log(sum);
-});
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('WebAssembly JS', '#memories', 'Memory')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.md b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.md
new file mode 100644
index 0000000000..5432227ae2
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.md
@@ -0,0 +1,90 @@
+---
+title: WebAssembly.Memory()
+slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory
+tags:
+ - クラス
+ - JavaScript
+ - Reference
+ - WebAssembly
+browser-compat: javascript.builtins.WebAssembly.Memory
+translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory
+---
+{{JSRef}}
+
+**`WebAssembly.Memory`** オブジェクトはサイズ変更可能な {{jsxref("ArrayBuffer")}} または [`SharedArrayBuffer`](/ja/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) であり、 WebAssembly `Instance` からアクセスする生のバイト列のメモリーを持ちます。
The WebAssembly.Memory() コンストラクターは新しい Memory オブジェクトを生成します。これは {{jsxref("WebAssembly/Memory/buffer","buffer")}} プロパティでサイズ変更可能な {{jsxref("ArrayBuffer")}} により、 WebAssembly Instance からアクセスする生のバイト列のメモリを持ちます。
JavaScript または WebAssembly コードから生成されたメモリは JavaScript と WebAssembly のどちらからもアクセス、変更が可能になります。
- -new WebAssembly.Memory(memoryDescriptor);- -
memoryDescriptormaximum 引数はエンジンがメモリを予約するヒントとして使用されます。ただし、エンジンはこの予約リクエストを無視したり固定したりすることがあります。一般的に、ほとんどの WebAssembly モジュールは maximum を設定する必要はありません。メモ: WebAssembly ページは 65,536 バイト、すなわち 64KiB の固定長です。
-memoryDescriptor がオブジェクトでない場合は、 {{jsxref("TypeError")}} が発生します。maximum が設定されており、かつ initial よりも小さい場合は、 {{jsxref("RangeError")}} が発生します。WebAssembly.Memory オブジェクトを取得する方法は2つあります。1つ目は JavaScript から生成する方法です。以下の例では、初期サイズが10ページ (640KiB) 、最大サイズが100ページ (6.4MiB) で新しい WebAssembly Memory インスタンスを生成しています。
var memory = new WebAssembly.Memory({initial:10, maximum:100});
-
-2つ目は WebAssembly モジュールからエクスポートされた WebAssembly.Memory オブジェクトを使用する方法です。次の例では (GitHub 上の memory.html およびライブデモ版 もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。
WebAssembly.instantiateStreaming(fetch('memory.wasm'), { js: { mem: memory } })
-.then(obj => {
- var i32 = new Uint32Array(memory.buffer);
- for (var i = 0; i < 10; i++) {
- i32[i] = i;
- }
- var sum = obj.instance.exports.accumulate(0, 10);
- console.log(sum);
-});
-
-| 仕様書 | -
|---|
| {{SpecName('WebAssembly JS', '#dom-memory-memory', 'Memory')}} | -
{{Compat("javascript.builtins.WebAssembly.Memory.Memory")}}
-