diff --git a/src/browser/html/window.zig b/src/browser/html/window.zig index 78f57fd1..ecb5fbbe 100644 --- a/src/browser/html/window.zig +++ b/src/browser/html/window.zig @@ -190,7 +190,6 @@ pub const Window = struct { return page.loop.cancel(kv.value.loop_id); } - // TODO handle callback arguments. pub fn _setTimeout(self: *Window, cbk: Function, delay: ?u32, page: *Page) !u32 { return self.createTimeout(cbk, delay, page, .{}); } @@ -210,6 +209,10 @@ pub const Window = struct { return page.loop.cancel(kv.value.loop_id); } + pub fn _queueMicrotask(self: *Window, cbk: Function, page: *Page) !u32 { + return self.createTimeout(cbk, 0, page, .{}); + } + pub fn _matchMedia(_: *const Window, media: []const u8, page: *Page) !MediaQueryList { return .{ .matches = false, // TODO? @@ -468,4 +471,9 @@ test "Browser.HTML.Window" { .{ "scroll", "true" }, .{ "scrollend", "true" }, }, .{}); + + try runner.testCases(&.{ + .{ "var qm = false; window.queueMicrotask(() => {qm = true });", null }, + .{ "qm", "true" }, + }, .{}); }