From 084e83572d6309e6a3f33e7bf84a3d1c47af98ff Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Thu, 23 Jul 2026 10:51:48 +0800 Subject: [PATCH 1/2] v8: Expose Float16Array Depends on https://github.com/lightpanda-io/zig-v8-fork/pull/191 If nothing else, it allows more WPT tests to pass, e.g.: /websockets/Send-binary-arraybufferview-float16.any.html?default --- src/browser/js/Local.zig | 9 +++++++++ src/browser/js/Value.zig | 4 ++++ 2 files changed, 13 insertions(+) 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); } From e2f80ace33837a848a7ad7d54a44c13a68a19449 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Fri, 24 Jul 2026 11:34:45 +0800 Subject: [PATCH 2/2] update v8 dep --- .github/actions/install/action.yml | 2 +- .github/actions/v8-snapshot/action.yml | 2 +- Dockerfile | 2 +- build.zig.zon | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml index f6a6eaf09..5b5541562 100644 --- a/.github/actions/install/action.yml +++ b/.github/actions/install/action.yml @@ -13,7 +13,7 @@ inputs: zig-v8: description: 'zig v8 version to install' required: false - default: 'v0.5.1' + default: 'v0.5.2' v8: description: 'v8 version to install' required: false diff --git a/.github/actions/v8-snapshot/action.yml b/.github/actions/v8-snapshot/action.yml index b85b56d79..11641e7ac 100644 --- a/.github/actions/v8-snapshot/action.yml +++ b/.github/actions/v8-snapshot/action.yml @@ -13,7 +13,7 @@ inputs: zig-v8: description: 'zig-v8 release tag the prebuilt lib came from' required: false - default: 'v0.5.1' + default: 'v0.5.2' runs: using: "composite" diff --git a/Dockerfile b/Dockerfile index 70b5cf5db..d994dbcea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM debian:stable-slim ARG MINISIG=0.12 ARG ZIG_MINISIG=RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U ARG V8=14.9.207.35 -ARG ZIG_V8=v0.5.1 +ARG ZIG_V8=v0.5.2 ARG TARGETPLATFORM RUN apt-get update -yq && \ diff --git a/build.zig.zon b/build.zig.zon index 725fbed4d..2391b63f9 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -5,8 +5,8 @@ .minimum_zig_version = "0.16.0", .dependencies = .{ .v8 = .{ - .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/d2f997de95dd35174969e38599d98be50c057d85.tar.gz", - .hash = "v8-0.0.0-xddH6zTvAgB67DOl86uWsVwNpK8VXaEOYzu8fkl9glNe", + .url = "https://github.com/lightpanda-io/zig-v8-fork/archive/78b6c77d5f6f040a575539203e6f3fad42453890.tar.gz", + .hash = "v8-0.0.0-xddH6xHyAgDVbf39iQaZfmzZCdNi7m3iTqOKbKz74Ggx", }, // .v8 = .{ .path = "../zig-v8-fork" }, .brotli = .{