diff --git a/src/browser/html/window.zig b/src/browser/html/window.zig
index b1aedf51..1d5f8064 100644
--- a/src/browser/html/window.zig
+++ b/src/browser/html/window.zig
@@ -127,7 +127,18 @@ pub const Window = struct {
return self;
}
+ // frames return the window itself, but accessing it via a pseudo
+ // array returns the Window object corresponding to the given frame or
+ // iframe.
+ // https://developer.mozilla.org/en-US/docs/Web/API/Window/frames
+ pub fn get_frames(self: *Window) *Window {
+ return self;
+ }
// TODO: frames
+ pub fn get_length(_: *Window) u32 {
+ return 0;
+ }
+
pub fn get_top(self: *Window) *Window {
return self;
}
@@ -504,6 +515,14 @@ test "Browser.HTML.Window" {
.{ "scrollend", "true" },
}, .{});
+ try runner.testCases(&.{
+ .{ "window == window.self", "true" },
+ .{ "window == window.parent", "true" },
+ .{ "window == window.top", "true" },
+ .{ "window == window.frames", "true" },
+ .{ "window.frames.length", "0" },
+ }, .{});
+
try runner.testCases(&.{
.{ "var qm = false; window.queueMicrotask(() => {qm = true });", null },
.{ "qm", "true" },