diff options
-rw-r--r-- | src/js/post.js | 6 | ||||
-rw-r--r-- | src/wasm-js.cpp | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/js/post.js b/src/js/post.js index 8e57c4a06..97fd2be9d 100644 --- a/src/js/post.js +++ b/src/js/post.js @@ -16,14 +16,14 @@ throw 'TODO: loading in other platforms'; } + var theBuffer = Module['buffer'] = new ArrayBuffer(Module['providedTotalMemory'] || 64*1024*1024); + wasmJS['providedTotalMemory'] = theBuffer.byteLength; + var temp = wasmJS._malloc(code.length + 1); wasmJS.writeAsciiToMemory(code, temp); wasmJS._load_asm(temp); wasmJS._free(temp); - // Generate memory XXX TODO get the right size - var theBuffer = Module['buffer'] = new ArrayBuffer(Module['providedTotalMemory'] || 64*1024*1024); - // Information for the instance of the module. var info = wasmJS['info'] = { global: null, diff --git a/src/wasm-js.cpp b/src/wasm-js.cpp index 2da076329..0bc551bf8 100644 --- a/src/wasm-js.cpp +++ b/src/wasm-js.cpp @@ -52,7 +52,9 @@ extern "C" void EMSCRIPTEN_KEEPALIVE load_asm(char *input) { Ref asmjs = builder.parseToplevel(input); module = new Module(); - module->memory.initial = module->memory.max = 16*1024*1024; // TODO: receive this from emscripten + module->memory.initial = module->memory.max = EM_ASM_INT_V({ + return Module['providedTotalMemory']; // we receive the size of memory from emscripten + }); #if WASM_JS_DEBUG std::cerr << "wasming...\n"; |