diff --git a/src/browser/js/Local.zig b/src/browser/js/Local.zig index af7d1116..8ef62701 100644 --- a/src/browser/js/Local.zig +++ b/src/browser/js/Local.zig @@ -1206,9 +1206,9 @@ pub fn stackTrace(self: *const Local) !?[]const u8 { } // == Promise Helpers == -pub fn rejectPromise(self: *const Local, comptime kind: js.PromiseResolver.RejectError) js.Promise { +pub fn rejectPromise(self: *const Local, err: js.PromiseResolver.RejectError) js.Promise { var resolver = js.PromiseResolver.init(self); - resolver.rejectError("Local.rejectPromise", kind); + resolver.rejectError("Local.rejectPromise", err); return resolver.promise(); } diff --git a/src/browser/js/PromiseResolver.zig b/src/browser/js/PromiseResolver.zig index 7743fa48..fb3192c0 100644 --- a/src/browser/js/PromiseResolver.zig +++ b/src/browser/js/PromiseResolver.zig @@ -20,7 +20,6 @@ const js = @import("js.zig"); const v8 = js.v8; const log = @import("../../log.zig"); -const DOMException = @import("../webapi/DOMException.zig"); const DOMException = @import("../webapi/DOMException.zig"); @@ -67,17 +66,13 @@ pub fn reject(self: PromiseResolver, comptime source: []const u8, value: anytype }; } -pub const RejectError = union(enum(u4)) { +pub const RejectError = union(enum) { /// Not to be confused with `DOMException`; this is bare `Error`. generic_error: []const u8, range_error: []const u8, reference_error: []const u8, syntax_error: []const u8, type_error: []const u8, - wasm_compile_error: void, // TODO. - wasm_link_error: void, // TODO. - wasm_runtime_error: void, // TODO. - wasm_suspend_error: void, // TODO. /// DOM exceptions are unknown to V8, belongs to web standards. dom_exception: struct { err: anyerror }, }; @@ -86,9 +81,9 @@ pub const RejectError = union(enum(u4)) { pub fn rejectError( self: PromiseResolver, comptime source: []const u8, - comptime kind: RejectError, + err: RejectError, ) void { - const handle = switch (kind) { + const handle = switch (err) { .generic_error => |msg| self.local.isolate.createError(msg), .range_error => |msg| self.local.isolate.createRangeError(msg), .reference_error => |msg| self.local.isolate.createReferenceError(msg), @@ -101,7 +96,6 @@ pub fn rejectError( }; return; }, - inline else => unreachable, }; self._reject(js.Value{ .handle = handle, .local = self.local }) catch |reject_err| { diff --git a/src/browser/webapi/Navigator.zig b/src/browser/webapi/Navigator.zig index 218110c9..49f1f716 100644 --- a/src/browser/webapi/Navigator.zig +++ b/src/browser/webapi/Navigator.zig @@ -73,7 +73,7 @@ pub fn getStorage(self: *Navigator) *StorageManager { pub fn getBattery(_: *const Navigator, page: *Page) !js.Promise { log.info(.not_implemented, "navigator.getBattery", .{}); - return page.js.local.?.rejectErrorPromise(.{ .dom_exception = error.NotSupported }); + return page.js.local.?.rejectErrorPromise(.{ .dom_exception = .{ .err = error.NotSupported } }); } pub fn registerProtocolHandler(_: *const Navigator, scheme: []const u8, url: [:0]const u8, page: *const Page) !void {