diff --git a/crates/cli-support/src/js/mod.rs b/crates/cli-support/src/js/mod.rs index 3bc66cbf..18213433 100644 --- a/crates/cli-support/src/js/mod.rs +++ b/crates/cli-support/src/js/mod.rs @@ -249,7 +249,7 @@ impl<'a> Context<'a> { format!("{}{}\n", export, contents) } else { assert_eq!(export_name, definition_name); - format!("{}const {} = {};\n", export, export_name, contents) + format!("{}const {name} = {};\n__exports.{name} = {name};", export, contents, name = export_name) } } }; diff --git a/tests/headless/main.rs b/tests/headless/main.rs index 88bffc75..c2b2ed2d 100755 --- a/tests/headless/main.rs +++ b/tests/headless/main.rs @@ -51,3 +51,11 @@ pub mod snippets; pub mod modules; pub mod anyref_heap_live_count; pub mod strings; + +#[wasm_bindgen_test] +fn closures_work() { + let x = Closure::wrap(Box::new(|| {}) as Box); + drop(x); + let x = Closure::wrap(Box::new(|| {}) as Box); + x.forget(); +}