error[E0277]: the trait bound `Result<(), ()>: IntoJsResult` is not satisfied
    --> ui-tests/async-errors.rs:30:1
     |
30   | #[wasm_bindgen]
     | ^^^^^^^^^^^^^^^ the trait `IntoJsResult` is not implemented for `Result<(), ()>`
     |
     = help: the following implementations were found:
               <Result<(), E> as IntoJsResult>
               <Result<T, E> as IntoJsResult>
note: required by `into_js_result`
    --> $WORKSPACE/src/lib.rs
     |
     |         fn into_js_result(self) -> Result<JsValue, JsValue>;
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the attribute macro `wasm_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Result<(), BadType>: IntoJsResult` is not satisfied
    --> ui-tests/async-errors.rs:32:1
     |
32   | #[wasm_bindgen]
     | ^^^^^^^^^^^^^^^ the trait `IntoJsResult` is not implemented for `Result<(), BadType>`
     |
     = help: the following implementations were found:
               <Result<(), E> as IntoJsResult>
               <Result<T, E> as IntoJsResult>
note: required by `into_js_result`
    --> $WORKSPACE/src/lib.rs
     |
     |         fn into_js_result(self) -> Result<JsValue, JsValue>;
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the attribute macro `wasm_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `wasm_bindgen::JsValue: From<BadType>` is not satisfied
    --> ui-tests/async-errors.rs:34:1
     |
34   | #[wasm_bindgen]
     | ^^^^^^^^^^^^^^^ the trait `From<BadType>` is not implemented for `wasm_bindgen::JsValue`
     |
     = help: the following implementations were found:
               <wasm_bindgen::JsValue as From<&'a String>>
               <wasm_bindgen::JsValue as From<&'a T>>
               <wasm_bindgen::JsValue as From<&'a str>>
               <wasm_bindgen::JsValue as From<JsError>>
             and 73 others
     = note: required because of the requirements on the impl of `Into<wasm_bindgen::JsValue>` for `BadType`
     = note: required because of the requirements on the impl of `IntoJsResult` for `BadType`
note: required by `into_js_result`
    --> $WORKSPACE/src/lib.rs
     |
     |         fn into_js_result(self) -> Result<JsValue, JsValue>;
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the attribute macro `wasm_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `Result<BadType, wasm_bindgen::JsValue>: IntoJsResult` is not satisfied
    --> ui-tests/async-errors.rs:36:1
     |
36   | #[wasm_bindgen]
     | ^^^^^^^^^^^^^^^ the trait `IntoJsResult` is not implemented for `Result<BadType, wasm_bindgen::JsValue>`
     |
     = help: the following implementations were found:
               <Result<(), E> as IntoJsResult>
               <Result<T, E> as IntoJsResult>
note: required by `into_js_result`
    --> $WORKSPACE/src/lib.rs
     |
     |         fn into_js_result(self) -> Result<JsValue, JsValue>;
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     = note: this error originates in the attribute macro `wasm_bindgen` (in Nightly builds, run with -Z macro-backtrace for more info)
