diff options
Diffstat (limited to 'vendor/wasm-bindgen/tests/wasm/final.rs')
-rw-r--r-- | vendor/wasm-bindgen/tests/wasm/final.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/wasm-bindgen/tests/wasm/final.rs b/vendor/wasm-bindgen/tests/wasm/final.rs new file mode 100644 index 000000000..63aa661f5 --- /dev/null +++ b/vendor/wasm-bindgen/tests/wasm/final.rs @@ -0,0 +1,40 @@ +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); +} |