From d91bec08c37144a97531c1bb2e1a7d356d75b158 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Fri, 13 Feb 2026 13:47:26 +0800 Subject: [PATCH] Add missing validation to range setStart and setEnd Fixes the remaining failing cases (400!) of WPT dom/ranges/Range-set.html --- src/browser/webapi/Range.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/browser/webapi/Range.zig b/src/browser/webapi/Range.zig index 1d1f6442..85d2ee70 100644 --- a/src/browser/webapi/Range.zig +++ b/src/browser/webapi/Range.zig @@ -37,6 +37,10 @@ pub fn init(page: *Page) !*Range { } pub fn setStart(self: *Range, node: *Node, offset: u32) !void { + if (node._type == .document_type) { + return error.InvalidNodeType; + } + if (offset > node.getLength()) { return error.IndexSizeError; } @@ -54,6 +58,10 @@ pub fn setStart(self: *Range, node: *Node, offset: u32) !void { } pub fn setEnd(self: *Range, node: *Node, offset: u32) !void { + if (node._type == .document_type) { + return error.InvalidNodeType; + } + // Validate offset if (offset > node.getLength()) { return error.IndexSizeError;