2019-09-20 16:06:27 -05:00
|
|
|
use wasm_bindgen::prelude::*;
|
|
|
|
use wasm_bindgen_test::*;
|
|
|
|
|
|
|
|
#[wasm_bindgen(module = "tests/wasm/futures.js")]
|
|
|
|
extern "C" {
|
|
|
|
fn call_exports() -> js_sys::Promise;
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen_test]
|
|
|
|
async fn smoke() {
|
2019-10-28 20:15:05 -07:00
|
|
|
wasm_bindgen_futures::JsFuture::from(call_exports())
|
|
|
|
.await
|
|
|
|
.unwrap();
|
2019-09-20 16:06:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_do_nothing() {}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_1() -> JsValue {
|
|
|
|
1.into()
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_2() -> u32 {
|
|
|
|
2
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_nothing_again() -> Result<(), JsValue> {
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_3() -> Result<u32, JsValue> {
|
|
|
|
Ok(3)
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_4() -> Result<JsValue, JsValue> {
|
|
|
|
Ok(4.into())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub struct AsyncCustomReturn {
|
|
|
|
pub val: u32,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_5() -> AsyncCustomReturn {
|
|
|
|
AsyncCustomReturn { val: 5 }
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_6() -> Result<AsyncCustomReturn, JsValue> {
|
|
|
|
Ok(AsyncCustomReturn { val: 6 })
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_7() -> Result<AsyncCustomReturn, u32> {
|
|
|
|
Ok(AsyncCustomReturn { val: 7 })
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_return_8() -> Result<AsyncCustomReturn, AsyncCustomReturn> {
|
|
|
|
Ok(AsyncCustomReturn { val: 8 })
|
|
|
|
}
|
|
|
|
|
|
|
|
#[wasm_bindgen]
|
|
|
|
pub async fn async_throw() -> Result<(), js_sys::Error> {
|
|
|
|
Err(js_sys::Error::new("async message"))
|
|
|
|
}
|