create distinct Event objects for each load event

This commit is contained in:
Halil Durak
2026-02-05 16:47:09 +03:00
parent 761c103373
commit c04a6e501e

View File

@@ -698,8 +698,6 @@ pub fn documentIsComplete(self: *Page) void {
fn _documentIsComplete(self: *Page) !void { fn _documentIsComplete(self: *Page) !void {
self.document._ready_state = .complete; self.document._ready_state = .complete;
const event = try Event.initTrusted("load", .{}, self);
var ls: JS.Local.Scope = undefined; var ls: JS.Local.Scope = undefined;
self.js.localScope(&ls); self.js.localScope(&ls);
defer ls.deinit(); defer ls.deinit();
@@ -707,6 +705,7 @@ fn _documentIsComplete(self: *Page) !void {
// Dispatch `_to_load` events before window.load. // Dispatch `_to_load` events before window.load.
for (self._to_load.items) |element| { for (self._to_load.items) |element| {
const maybe_inline_listener = self.getAttrListener(element, .onload); const maybe_inline_listener = self.getAttrListener(element, .onload);
const event = try Event.initTrusted("load", .{}, self);
try self._event_manager.dispatchWithFunction( try self._event_manager.dispatchWithFunction(
element.asEventTarget(), element.asEventTarget(),
@@ -724,6 +723,7 @@ fn _documentIsComplete(self: *Page) !void {
self._to_load.clearAndFree(self.arena); self._to_load.clearAndFree(self.arena);
// Dispatch window.load event. // Dispatch window.load event.
const event = try Event.initTrusted("load", .{}, self);
// This event is weird, it's dispatched directly on the window, but // This event is weird, it's dispatched directly on the window, but
// with the document as the target. // with the document as the target.
event._target = self.document.asEventTarget(); event._target = self.document.asEventTarget();