diff --git a/src/browser/tests/element/pseudo_classes.html b/src/browser/tests/element/pseudo_classes.html index fe75ab84..355d2ee7 100644 --- a/src/browser/tests/element/pseudo_classes.html +++ b/src/browser/tests/element/pseudo_classes.html @@ -81,6 +81,17 @@ } + +
diff --git a/src/browser/webapi/selector/Parser.zig b/src/browser/webapi/selector/Parser.zig index 376bbcdc..f9b1bb23 100644 --- a/src/browser/webapi/selector/Parser.zig +++ b/src/browser/webapi/selector/Parser.zig @@ -487,7 +487,7 @@ fn pseudoClass(self: *Parser, arena: Allocator, page: *Page) !Selector.PseudoCla if (self.peek() != ')') return error.InvalidPseudoClass; self.input = self.input[1..]; - if (selectors.items.len == 0) return error.InvalidPseudoClass; + // Empty :is() is valid per spec - matches nothing return .{ .is = selectors.items }; } @@ -514,7 +514,7 @@ fn pseudoClass(self: *Parser, arena: Allocator, page: *Page) !Selector.PseudoCla if (self.peek() != ')') return error.InvalidPseudoClass; self.input = self.input[1..]; - if (selectors.items.len == 0) return error.InvalidPseudoClass; + // Empty :where() is valid per spec - matches nothing return .{ .where = selectors.items }; }