diff options
Diffstat (limited to 'runtime/js/99_main.js')
-rw-r--r-- | runtime/js/99_main.js | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/js/99_main.js b/runtime/js/99_main.js index a6abc8d27..fd846af20 100644 --- a/runtime/js/99_main.js +++ b/runtime/js/99_main.js @@ -305,6 +305,15 @@ delete Object.prototype.__proto__; defineEventHandler(window, "load", null); defineEventHandler(window, "unload", null); + const isUnloadDispatched = Symbol.for("isUnloadDispatched"); + // Stores the flag for checking whether unload is dispatched or not. + // This prevents the recursive dispatches of unload events. + // See https://github.com/denoland/deno/issues/9201. + window[isUnloadDispatched] = false; + window.addEventListener("unload", () => { + window[isUnloadDispatched] = true; + }); + runtimeStart(runtimeOptions); const { args, |