diff options
Diffstat (limited to 'vendor/wasm-bindgen/tests/headless/main.rs')
-rw-r--r-- | vendor/wasm-bindgen/tests/headless/main.rs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vendor/wasm-bindgen/tests/headless/main.rs b/vendor/wasm-bindgen/tests/headless/main.rs new file mode 100644 index 000000000..b5f6f12a0 --- /dev/null +++ b/vendor/wasm-bindgen/tests/headless/main.rs @@ -0,0 +1,61 @@ +#![cfg(target_arch = "wasm32")] + +extern crate wasm_bindgen; +extern crate wasm_bindgen_test; + +use wasm_bindgen::prelude::*; +use wasm_bindgen_test::*; + +wasm_bindgen_test_configure!(run_in_browser); + +#[wasm_bindgen] +pub struct ConsumeRetString; + +#[wasm_bindgen] +impl ConsumeRetString { + // https://github.com/rustwasm/wasm-bindgen/issues/329#issuecomment-411082013 + // + // This used to cause two `const ptr = ...` declarations, which is invalid + // JS. + pub fn consume(self) -> String { + String::new() + } +} + +#[wasm_bindgen_test] +fn works() { + ConsumeRetString.consume(); +} + +#[wasm_bindgen] +extern "C" { + #[wasm_bindgen(js_namespace = console)] + pub fn log(s: &str); +} + +#[wasm_bindgen_test] +fn can_log_html_strings() { + log("<script>alert('lol')</script>"); +} + +#[wasm_bindgen] +pub fn import_export_same_name() { + #[wasm_bindgen(module = "/tests/headless/main.js")] + extern "C" { + fn import_export_same_name(); + } + import_export_same_name(); +} + +pub mod externref_heap_live_count; +pub mod modules; +pub mod snippets; +pub mod strings; + +#[wasm_bindgen_test] +fn closures_work() { + let x = Closure::wrap(Box::new(|| {}) as Box<dyn FnMut()>); + drop(x); + let x = Closure::wrap(Box::new(|| {}) as Box<dyn FnMut()>); + x.forget(); +} |