WebAssembly.Memory.prototype.buffer

これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

Memory オブジェクトの buffer プロトタイププロパティはメモリに関連付けられているバッファを返します。

memory.buffer

次の例では (Github の memory.html と 動作例 もご確認ください) 、fetchAndInstantiate() ユーティリティ関数を使用して memory.wasm のバイトコードをフェッチしてインスタンス化します。そのあと、モジュールからエクスポートされたメモリにいくつかの値を格納し、エクスポートされた関数で値の合計します。

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);
});

仕様

仕様 策定状況 コメント
WebAssembly JavaScript Interface
buffer の定義
草案 初回ドラフト定義。

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!
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 is enabled in Firefox 52+, although disabled in the Firefox 52 Extended Support Release (ESR.)

[2] Currently supported behind the “Experimental JavaScript Features” flag. See this blog post for more details.

関連情報