summaryrefslogtreecommitdiff
path: root/src/binaryen-shell.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binaryen-shell.cpp')
-rw-r--r--src/binaryen-shell.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/binaryen-shell.cpp b/src/binaryen-shell.cpp
index 96f76fa95..08634c41a 100644
--- a/src/binaryen-shell.cpp
+++ b/src/binaryen-shell.cpp
@@ -183,10 +183,18 @@ static void run_asserts(size_t* i, bool* checked, AllocatingModule* wasm,
auto interface = new ShellExternalInterface();
auto instance = new ModuleInstance(*wasm, interface);
if (entry.is() > 0) {
- ModuleInstance::LiteralList arguments;
- try {
- instance->callExport(entry, arguments);
- } catch (ExitException& x) {
+ Function* function = wasm->functionsMap[entry];
+ if (!function) {
+ std::cerr << "Unknown entry " << entry << std::endl;
+ } else {
+ ModuleInstance::LiteralList arguments;
+ for (NameType param : function->params) {
+ arguments.push_back(Literal(param.type));
+ }
+ try {
+ instance->callExport(entry, arguments);
+ } catch (ExitException& x) {
+ }
}
}
while (*i < root->size()) {