summaryrefslogtreecommitdiffstats
path: root/vendor/wasm-bindgen/tests/wasm/final.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/wasm-bindgen/tests/wasm/final.rs')
-rw-r--r--vendor/wasm-bindgen/tests/wasm/final.rs40
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);
+}