]> git.proxmox.com Git - rustc.git/blob - vendor/wasm-bindgen/tests/wasm/final.rs
New upstream version 1.70.0+dfsg2
[rustc.git] / vendor / wasm-bindgen / tests / wasm / final.rs
1 use wasm_bindgen::prelude::*;
2 use wasm_bindgen_test::*;
3
4 #[wasm_bindgen]
5 extern "C" {
6 type Math;
7 #[wasm_bindgen(static_method_of = Math, final)]
8 fn log(f: f32) -> f32;
9 }
10
11 #[wasm_bindgen(module = "tests/wasm/final.js")]
12 extern "C" {
13 type MyType;
14 #[wasm_bindgen(constructor, final)]
15 fn new(x: u32) -> MyType;
16 #[wasm_bindgen(static_method_of = MyType, final)]
17 fn foo(a: &str) -> String;
18 #[wasm_bindgen(method, final)]
19 fn bar(this: &MyType, arg: bool) -> f32;
20
21 #[wasm_bindgen(method, getter, final)]
22 fn a(this: &MyType) -> u32;
23 #[wasm_bindgen(method, setter, final)]
24 fn set_a(this: &MyType, a: u32);
25 }
26
27 #[wasm_bindgen_test]
28 fn simple() {
29 assert_eq!(Math::log(1.0), 0.0);
30 }
31
32 #[wasm_bindgen_test]
33 fn classes() {
34 assert_eq!(MyType::foo("x"), "xy");
35 let x = MyType::new(2);
36 assert_eq!(x.bar(true), 3.2);
37 assert_eq!(x.a(), 1);
38 x.set_a(3);
39 assert_eq!(x.a(), 3);
40 }