run microtasks after each script execution

This don't change the behavior for async and deferred scripts.

just run microtasks after a script execution
This commit is contained in:
Halil Durak
2025-12-24 12:37:47 +03:00
parent c0704f822b
commit b28ac8ca19

View File

@@ -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
@@ -801,7 +801,8 @@ pub const Script = struct {
log.debug(.browser, "executed script", .{ .src = url, .success = success, .on_load = script_element._on_load != null });
}
defer page.tick();
// We should run microtasks even if script execution fails.
defer page.js.runMicrotasks();
if (success) {
self.executeCallback("load", script_element._on_load, page);