WebAssembly.Memory.prototype.grow()

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

Memory オブジェクトの grow() プロトタイプメソッドは、指定したWebAssembly ページ数でメモリインスタンスのサイズを拡張します。

構文

memory.grow(number);

パラメータ

number
メモリを拡張したい分の WebAssembly ページ数 (1つが64KiBのサイズです)。

戻り値

WebAssembly ページ単位での、前のメモリのサイズ。

次の例では初期サイズが1ページ (64KiB) で最大サイズが10ページ (640KiB) の WebAssembly Memory インスタンスを作成します。

var memory = new WebAssembly.Memory({initial:1, maximum:10});

そして、次のように1ページ分インスタンスを拡張刷ることができます:

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 ページを返すことに注意してください。

仕様

仕様 策定状況 コメント
WebAssembly JavaScript API
grow() の定義
ドラフト 初回ドラフト定義。

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 57 15[2] 52 (52)[1] 未サポート 44 11
Feature Chrome for Android Android Webview Edge Mobile Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 57 57 未サポート 52.0 (52)[1] 未サポート 未サポート 11

[1] WebAssemblyはFirefox 52+で有効です。Firefox 52 Extended Support Release (ESR.)では無効化されています。

[2] 現在、“Experimental JavaScript Features” フラグを付けることでサポートされます。詳細については このブログ記事 を参照してください。

関連情報

ドキュメントのタグと貢献者

このページの貢献者: ukyo
最終更新者: ukyo,