summaryrefslogtreecommitdiff
path: root/src/wasm-js.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-01 12:54:01 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-01 12:54:01 -0800
commit47573b3463559f4978b417717b5b5ce2f3bed3c1 (patch)
treed411e699d689962d0e490bef6ae69cefa866f8ac /src/wasm-js.cpp
parentbfc059c04c55a86603e540109367e882e7026cdc (diff)
downloadbinaryen-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.cpp14
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));
}