diff --git a/crates/core/src/abi.rs b/crates/core/src/abi.rs index 98e2bf998..78a5aef06 100644 --- a/crates/core/src/abi.rs +++ b/crates/core/src/abi.rs @@ -1099,10 +1099,21 @@ impl<'a, B: Bindgen> Generator<'a, B> { } // Emit the function return - self.emit(&Instruction::Return { - func, - amt: usize::from(func.result.is_some()), - }); + if async_ { + self.emit(&Instruction::AsyncTaskReturn { + name: &func.name, + params: if func.result.is_some() { + &[WasmType::Pointer] + } else { + &[] + }, + }); + } else { + self.emit(&Instruction::Return { + func, + amt: usize::from(func.result.is_some()), + }); + } } LiftLower::LiftArgsLowerResults => {