From fe43e4816efbf622e8cdc106a552dfb9aadfb80e Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 14 Jul 2026 17:33:43 +0200 Subject: fix: remove `_start` fallback for instantiation Signed-off-by: Henry --- crates/cli/src/cmd/run.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'crates/cli/src') diff --git a/crates/cli/src/cmd/run.rs b/crates/cli/src/cmd/run.rs index b2f5e03..06f29f1 100644 --- a/crates/cli/src/cmd/run.rs +++ b/crates/cli/src/cmd/run.rs @@ -1,4 +1,4 @@ -use eyre::{Result, bail}; +use eyre::Result; use tinywasm::types::ExportType; use tinywasm::{ModuleInstance, Store}; @@ -34,13 +34,17 @@ pub fn run(args: RunArgs) -> Result<()> { Ok(()) } None => { - if instance.start_func(&store)?.is_none() { - bail!( - "module has no start function or `_start` export; use `tinywasm inspect {module_path}` or `tinywasm run --invoke {module_path}`" - ) + if instance.start_func(&store)?.is_some() { + let _ = instance.start(&mut store)?; + return Ok(()); } - let _ = instance.start(&mut store)?; + let start = instance.func_untyped(&store, "_start").map_err(|_| { + eyre::eyre!( + "module has no start function or `_start` export. Use `tinywasm inspect {module_path}` or `tinywasm run --invoke {module_path}`" + ) + })?; + start.call(&mut store, &[])?; Ok(()) } } -- cgit v1.3.1