From bd7b84e13681eac2b37c20985ff58ad3dfe94463 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Mon, 3 Mar 2025 15:17:59 +0100 Subject: [PATCH] loop: reset the loop after page end --- src/browser/browser.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/browser/browser.zig b/src/browser/browser.zig index 7b875657..ffedfb29 100644 --- a/src/browser/browser.zig +++ b/src/browser/browser.zig @@ -121,6 +121,7 @@ pub const Session = struct { loader: Loader, env: Env, + loop: *Loop, inspector: jsruntime.Inspector, window: Window, @@ -143,6 +144,7 @@ pub const Session = struct { .storageShed = storage.Shed.init(allocator), .arena = std.heap.ArenaAllocator.init(allocator), .window = Window.create(null, .{ .agent = user_agent }), + .loop = loop, }; const arena = self.arena.allocator(); @@ -278,6 +280,9 @@ pub const Page = struct { // reset js env and mem arena. pub fn end(self: *Page) void { + // Reset all existing callbacks. + self.session.loop.reset(); + self.session.env.stop(); // TODO unload document: https://html.spec.whatwg.org/#unloading-documents