use wasm_bindgen::prelude::*; use wasm_bindgen_test::*; #[wasm_bindgen(module = "tests/wasm/js_keywords.js")] extern "C" { fn js_keywords_compile(); fn test_keyword_1_as_fn_name(x: u8) -> u8; fn test_keyword_2_as_fn_name(x: u8, y: u8) -> bool; fn test_keyword_as_fn_arg(x: u8) -> u8; } #[wasm_bindgen] pub fn throw(class: u8) -> u8 { class } #[wasm_bindgen(js_name = class)] pub fn fn_parsed_to_keyword(instanceof: u8, catch: u8) -> bool { instanceof > catch } #[wasm_bindgen(js_name = classy)] pub fn arg_is_keyword(class: u8) -> u8 { class } #[wasm_bindgen] pub struct Class { name: String, } #[wasm_bindgen] impl Class { #[wasm_bindgen(constructor)] pub fn new(void: String) -> Self { Class { name: void } } pub fn instanceof(&self, class: String) -> String { format!("{} is instance of {}", self.name.clone(), class) } #[wasm_bindgen(getter)] pub fn catch(&self) -> String { self.name.clone() } pub fn void(void: String) -> String { void } } #[wasm_bindgen_test] fn compile() { js_keywords_compile(); assert_eq!(test_keyword_1_as_fn_name(1), 1); assert!(!test_keyword_2_as_fn_name(1, 2)); assert_eq!(test_keyword_as_fn_arg(1), 1); }