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
此外,页面大小似乎是 0x10000 而不是 0x1000。但我在设计或规格中找不到它。