From 0346e7b71d4b48f91f2374e6864b15f8d8530fad Mon Sep 17 00:00:00 2001 From: Cheng Shao <terrorjack@type.dance> Date: Sun, 10 Nov 2024 18:21:18 +0000 Subject: [PATCH] wasm: fix FinalizationRegistry logic for Cloudflare Workers This patch fixes FinalizationRegistry related logic for Cloudflare Workers in wasm backend js post linker. Cloudflare Workers doesn't support FinalizationRegistry, in this case we use a dummy implementation that doesn't do anything. (cherry picked from commit bea8ea4cabcd51d098a361bd27d78884effa5d00) --- utils/jsffi/post-link.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/jsffi/post-link.mjs b/utils/jsffi/post-link.mjs index 02fb631f0ac..9e3e0643512 100755 --- a/utils/jsffi/post-link.mjs +++ b/utils/jsffi/post-link.mjs @@ -62,7 +62,7 @@ export async function postLink(mod) { // Keep this in sync with dyld.mjs! src = `${src}\nexport default (__exports) => {`; src = `${src}\nconst __ghc_wasm_jsffi_jsval_manager = new JSValManager();`; - src = `${src}\nconst __ghc_wasm_jsffi_finalization_registry = new FinalizationRegistry(sp => __exports.rts_freeStablePtr(sp));`; + src = `${src}\nconst __ghc_wasm_jsffi_finalization_registry = globalThis.FinalizationRegistry ? new FinalizationRegistry(sp => __exports.rts_freeStablePtr(sp)) : { register: () => {}, unregister: () => true };`; src = `${src}\nreturn {`; src = `${src}\nnewJSVal: (v) => __ghc_wasm_jsffi_jsval_manager.newJSVal(v),`; src = `${src}\ngetJSVal: (k) => __ghc_wasm_jsffi_jsval_manager.getJSVal(k),`; -- GitLab