diff --git a/examples/early_exit.rs b/examples/early_exit.rs index db1805434..42e18b050 100644 --- a/examples/early_exit.rs +++ b/examples/early_exit.rs @@ -62,9 +62,9 @@ fn main() -> anyhow::Result<()> { let module = Module::new(&store, wasm_bytes)?; // We declare the host function that we'll use to terminate execution. - fn early_exit() -> Result<(), RuntimeError> { + fn early_exit() -> Result<(), ExitCode> { // This is where it happens. - Err(RuntimeError::custom(Box::new(ExitCode(1)))) + Err(ExitCode(1)) } // Create an import object. diff --git a/lib/api/src/js/trap.rs b/lib/api/src/js/trap.rs index 89745f076..1a6638659 100644 --- a/lib/api/src/js/trap.rs +++ b/lib/api/src/js/trap.rs @@ -63,7 +63,7 @@ impl RuntimeError { } /// Raises a custom user Error - #[deprecated(since = "2.1.1", note = "prefer using RuntimeError::custom instead")] + #[deprecated(since = "2.1.1", note = "return a Result from host functions instead")] pub fn raise(error: Box) -> ! { let error = Self::custom(error); let js_error: JsValue = error.into(); diff --git a/lib/api/tests/js_instance.rs b/lib/api/tests/js_instance.rs index 4d647b6ce..4e2a96209 100644 --- a/lib/api/tests/js_instance.rs +++ b/lib/api/tests/js_instance.rs @@ -690,8 +690,8 @@ mod js { impl std::error::Error for ExitCode {} - fn early_exit() -> Result<(), RuntimeError> { - Err(RuntimeError::custom(Box::new(ExitCode(1)))) + fn early_exit() -> Result<(), ExitCode> { + Err(ExitCode(1)) } let import_object = imports! { diff --git a/lib/emscripten/src/jmp.rs b/lib/emscripten/src/jmp.rs index 3a18dc5e5..93651b101 100644 --- a/lib/emscripten/src/jmp.rs +++ b/lib/emscripten/src/jmp.rs @@ -6,8 +6,6 @@ use crate::EmEnv; use std::error::Error; use std::fmt; -use wasmer::RuntimeError; - /// setjmp pub fn __setjmp(ctx: &EmEnv, _env_addr: u32) -> c_int { debug!("emscripten::__setjmp (setjmp)"); @@ -59,14 +57,14 @@ impl Error for LongJumpRet {} /// _longjmp // This function differs from the js implementation, it should return Result<(), &'static str> #[allow(unreachable_code)] -pub fn _longjmp(ctx: &EmEnv, env_addr: i32, val: c_int) -> Result<(), RuntimeError> { +pub fn _longjmp(ctx: &EmEnv, env_addr: i32, val: c_int) -> Result<(), LongJumpRet> { let val = if val == 0 { 1 } else { val }; get_emscripten_data(ctx) .set_threw_ref() .expect("set_threw is None") .call(env_addr, val) .expect("set_threw failed to call"); - Err(RuntimeError::custom(Box::new(LongJumpRet))) + Err(LongJumpRet) } // extern "C" { diff --git a/lib/engine/src/trap/error.rs b/lib/engine/src/trap/error.rs index dd78c3de1..232b7c9c7 100644 --- a/lib/engine/src/trap/error.rs +++ b/lib/engine/src/trap/error.rs @@ -107,7 +107,7 @@ impl RuntimeError { } /// Raises a custom user Error - #[deprecated(since = "2.1.1", note = "prefer using RuntimeError::custom instead")] + #[deprecated(since = "2.1.1", note = "return a Result from host functions instead")] pub fn raise(error: Box) -> ! { unsafe { raise_user_trap(error) } } diff --git a/lib/wasi/src/syscalls/mod.rs b/lib/wasi/src/syscalls/mod.rs index 3570943ab..a041fd455 100644 --- a/lib/wasi/src/syscalls/mod.rs +++ b/lib/wasi/src/syscalls/mod.rs @@ -2521,9 +2521,9 @@ pub fn poll_oneoff( unimplemented!(); } -pub fn proc_exit(env: &WasiEnv, code: __wasi_exitcode_t) -> Result<(), RuntimeError> { +pub fn proc_exit(env: &WasiEnv, code: __wasi_exitcode_t) -> Result<(), WasiError> { debug!("wasi::proc_exit, {}", code); - Err(RuntimeError::custom(Box::new(WasiError::Exit(code)))) + Err(WasiError::Exit(code)) } pub fn proc_raise(env: &WasiEnv, sig: __wasi_signal_t) -> __wasi_errno_t {