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