diff options
Diffstat (limited to 'runtime/worker.rs')
-rw-r--r-- | runtime/worker.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/runtime/worker.rs b/runtime/worker.rs index ad31cacc6..7a3a6c1c3 100644 --- a/runtime/worker.rs +++ b/runtime/worker.rs @@ -313,7 +313,13 @@ impl MainWorker { &mut self, script_name: &str, ) -> Result<(), AnyError> { - self.execute_script(script_name, "window.dispatchEvent(new Event('load'))") + self.execute_script( + script_name, + // NOTE(@bartlomieju): not using `globalThis` here, because user might delete + // it. Instead we're using global `dispatchEvent` function which will + // used a saved reference to global scope. + "dispatchEvent(new Event('load'))", + ) } /// Dispatches "unload" event to the JavaScript runtime. @@ -323,8 +329,13 @@ impl MainWorker { &mut self, script_name: &str, ) -> Result<(), AnyError> { - self - .execute_script(script_name, "window.dispatchEvent(new Event('unload'))") + self.execute_script( + script_name, + // NOTE(@bartlomieju): not using `globalThis` here, because user might delete + // it. Instead we're using global `dispatchEvent` function which will + // used a saved reference to global scope. + "dispatchEvent(new Event('unload'))", + ) } } |