diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/web/javascript/reference/global_objects/webassembly/memory | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects/webassembly/memory')
5 files changed, 397 insertions, 0 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.html new file mode 100644 index 0000000000..edf93b9c7b --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/buffer/index.html @@ -0,0 +1,62 @@ +--- +title: WebAssembly.Memory.prototype.buffer +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer +tags: + - API + - Buffer + - JavaScript + - Property + - Reference + - WebAssembly + - memory + - プロパティ +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/buffer +--- +<div>{{JSRef}}</div> + +<p><strong><code>buffer</code></strong> は {{jsxref("WebAssembly.Memory")}} オブジェクトのプロトタイププロパティで、メモリに含まれるバッファーを返します。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p>次の例では (GitHub 上の <a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/memory.html">memory.html</a> および<a href="https://mdn.github.io/webassembly-examples/js-api-examples/memory.html">ライブデモ版</a> もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。</p> + +<pre class="brush: 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); +});</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS', '#dom-memory-buffer', 'buffer')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div> +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.WebAssembly.Memory.buffer")}}</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> +</ul> 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 new file mode 100644 index 0000000000..28df2da77d --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/grow/index.html @@ -0,0 +1,80 @@ +--- +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 +--- +<div>{{JSRef}}</div> + +<p><strong><code>grow()</code></strong> は {{jsxref("WebAssembly.Memory")}} オブジェクトのプロトタイプメソッドで、指定した WebAssembly ページの数だけメモリインスタンスの大きさを拡張します。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">memory.grow(<em>number</em>); +</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><em>number</em></dt> + <dd>メモリを拡大する WebAssembly ページ数 (それぞれは 64KiB の大きさ)。</dd> +</dl> + +<h3 id="Return_value" name="Return_value">返値</h3> + +<p>以前のメモリの大きさを、 WebAssembly ページ単位で返します。</p> + +<h2 id="Examples" name="Examples">例</h2> + +<p>以下の例では、新しい WebAssembly メモリインスタンスを初期サイズ1ページ (64KiB)、最大サイズ10ページ (640KiB) で作成します。</p> + +<pre class="brush: js">var memory = new WebAssembly.Memory({initial:1, maximum:10});</pre> + +<p>それから、インスタンスを1ページ分拡張することができます。</p> + +<pre class="brush: 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" +</pre> + +<p>なお、ここでの <code>grow()</code> の返値は直前の WebAssembly ページ数です。</p> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS', '#dom-memory-grow', 'grow()')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div> +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.WebAssembly.Memory.grow")}}</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> +</ul> 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 new file mode 100644 index 0000000000..39a3a1ddea --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html @@ -0,0 +1,91 @@ +--- +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 +--- +<div>{{JSRef}}</div> + +<p><code><strong>WebAssembly.Memory</strong></code> オブジェクトは {{jsxref("WebAssembly/Memory/buffer","buffer")}} プロパティを持ち、これはサイズ変更可能な {{jsxref("ArrayBuffer")}} で、 WebAssembly <code>Instance</code> からアクセスする生のバイト列のメモリを持ちます。</p> + +<p>JavaScript または WebAssembly コードから生成されたメモリは JavaScript と WebAssembly のどちらからもアクセス、変更が可能になります。</p> + +<h2 id="Constructor" name="Constructor">コンストラクター</h2> + +<dl> + <dt>{{jsxref("WebAssembly.Memory()")}}</dt> + <dd>新しい <code>Memory</code> オブジェクトを生成します。</dd> +</dl> + +<h2 id="Memory_インスタンス"><code>Memory</code> インスタンス</h2> + +<p>全ての <code>Memory</code> インスタンスは <code>Memory()</code> コンストラクターの<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/prototype">プロトタイプオブジェクト</a>を継承しています。これは全ての <code>Memory</code> インスタンスに影響するように変更可能です。</p> + +<h3 id="Instance_properties" name="Instance_properties">インスタンスプロパティ</h3> + +<dl> + <dt><code>Memory.prototype.constructor</code></dt> + <dd>このオブジェクトのインスタンスを生成した関数を返します。既定では {{jsxref("WebAssembly.Memory()")}} コンストラクターです。</dd> + <dt>{{jsxref("WebAssembly/Memory/buffer","Memory.prototype.buffer")}}</dt> + <dd>メモリに格納されているバッファーを返すアクセサープロパティです。/dd></dd> +</dl> + +<h3 id="Instance_methods" name="Instance_methods">インスタンスメソッド</h3> + +<dl> + <dt>{{jsxref("WebAssembly/Memory/grow","Memory.prototype.grow()")}}</dt> + <dd>指定した WebAssembly ページの数 (64KBを1単位とする) で <code>Memory</code> インスタンスのサイズを増やします。</dd> +</dl> + +<h2 id="Examples" name="Examples">例</h2> + +<p><code>WebAssembly.Memory</code> オブジェクトを取得する方法は2つあります。1つ目は JavaScript から生成する方法です。以下の例では、初期サイズが10ページ (640KiB) 、最大サイズが100ページ (6.4MiB) で新しい WebAssembly Memory インスタンスを生成しています。</p> + +<pre class="brush: js">var memory = new WebAssembly.Memory({initial:10, maximum:100});</pre> + +<p>2つ目は WebAssembly モジュールからエクスポートされた <code>WebAssembly.Memory</code> オブジェクトを使用する方法です。次の例では (GitHub 上の <a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/memory.html">memory.html</a> および<a href="https://mdn.github.io/webassembly-examples/js-api-examples/memory.html">ライブデモ版</a> もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。</p> + +<pre class="brush: js">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); +});</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS', '#memories', 'Memory')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div> +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.WebAssembly.Memory")}}</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> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/memory/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/memory/index.html new file mode 100644 index 0000000000..ff8180c361 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/memory/index.html @@ -0,0 +1,94 @@ +--- +title: WebAssembly.Memory() コンストラクター +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/Memory +tags: + - Constructor + - JavaScript + - Reference + - WebAssembly + - コンストラクター +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/Memory +--- +<div>{{JSRef}}</div> + +<p>The <code><strong>WebAssembly.Memory()</strong></code> コンストラクターは新しい <code>Memory</code> オブジェクトを生成します。これは {{jsxref("WebAssembly/Memory/buffer","buffer")}} プロパティでサイズ変更可能な {{jsxref("ArrayBuffer")}} により、 WebAssembly <code>Instance</code> からアクセスする生のバイト列のメモリを持ちます。</p> + +<p>JavaScript または WebAssembly コードから生成されたメモリは JavaScript と WebAssembly のどちらからもアクセス、変更が可能になります。</p> + +<h2 id="Syntax" name="Syntax">構文</h2> + +<pre class="syntaxbox">new WebAssembly.Memory(<var>memoryDescriptor</var>);</pre> + +<h3 id="Parameters" name="Parameters">引数</h3> + +<dl> + <dt><code><var>memoryDescriptor</var></code></dt> + <dd>以下のメンバーを含むことができるオブジェクトです。 + <dl> + <dt><em>initial</em></dt> + <dd>WebAssembly メモリの初期サイズで、単位は WebAssembly ページ数です。</dd> + <dt><em>maximum {{optional_inline}}</em></dt> + <dd>WebAssembly メモリを拡張できる最大サイズで、単位は WebAssembly ページ数です。存在する場合、 <code>maximum</code> 引数はエンジンがメモリを予約するヒントとして使用されます。ただし、エンジンはこの予約リクエストを無視したり固定したりすることがあります。一般的に、ほとんどの WebAssembly モジュールは <code>maximum</code> を設定する必要はありません。</dd> + </dl> + </dd> +</dl> + +<div class="note"> +<p><strong>メモ</strong>: WebAssembly ページは 65,536 バイト、すなわち 64KiB の固定長です。</p> +</div> + +<h3 id="Exceptions" name="Exceptions">例外</h3> + +<ul> + <li><code>memoryDescriptor</code> がオブジェクトでない場合は、 {{jsxref("TypeError")}} が発生します。</li> + <li><code>maximum</code> が設定されており、かつ <code>initial</code> よりも小さい場合は、 {{jsxref("RangeError")}} が発生します。</li> +</ul> + +<h2 id="Examples" name="Examples">例</h2> + +<p><code>WebAssembly.Memory</code> オブジェクトを取得する方法は2つあります。1つ目は JavaScript から生成する方法です。以下の例では、初期サイズが10ページ (640KiB) 、最大サイズが100ページ (6.4MiB) で新しい WebAssembly Memory インスタンスを生成しています。</p> + +<pre class="brush: js">var memory = new WebAssembly.Memory({initial:10, maximum:100});</pre> + +<p>2つ目は WebAssembly モジュールからエクスポートされた <code>WebAssembly.Memory</code> オブジェクトを使用する方法です。次の例では (GitHub 上の <a href="https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/memory.html">memory.html</a> および<a href="https://mdn.github.io/webassembly-examples/js-api-examples/memory.html">ライブデモ版</a> もご覧ください)、 memory.wasm バイトコードを {{jsxref("WebAssembly.instantiateStreaming()")}} メソッドを使用して読み込みんでインスタンス化し、その上の行で生成されたメモリにインポートします。それから、メモリにいくつかの値を格納し、関数をエクスポートして使用し、いくつかの値を合計します。</p> + +<pre class="brush: 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); +});</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS', '#dom-memory-memory', 'Memory')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +<div> +<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> + +<p>{{Compat("javascript.builtins.WebAssembly.Memory.Memory")}}</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> +</ul> diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/prototype/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/prototype/index.html new file mode 100644 index 0000000000..e9e48b5bec --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/prototype/index.html @@ -0,0 +1,70 @@ +--- +title: WebAssembly.Memory.prototype +slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory/prototype +tags: + - JavaScript + - Property + - Prototype + - WebAssembly + - memory +translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory +--- +<div>{{JSRef}} {{SeeCompatTable}}</div> + +<p><code><strong>WebAssembly.Memory</strong></code><strong><code>.prototype</code></strong> プロパティは {{jsxref("WebAssembly.Memory()")}} コンストラクタのプロトタイプを表します。</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="説明">説明</h2> + +<p>全ての {{jsxref("WebAssembly.Memory")}} インスタンスは <code>Memory.prototype</code> を継承します。 {{jsxref("WebAssembly.Memory()")}} コンストラクタのプロトタイプオブジェクトは全ての {{jsxref( "WebAssembly.Memory")}} インスタンスに影響するように変更可能です。</p> + +<h2 id="プロパティ">プロパティ</h2> + +<dl> + <dt><code>Memory.prototype.constructor</code></dt> + <dd>このオブジェクトのインスタンスを生成した関数を返します。デフォルトでは {{jsxref("WebAssembly.Memory()")}} コンストラクタです。</dd> + <dt>{{jsxref("WebAssembly/Memory/buffer","Memory.prototype.buffer")}}</dt> + <dd>メモリーに格納されているバッファを返すアクセサプロパティ。</dd> + <dt> + <h2 id="メソッド">メソッド</h2> + </dt> + <dt>{{jsxref("WebAssembly/Memory/grow","Memory.prototype.grow()")}}</dt> + <dd>指定した WebAssembly ページの数 (64KBを1単位とする) で <code>Memory</code> インスタンスのサイズを増やします。</dd> +</dl> + +<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', '#webassemblymemory-objects', 'Memory')}}</td> + <td>{{Spec2('WebAssembly JS')}}</td> + <td>初回ドラフト定義</td> + </tr> + </tbody> +</table> + +<h2 id="ブラウザ実装状況">ブラウザ実装状況</h2> + +<div> + + +<p>{{Compat("javascript.builtins.WebAssembly.Memory.prototype")}}</p> +</div> + +<h2 id="関連情報">関連情報</h2> + +<ul> + <li>{{jsxref("WebAssembly.Memory()")}}</li> + <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> |