diff --git a/src/browser/Page.zig b/src/browser/Page.zig index 37f92b57..1d8a0e98 100644 --- a/src/browser/Page.zig +++ b/src/browser/Page.zig @@ -945,16 +945,6 @@ fn printWaitAnalysis(self: *Page) void { } } -pub fn tick(self: *Page) void { - if (comptime IS_DEBUG) { - log.debug(.page, "tick", .{}); - } - _ = self.scheduler.run() catch |err| { - log.err(.page, "tick", .{ .err = err }); - }; - self.js.runMicrotasks(); -} - pub fn isGoingAway(self: *const Page) bool { return self._queued_navigation != null; } diff --git a/src/browser/ScriptManager.zig b/src/browser/ScriptManager.zig index 1936f390..4674d917 100644 --- a/src/browser/ScriptManager.zig +++ b/src/browser/ScriptManager.zig @@ -38,7 +38,7 @@ const ScriptManager = @This(); page: *Page, -// used to prevent recursive evalutaion +// used to prevent recursive evaluation is_evaluating: bool, // Only once this is true can deferred scripts be run @@ -803,7 +803,13 @@ pub const Script = struct { log.debug(.browser, "executed script", .{ .src = url, .success = success, .on_load = script_element._on_load != null }); } - defer page.tick(); + defer { + // We should run microtasks even if script execution fails. + page.js.runMicrotasks(); + _ = page.scheduler.run() catch |err| { + log.err(.page, "scheduler", .{ .err = err }); + }; + } if (success) { self.executeCallback("load", script_element._on_load, page);