diff options
Diffstat (limited to 'src/bun.js/bindings/bindings.zig')
-rw-r--r-- | src/bun.js/bindings/bindings.zig | 21 |
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 }); // } |