WebAssembly ツアー 目次

アロケータ

オブジェクトをやり取りできるよう、ストレージの仕組みが必要です。

このような実装のことを、アロケータといいます。(詳細はこのツアーの範疇を超えています)

本質的には、オブジェクトを格納することができ、その際にインデックスがハンドルとして返される無限のベクタです。

let storage = [];

function storeObject(obj) {
  let index = storage.length;
  storage.push(obj);
  return index;
}

function getObject(handle) {
  return storage[handle];
}

function releaseObject(handle) {
  return storage[handle] = null;
}

実装としては考慮すべき点が多くあります。