diff --git a/src/browser/js/Local.zig b/src/browser/js/Local.zig index d3b8f66f2..f5cdf97be 100644 --- a/src/browser/js/Local.zig +++ b/src/browser/js/Local.zig @@ -931,6 +931,12 @@ fn jsValueToTypedArray(comptime T: type, js_val: js.Value) !?[]T { return ptr[0..num_elements]; } }, + f16 => { + if (js_val.isFloat16Array()) { + const ptr = @as([*]f16, @ptrCast(@alignCast(base))); + return ptr[0..num_elements]; + } + }, f32 => { if (js_val.isFloat32Array()) { const ptr = @as([*]f32, @ptrCast(@alignCast(base))); @@ -1071,6 +1077,9 @@ fn probeJsValueToZig(self: *const Local, comptime T: type, js_val: js.Value) !Pr i64 => if (js_val.isBigInt64Array()) { return .{ .ok = {} }; }, + f16 => if (js_val.isFloat16Array()) { + return .{ .ok = {} }; + }, f32 => if (js_val.isFloat32Array()) { return .{ .ok = {} }; }, diff --git a/src/browser/js/Value.zig b/src/browser/js/Value.zig index c6089a277..c57f5ef26 100644 --- a/src/browser/js/Value.zig +++ b/src/browser/js/Value.zig @@ -166,6 +166,10 @@ pub fn isBigInt64Array(self: Value) bool { return v8.v8__Value__IsBigInt64Array(self.handle); } +pub fn isFloat16Array(self: Value) bool { + return v8.v8__Value__IsFloat16Array(self.handle); +} + pub fn isFloat32Array(self: Value) bool { return v8.v8__Value__IsFloat32Array(self.handle); }