diff --git a/src/browser/js/Local.zig b/src/browser/js/Local.zig index 55baa597c..f77a0fb5c 100644 --- a/src/browser/js/Local.zig +++ b/src/browser/js/Local.zig @@ -623,7 +623,8 @@ pub fn jsValueToZig(self: *const Local, comptime T: type, js_val: js.Value) !T { return try self.jsValueToZig(o.child, js_val); }, .float => |f| switch (f.bits) { - 0...32 => return js_val.toF32(), + 0...16 => return js_val.toF16(), + 17...32 => return js_val.toF32(), 33...64 => return js_val.toF64(), else => {}, }, diff --git a/src/browser/js/Value.zig b/src/browser/js/Value.zig index 95dc641dc..c6089a277 100644 --- a/src/browser/js/Value.zig +++ b/src/browser/js/Value.zig @@ -234,6 +234,10 @@ pub fn typeOf(self: Value) js.String { return js.String{ .local = self.local, .handle = str_handle }; } +pub fn toF16(self: Value) !f16 { + return @floatCast(try self.toF64()); +} + pub fn toF32(self: Value) !f32 { return @floatCast(try self.toF64()); } diff --git a/src/browser/tests/net/websocket.html b/src/browser/tests/net/websocket.html index 6c326a502..052c928ac 100644 --- a/src/browser/tests/net/websocket.html +++ b/src/browser/tests/net/websocket.html @@ -562,6 +562,60 @@ } + + + +