aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-17 20:52:10 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-03-17 20:52:10 -0700
commit6b33912f429e94125eee86757ec5a71cee5dc77a (patch)
tree43a7f673b7223e2d8f7622aeb9e7346b321decd0
parente4f67a7fc9591c4e26a67b97814d2f1780151e40 (diff)
downloadbun-6b33912f429e94125eee86757ec5a71cee5dc77a.tar.gz
bun-6b33912f429e94125eee86757ec5a71cee5dc77a.tar.zst
bun-6b33912f429e94125eee86757ec5a71cee5dc77a.zip
Fix crash when printing errors that are an unexpected type
Diffstat (limited to '')
-rw-r--r--integration/bunjs-only-snippets/reportError.test.js20
-rw-r--r--src/javascript/jsc/javascript.zig2
2 files changed, 21 insertions, 1 deletions
diff --git a/integration/bunjs-only-snippets/reportError.test.js b/integration/bunjs-only-snippets/reportError.test.js
index ed25bd743..6ba202b7f 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 072f685b3..88132aa77 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,