https://webassembly.github.io/demo/には、「完全な実行セマンティクスが実装されています」と書かれています。MVP が完成したように聞こえますが、正確には何が欠けているのでしょうか、それとも間違っているのでしょうか?
廃棄物:
(module
(memory 1)
(export "growMemory" $growMemory)
(func $growMemory (param $0 i32) (result i32) (grow_memory (get_local $0)))
(export "getMemorySize" $getMemorySize)
(func $getMemorySize (result i32) (memory_size))
)
JS コード:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'build/test.wasm', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
var module = Wasm.instantiateModule(new Uint8Array(xhr.response));
console.log(module.exports.getMemorySize());
console.log(module.exports.growMemory(1));
console.log(module.exports.getMemorySize());
};
xhr.send(null);
Chrome Canary は WASM ファイルをロードしますが、grow_memory は実装されていないようです:
65536
0
65536
また、Firefox Nightly は読み込みに失敗します:
TypeError: wasm validation error at offset 124: bad expression code
また、ページ サイズは 0x1000 ではなく 0x10000 のようです。しかし、私はそれをデザインやスペックで見つけることができません。