mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-22 05:01:33 +00:00
Add implementations for typed func errors to cranelift and llvm
This commit is contained in:
@ -5,7 +5,10 @@ use wabt::wat2wasm;
|
||||
static WAT: &'static str = r#"
|
||||
(module
|
||||
(type (;0;) (func (result i32)))
|
||||
(import "env" "do_panic" (func $do_panic (type 0)))
|
||||
(func $dbz (result i32)
|
||||
call $do_panic
|
||||
drop
|
||||
i32.const 42
|
||||
i32.const 0
|
||||
i32.div_u
|
||||
@ -33,6 +36,10 @@ fn foobar(ctx: &mut Ctx) -> i32 {
|
||||
42
|
||||
}
|
||||
|
||||
fn do_panic(ctx: &mut Ctx) -> Result<i32, String> {
|
||||
Err("error".to_string())
|
||||
}
|
||||
|
||||
fn main() -> Result<(), error::Error> {
|
||||
let wasm = get_wasm();
|
||||
|
||||
@ -46,11 +53,15 @@ fn main() -> Result<(), error::Error> {
|
||||
// };
|
||||
|
||||
println!("instantiating");
|
||||
let instance = module.instantiate(&imports! {})?;
|
||||
let instance = module.instantiate(&imports! {
|
||||
"env" => {
|
||||
"do_panic" => Func::new(do_panic),
|
||||
},
|
||||
})?;
|
||||
|
||||
let foo = instance.dyn_func("dbz")?;
|
||||
let foo: Func<(), i32> = instance.func("dbz")?;
|
||||
|
||||
let result = foo.call(&[]);
|
||||
let result = foo.call();
|
||||
|
||||
println!("result: {:?}", result);
|
||||
|
||||
|
Reference in New Issue
Block a user