Fix static accessors

These are called without a self from v8, and should match that in Zig code.
This commit is contained in:
Karl Seguin
2026-01-18 08:30:50 +08:00
parent 5400dc783e
commit cd67ed8a27
3 changed files with 17 additions and 5 deletions

View File

@@ -720,10 +720,17 @@ pub const Accessor = struct {
defer caller.deinit();
const info = FunctionCallbackInfo{ .handle = handle.? };
caller.method(T, getter, info, .{
.as_typed_array = opts.as_typed_array,
.null_as_undefined = opts.null_as_undefined,
});
if (comptime opts.static) {
caller.function(T, getter, info, .{
.as_typed_array = opts.as_typed_array,
.null_as_undefined = opts.null_as_undefined,
});
} else {
caller.method(T, getter, info, .{
.as_typed_array = opts.as_typed_array,
.null_as_undefined = opts.null_as_undefined,
});
}
}
}.wrap;
}

View File

@@ -37,6 +37,7 @@
}
</script>
<<<<<<< HEAD
<script id="microtask_access_to_list">
{
@@ -64,3 +65,7 @@
});
}
</script>
<script>
testing.expectEqual(['mark', 'measure'], PerformanceObserver.supportedEntryTypes);
</script>

View File

@@ -133,7 +133,7 @@ pub fn takeRecords(self: *PerformanceObserver, page: *Page) ![]*Performance.Entr
return records;
}
pub fn getSupportedEntryTypes(_: *const PerformanceObserver) []const []const u8 {
pub fn getSupportedEntryTypes() []const []const u8 {
return &.{ "mark", "measure" };
}