diff --git a/tests/all/js_globals/WebAssembly.rs b/tests/all/js_globals/WebAssembly.rs index c829909e..a62c51aa 100644 --- a/tests/all/js_globals/WebAssembly.rs +++ b/tests/all/js_globals/WebAssembly.rs @@ -31,3 +31,38 @@ fn validate() { "#) .test() } + +#[test] +fn validate_with_invalid_input() { + project() + .file("src/lib.rs", r#" + #![feature(proc_macro, wasm_custom_section)] + + extern crate wasm_bindgen; + use JsValue; + use wasm_bindgen::prelude::*; + use wasm_bindgen::js::WebAssembly; + + #[wasm_bindgen] + pub fn validate_wasm(wasm: JsValue) -> JsValue { + match WebAssembly::validate(wasm) { + Ok(value) => value.into(), + Err(err) => err + } + } + "#) + .file("test.js", r#" + import * as assert from "assert"; + import * as wasm from "./out"; + + export function test() { + try { + wasm.validate_wasm(42); + assert.ok(false); + } catch (e) { + assert.ok(true); + } + } + "#) + .test() +}