From f536f169266ae84592362ef341329bf439752431 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Sat, 22 Nov 2025 23:04:17 +0800 Subject: [PATCH] Correct exception on custom element re-definition --- src/browser/webapi/Crypto.zig | 4 ++-- src/browser/webapi/CustomElementRegistry.zig | 3 ++- src/browser/webapi/DOMException.zig | 2 +- src/browser/webapi/IntersectionObserver.zig | 9 ++------- src/browser/webapi/net/Headers.zig | 1 - 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/browser/webapi/Crypto.zig b/src/browser/webapi/Crypto.zig index 2c54689c..069715b8 100644 --- a/src/browser/webapi/Crypto.zig +++ b/src/browser/webapi/Crypto.zig @@ -73,8 +73,8 @@ pub const JsApi = struct { pub const empty_with_no_proto = true; }; - pub const getRandomValues = bridge.function(Crypto.getRandomValues, .{ }); - pub const randomUUID = bridge.function(Crypto.randomUUID, .{ }); + pub const getRandomValues = bridge.function(Crypto.getRandomValues, .{}); + pub const randomUUID = bridge.function(Crypto.randomUUID, .{}); }; const testing = @import("../../testing.zig"); diff --git a/src/browser/webapi/CustomElementRegistry.zig b/src/browser/webapi/CustomElementRegistry.zig index c97fab0d..361aced5 100644 --- a/src/browser/webapi/CustomElementRegistry.zig +++ b/src/browser/webapi/CustomElementRegistry.zig @@ -51,7 +51,8 @@ pub fn define(self: *CustomElementRegistry, name: []const u8, constructor: js.Fu const gop = try self._definitions.getOrPut(page.arena, name); if (gop.found_existing) { - return error.AlreadyDefined; + // Yes, this is the correct error to return when trying to redefine a name + return error.NotSupported; } const owned_name = try page.dupeString(name); diff --git a/src/browser/webapi/DOMException.zig b/src/browser/webapi/DOMException.zig index 07c7137f..2f1cc789 100644 --- a/src/browser/webapi/DOMException.zig +++ b/src/browser/webapi/DOMException.zig @@ -47,7 +47,7 @@ pub fn getName(self: *const DOMException) []const u8 { .invalid_character_error => "InvalidCharacterError", .syntax_error => "SyntaxError", .not_found => "NotFoundError", - .not_supported => "NotSupported", + .not_supported => "NotSupportedError", .hierarchy_error => "HierarchyError", }; } diff --git a/src/browser/webapi/IntersectionObserver.zig b/src/browser/webapi/IntersectionObserver.zig index d9722be7..c6940899 100644 --- a/src/browser/webapi/IntersectionObserver.zig +++ b/src/browser/webapi/IntersectionObserver.zig @@ -53,7 +53,7 @@ var zero_rect: DOMRect = .{ pub const ObserverInit = struct { root: ?*Element = null, rootMargin: ?[]const u8 = null, - threshold: Threshold = .{.scalar = 0.0}, + threshold: Threshold = .{ .scalar = 0.0 }, const Threshold = union(enum) { scalar: f64, @@ -74,12 +74,7 @@ pub fn init(callback: js.Function, options: ?ObserverInit, page: *Page) !*Inters .array => |arr| try page.arena.dupe(f64, arr), }; - return page._factory.create(IntersectionObserver{ - ._callback = callback, - ._root = opts.root, - ._root_margin = root_margin, - ._threshold = threshold - }); + return page._factory.create(IntersectionObserver{ ._callback = callback, ._root = opts.root, ._root_margin = root_margin, ._threshold = threshold }); } pub fn observe(self: *IntersectionObserver, target: *Element, page: *Page) !void { diff --git a/src/browser/webapi/net/Headers.zig b/src/browser/webapi/net/Headers.zig index 2f2fa68f..9dea0b95 100644 --- a/src/browser/webapi/net/Headers.zig +++ b/src/browser/webapi/net/Headers.zig @@ -14,7 +14,6 @@ pub fn init(page: *Page) !*Headers { }); } - pub fn append(self: *Headers, name: []const u8, value: []const u8, page: *Page) !void { try self._list.append(page.arena, name, value); }