From 182e600eb79655e85b3f0371bc46fc4de8e70094 Mon Sep 17 00:00:00 2001 From: jhmaster <32803471+jhmaster2000@users.noreply.github.com> Date: Tue, 8 Aug 2023 03:30:05 -0300 Subject: Fix `Bun.hash` functions (#4054) * fix `Bun.hash` functions to behave as expected * update Bun.hash tests * properly test the returned hash * include murmur32v2 * update Bun.hash docs * run fmt --- src/bun.js/api/bun.zig | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/bun.js/api/bun.zig') diff --git a/src/bun.js/api/bun.zig b/src/bun.js/api/bun.zig index 5210063ea..fe0aafc25 100644 --- a/src/bun.js/api/bun.zig +++ b/src/bun.js/api/bun.zig @@ -3192,24 +3192,24 @@ pub const Hash = struct { } else { var seed: u64 = 0; if (args.nextEat()) |arg| { - if (arg.isNumber()) { - seed = arg.toU32(); + if (arg.isNumber() or arg.isBigInt()) { + seed = arg.toUInt64NoTruncate(); } } if (comptime std.meta.trait.isNumber(@TypeOf(function_args[0]))) { - function_args[0] = @as(@TypeOf(function_args[0]), @intCast(seed)); + function_args[0] = @as(@TypeOf(function_args[0]), @truncate(seed)); function_args[1] = input; } else { - function_args[1] = @as(@TypeOf(function_args[1]), @intCast(seed)); function_args[0] = input; + function_args[1] = @as(@TypeOf(function_args[1]), @truncate(seed)); } const value = @call(.auto, Function, function_args); if (@TypeOf(value) == u32) { - return JSC.JSValue.jsNumber(@as(i32, @bitCast(value))).asObjectRef(); + return JSC.JSValue.jsNumber(@as(u32, @bitCast(value))).asObjectRef(); } - return JSC.JSValue.jsNumber(value).asObjectRef(); + return JSC.JSValue.fromUInt64NoTruncate(ctx.ptr(), value).asObjectRef(); } } }; -- cgit v1.2.3