| use wasm_bindgen::prelude::*; |
| use wasm_bindgen_test::*; |
| |
| #[wasm_bindgen(module = "/tests/headless/snippets1.js")] |
| extern "C" { |
| fn get_two() -> u32; |
| #[wasm_bindgen(js_name = get_stateful)] |
| fn get_stateful1() -> u32; |
| } |
| |
| #[wasm_bindgen(module = "/tests/headless/snippets1.js")] |
| extern "C" { |
| #[wasm_bindgen(js_name = get_stateful)] |
| fn get_stateful2() -> u32; |
| } |
| |
| #[wasm_bindgen_test] |
| fn test_get_two() { |
| assert_eq!(get_two(), 2); |
| } |
| |
| #[wasm_bindgen_test] |
| fn stateful_deduplicated() { |
| assert_eq!(get_stateful1(), 1); |
| assert_eq!(get_stateful2(), 2); |
| assert_eq!(get_stateful1(), 3); |
| assert_eq!(get_stateful2(), 4); |
| } |
| |
| #[wasm_bindgen(inline_js = "export function get_three() { return 3; }")] |
| extern "C" { |
| fn get_three() -> u32; |
| } |
| |
| #[wasm_bindgen_test] |
| fn test_get_three() { |
| assert_eq!(get_three(), 3); |
| } |
| |
| #[wasm_bindgen(inline_js = "let a = 0; export function get() { a += 1; return a; }")] |
| extern "C" { |
| #[wasm_bindgen(js_name = get)] |
| fn duplicate1() -> u32; |
| } |
| |
| #[wasm_bindgen(inline_js = "let a = 0; export function get() { a += 1; return a; }")] |
| extern "C" { |
| #[wasm_bindgen(js_name = get)] |
| fn duplicate2() -> u32; |
| } |
| |
| #[wasm_bindgen_test] |
| fn duplicate_inline_not_unified() { |
| assert_eq!(duplicate1(), 1); |
| assert_eq!(duplicate2(), 1); |
| assert_eq!(duplicate1(), 2); |
| assert_eq!(duplicate2(), 2); |
| } |