diff --git a/crates/backend/src/codegen.rs b/crates/backend/src/codegen.rs index a91c44df..0377db16 100644 --- a/crates/backend/src/codegen.rs +++ b/crates/backend/src/codegen.rs @@ -779,8 +779,10 @@ impl ToTokens for ast::ImportStatic { } } + static mut _VAL: ::wasm_bindgen::__rt::core::cell::UnsafeCell> = + ::wasm_bindgen::__rt::core::cell::UnsafeCell::new(None); ::wasm_bindgen::JsStatic { - __inner: ::wasm_bindgen::__rt::core::cell::UnsafeCell::new(None), + __inner: unsafe { &_VAL }, __init: init, } }; diff --git a/src/lib.rs b/src/lib.rs index 85667269..cb3321cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -303,9 +303,9 @@ impl Drop for JsValue { /// /// This type implements `Deref` to the inner type so it's typically used as if /// it were `&T`. -pub struct JsStatic { +pub struct JsStatic { #[doc(hidden)] - pub __inner: UnsafeCell>, + pub __inner: &'static UnsafeCell>, #[doc(hidden)] pub __init: fn() -> T, }