wasm-bindgen/tests/wasm/final.rs
2018-11-09 08:00:41 -08:00

41 lines
938 B
Rust

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);
}