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);