diff --git a/src/browser/html/DataSet.zig b/src/browser/html/DataSet.zig index df17c9dc..3c5a24e4 100644 --- a/src/browser/html/DataSet.zig +++ b/src/browser/html/DataSet.zig @@ -17,6 +17,7 @@ // along with this program. If not, see . const std = @import("std"); const parser = @import("../netsurf.zig"); +const Env = @import("../env.zig").Env; const Page = @import("../page.zig").Page; const Allocator = std.mem.Allocator; @@ -25,16 +26,12 @@ const DataSet = @This(); element: *parser.Element, -const GetResult = union(enum) { - value: []const u8, - undefined: void, -}; -pub fn named_get(self: *const DataSet, name: []const u8, _: *bool, page: *Page) !GetResult { +pub fn named_get(self: *const DataSet, name: []const u8, _: *bool, page: *Page) !Env.UndefinedOr([]const u8) { const normalized_name = try normalize(page.call_arena, name); if (try parser.elementGetAttribute(self.element, normalized_name)) |value| { return .{ .value = value }; } - return .{ .undefined = {} }; + return .undefined; } pub fn named_set(self: *DataSet, name: []const u8, value: []const u8, _: *bool, page: *Page) !void { diff --git a/src/browser/html/error_event.zig b/src/browser/html/error_event.zig index 8f9c18a1..45804e6d 100644 --- a/src/browser/html/error_event.zig +++ b/src/browser/html/error_event.zig @@ -72,15 +72,11 @@ pub const ErrorEvent = struct { return self.colno; } - const ErrorValue = union(enum) { - obj: Env.JsObject, - undefined: void, - }; - pub fn get_error(self: *const ErrorEvent) ErrorValue { + pub fn get_error(self: *const ErrorEvent) Env.UndefinedOr(Env.JsObject) { if (self.@"error") |e| { - return .{ .obj = e }; + return .{ .value = e }; } - return .{ .undefined = {} }; + return .undefined; } }; diff --git a/src/runtime/js.zig b/src/runtime/js.zig index fbdb9a91..9539b2be 100644 --- a/src/runtime/js.zig +++ b/src/runtime/js.zig @@ -1867,6 +1867,13 @@ pub fn Env(comptime State: type, comptime WebApis: type) type { } }; + pub fn UndefinedOr(comptime T: type) type { + return union(enum) { + undefined: void, + value: T, + }; + } + fn compileModule(isolate: v8.Isolate, src: []const u8, name: []const u8) !v8.Module { // compile const script_name = v8.String.initUtf8(isolate, name);