From 4f65da11497e8efe9f91713d91c0547a84ab582e Mon Sep 17 00:00:00 2001 From: Oscar Spencer Date: Sat, 2 Mar 2024 09:34:24 -0600 Subject: [PATCH] fix(cli): Show correct error when module traps --- cli/bin/grainrun.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/cli/bin/grainrun.js b/cli/bin/grainrun.js index ecabec3c2b..8532637ffd 100644 --- a/cli/bin/grainrun.js +++ b/cli/bin/grainrun.js @@ -35,7 +35,8 @@ async function run(filename) { bytes = await readFile(filename); } catch (err) { console.error(`Unable to read file: ${filename}`); - process.exit(1); + process.exitCode = 1; + return; } let wasm; @@ -53,16 +54,26 @@ async function run(filename) { console.error(`Unable to compile WebAssembly module.`); console.error(err.stack); } - process.exit(1); + process.exitCode = 1; + return; } + let instance; try { - const instance = await WebAssembly.instantiate(wasm, importObject); - wasi.start(instance); + instance = await WebAssembly.instantiate(wasm, importObject); } catch (err) { console.error(`Unable to instantiate WebAssembly module.`); console.error(err.stack); - process.exit(1); + process.exitCode = 1; + return; + } + + try { + wasi.start(instance); + } catch (err) { + console.error(err.stack); + process.exitCode = 1; + return; } }