aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/bindings.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/bindings/bindings.zig')
-rw-r--r--src/bun.js/bindings/bindings.zig21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig
index f737c783e..3b41c9fa4 100644
--- a/src/bun.js/bindings/bindings.zig
+++ b/src/bun.js/bindings/bindings.zig
@@ -1896,6 +1896,27 @@ pub const JSGlobalObject = extern struct {
}
}
+ pub fn throwError(
+ this: *JSGlobalObject,
+ err: anyerror,
+ comptime fmt: string,
+ ) void {
+ var str = ZigString.init(std.fmt.allocPrint(this.bunVM().allocator, "{s} " ++ fmt, .{@errorName(err)}) catch return);
+ str.markUTF8();
+ var err_value = str.toErrorInstance(this);
+ this.vm().throwError(this, err_value);
+ this.bunVM().allocator.free(ZigString.untagged(str.ptr)[0..str.len]);
+ }
+
+ pub fn handleError(
+ this: *JSGlobalObject,
+ err: anyerror,
+ comptime fmt: string,
+ ) JSValue {
+ this.throwError(err, fmt);
+ return JSValue.jsUndefined();
+ }
+
// pub fn createError(globalObject: *JSGlobalObject, error_type: ErrorType, message: *String) *JSObject {
// return cppFn("createError", .{ globalObject, error_type, message });
// }