| use wasm_bindgen::prelude::*; |
| use wasm_bindgen_test::*; |
| |
| #[wasm_bindgen] |
| extern "C" { |
| type Math; |
| #[wasm_bindgen(static_method_of = Math, final)] |
| fn log(f: f32) -> f32; |
| } |
| |
| #[wasm_bindgen(module = "tests/wasm/final.js")] |
| extern "C" { |
| type MyType; |
| #[wasm_bindgen(constructor, final)] |
| fn new(x: u32) -> MyType; |
| #[wasm_bindgen(static_method_of = MyType, final)] |
| fn foo(a: &str) -> String; |
| #[wasm_bindgen(method, final)] |
| fn bar(this: &MyType, arg: bool) -> f32; |
| |
| #[wasm_bindgen(method, getter, final)] |
| fn a(this: &MyType) -> u32; |
| #[wasm_bindgen(method, setter, final)] |
| fn set_a(this: &MyType, a: u32); |
| } |
| |
| #[wasm_bindgen_test] |
| fn simple() { |
| assert_eq!(Math::log(1.0), 0.0); |
| } |
| |
| #[wasm_bindgen_test] |
| fn classes() { |
| assert_eq!(MyType::foo("x"), "xy"); |
| let x = MyType::new(2); |
| assert_eq!(x.bar(true), 3.2); |
| assert_eq!(x.a(), 1); |
| x.set_a(3); |
| assert_eq!(x.a(), 3); |
| } |