summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-11-02 11:25:38 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-11-02 11:25:38 -0800
commit8d25878a2d49199079b7c81a396ee2d4fb03032d (patch)
tree8536de4596d2bb793b518619081c58338b16d551 /src
parent1e3848b2e5f0ea947d67954ab3044a3653eacb23 (diff)
downloadbinaryen-8d25878a2d49199079b7c81a396ee2d4fb03032d.tar.gz
binaryen-8d25878a2d49199079b7c81a396ee2d4fb03032d.tar.bz2
binaryen-8d25878a2d49199079b7c81a396ee2d4fb03032d.zip
wasm.js debugging
Diffstat (limited to 'src')
-rw-r--r--src/wasm-js.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/wasm-js.cpp b/src/wasm-js.cpp
index ae5957ec7..dc8f1222d 100644
--- a/src/wasm-js.cpp
+++ b/src/wasm-js.cpp
@@ -81,6 +81,9 @@ extern "C" void EMSCRIPTEN_KEEPALIVE load_asm(char *input) {
struct JSExternalInterface : ModuleInstance::ExternalInterface {
Literal callImport(Import *import, ModuleInstance::LiteralList& arguments) override {
+#ifdef WASM_JS_DEBUG
+ std::cout << "calling import " << import->name.str << '\n';
+#endif
EM_ASM({
Module['tempArguments'] = [];
});
@@ -101,6 +104,9 @@ extern "C" void EMSCRIPTEN_KEEPALIVE load_asm(char *input) {
var lookup = Module['lookupImport'](mod, base);
return lookup.apply(null, tempArguments);
}, import->module.str, import->base.str);
+#ifdef WASM_JS_DEBUG
+ std::cout << "calling import returning " << ret << '\n';
+#endif
switch (import->type.result) {
case none: return Literal(0);
case i32: return Literal((int32_t)ret);
@@ -191,6 +197,9 @@ extern "C" void EMSCRIPTEN_KEEPALIVE load_mapped_globals() {
// Does a call from js into an export of the module.
extern "C" double EMSCRIPTEN_KEEPALIVE call_from_js(const char *target) {
+#ifdef WASM_JS_DEBUG
+ std::cout << "call_from_js " << target << '\n';
+#endif
IString name(target);
assert(instance->functions.find(name) != instance->functions.end());
Function *function = instance->functions[name];
@@ -210,8 +219,10 @@ extern "C" double EMSCRIPTEN_KEEPALIVE call_from_js(const char *target) {
abort();
}
}
-
Literal ret = instance->callFunction(name, arguments);
+#ifdef WASM_JS_DEBUG
+ std::cout << "call_from_js returning " << ret << '\n';
+#endif
if (ret.type == none) return 0;
if (ret.type == i32) return ret.i32;
if (ret.type == f32) return ret.f32;