diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/wasm-opt.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/tools/wasm-opt.cpp b/src/tools/wasm-opt.cpp index 35d5b6787..184dbae1b 100644 --- a/src/tools/wasm-opt.cpp +++ b/src/tools/wasm-opt.cpp @@ -73,15 +73,16 @@ struct ExecutionResults { Literal run(Function* func, Module& wasm) { ShellExternalInterface interface; - ModuleInstance instance(wasm, &interface); - LiteralList arguments; - for (WasmType param : func->params) { - // zeros in arguments TODO: more? - arguments.push_back(Literal(param)); - } try { + ModuleInstance instance(wasm, &interface); + LiteralList arguments; + for (WasmType param : func->params) { + // zeros in arguments TODO: more? + arguments.push_back(Literal(param)); + } return instance.callFunction(func->name, arguments); } catch (const TrapException&) { + // may throw in instance creation (init of offsets) or call itself return Literal(); } } |