From 6b33912f429e94125eee86757ec5a71cee5dc77a Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Thu, 17 Mar 2022 20:52:10 -0700 Subject: [PATCH] Fix crash when printing errors that are an unexpected type --- .../bunjs-only-snippets/reportError.test.js | 20 +++++++++++++++++++ src/javascript/jsc/javascript.zig | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/integration/bunjs-only-snippets/reportError.test.js b/integration/bunjs-only-snippets/reportError.test.js index ed25bd7436..6ba202b7fe 100644 --- a/integration/bunjs-only-snippets/reportError.test.js +++ b/integration/bunjs-only-snippets/reportError.test.js @@ -1,5 +1,25 @@ import { it } from "bun:test"; it("reportError", () => { + console.error("---BEGIN REPORT ERROR TEST--"); + // make sure we don't crash when given non-sensical types reportError(new Error("reportError Test!")); + reportError(true); + reportError(false); + reportError(null); + reportError(123); + reportError(Infinity); + reportError(NaN); + reportError(-NaN); + reportError(""); + reportError(new Uint8Array(1)); + reportError(new Uint8Array(0)); + reportError(new ArrayBuffer(0)); + reportError(new ArrayBuffer(1)); + reportError("string"); + reportError([]); + reportError([123, null]); + reportError({}); + reportError([{}]); + console.error("---END REPORT ERROR TEST--"); }); diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig index 072f685b3d..88132aa77b 100644 --- a/src/javascript/jsc/javascript.zig +++ b/src/javascript/jsc/javascript.zig @@ -1707,7 +1707,7 @@ pub const VirtualMachine = struct { }, else => { this.printErrorInstance( - @intToEnum(JSValue, @intCast(i64, (@ptrToInt(value)))), + @intToEnum(JSValue, @bitCast(JSValue.Type, (@ptrToInt(value)))), exception_list, Writer, writer,