diff --git a/src/js.rs b/src/js.rs
index 37d01ff1..2bce01fe 100644
--- a/src/js.rs
+++ b/src/js.rs
@@ -1148,8 +1148,8 @@ extern "C" {
     /// form a valid wasm module (`true`) or not (`false`).
     ///
     /// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/validate
-    #[wasm_bindgen(static_method_of = WebAssembly)]
-    pub fn validate(bufferSource: JsValue) -> bool;
+    #[wasm_bindgen(static_method_of = WebAssembly, catch)]
+    pub fn validate(bufferSource: JsValue) -> Result<bool, JsValue>;
 }
 
 // JsString
diff --git a/tests/all/js_globals/WebAssembly.rs b/tests/all/js_globals/WebAssembly.rs
index dcdea951..790e6338 100644
--- a/tests/all/js_globals/WebAssembly.rs
+++ b/tests/all/js_globals/WebAssembly.rs
@@ -15,7 +15,7 @@ fn validate() {
 
             #[wasm_bindgen]
             pub fn validate_wasm(wasm: JsValue) -> bool {
-                WebAssembly::validate(wasm)
+                WebAssembly::validate(wasm).unwrap_or(false)
             }
         "#)
         .file("test.ts", r#"