diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-01 12:54:01 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-01 12:54:01 -0800 |
commit | 47573b3463559f4978b417717b5b5ce2f3bed3c1 (patch) | |
tree | d411e699d689962d0e490bef6ae69cefa866f8ac /src/wasm-js.cpp | |
parent | bfc059c04c55a86603e540109367e882e7026cdc (diff) | |
download | binaryen-47573b3463559f4978b417717b5b5ce2f3bed3c1.tar.gz binaryen-47573b3463559f4978b417717b5b5ce2f3bed3c1.tar.bz2 binaryen-47573b3463559f4978b417717b5b5ce2f3bed3c1.zip |
fix imports from global.Math
Diffstat (limited to 'src/wasm-js.cpp')
-rw-r--r-- | src/wasm-js.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/wasm-js.cpp b/src/wasm-js.cpp index 93a1036ac..c966e07cf 100644 --- a/src/wasm-js.cpp +++ b/src/wasm-js.cpp @@ -95,7 +95,19 @@ extern "C" void EMSCRIPTEN_KEEPALIVE load_asm(char *input) { var base = Pointer_stringify($1); var tempArguments = Module['tempArguments']; Module['tempArguments'] = null; - return Module['info'][mod][base].apply(null, tempArguments); + var lookup = Module['info']; + if (mod.indexOf('.') < 0) { + lookup = (lookup || {})[mod]; + } else { + var parts = mod.split('.'); + lookup = (lookup || {})[parts[0]]; + lookup = (lookup || {})[parts[1]]; + } + lookup = (lookup || {})[base]; + if (!lookup) { + abort('bad CallImport to (' + mod + ').' + base); + } + return lookup.apply(null, tempArguments); }, import->module.str, import->base.str)); } |