aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/javascript/jsc/javascript.zig18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index 3df351a24..b681a4cee 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -523,18 +523,21 @@ pub const VirtualMachine = struct {
.BuildError => {
defer Output.flush();
const build_error = private_data_ptr.as(BuildError);
- build_error.msg.formatNoWriter(Output.printErrorln);
+ var writer = Output.errorWriter();
+ build_error.msg.formatWriter(@TypeOf(writer), writer, allow_ansi_color) catch {};
return true;
},
.ResolveError => {
defer Output.flush();
const resolve_error = private_data_ptr.as(ResolveError);
- resolve_error.msg.formatNoWriter(Output.printErrorln);
+ var writer = Output.errorWriter();
+ resolve_error.msg.formatWriter(@TypeOf(writer), writer, allow_ansi_color) catch {};
return true;
},
else => {
this.printErrorInstance(@intToEnum(JSValue, @intCast(i64, (@ptrToInt(value)))), allow_ansi_color) catch |err| {
if (comptime isDebug) {
+ // yo dawg
Output.printErrorln("Error while printing Error-like object: {s}", .{@errorName(err)});
Output.flush();
}
@@ -816,15 +819,16 @@ pub const EventListenerMixin = struct {
.request = Request{ .request_context = request_context },
};
- var fetch_args: [1]JSValue = undefined;
+ var fetch_args: [1]js.JSObjectRef = undefined;
var exception: ?*Exception = null;
const failed_str = "Failed";
for (listeners.items) |listener_ref| {
var listener = @intToEnum(JSValue, @intCast(i64, @ptrToInt(listener_ref)));
- fetch_args[0] = JSValue.fromRef(FetchEvent.Class.make(vm.global.ref(), fetch_event));
+ fetch_args[0] = FetchEvent.Class.make(vm.global.ref(), fetch_event);
- var promise = JSPromise.resolvedPromise(vm.global, JSFunction.callWithArguments(listener, vm.global, &fetch_args, 1, &exception, failed_str));
+ var result = js.JSObjectCallAsFunctionReturnValue(vm.global.ref(), listener_ref, null, 1, &fetch_args);
+ var promise = JSPromise.resolvedPromise(vm.global, result);
vm.global.vm().drainMicrotasks();
if (promise.status(vm.global.vm()) == .Rejected) {
@@ -849,7 +853,7 @@ pub const EventListenerMixin = struct {
vm.printException(except);
if (!request_context.has_called_done) {
- request_context.sendInternalError(error.JavaScriptError) catch {};
+ request_context.sendInternalError(error.JavaScriptErrorNeedARealErrorPageSorryAboutThisSeeTheTerminal) catch {};
}
return;
}
@@ -875,7 +879,7 @@ pub const EventListenerMixin = struct {
_arguments: [*c]const js.JSValueRef,
exception: js.ExceptionRef,
) callconv(.C) js.JSValueRef {
- const arguments = _arguments[0 .. argumentCount - 1];
+ const arguments = _arguments[0..argumentCount];
if (arguments.len == 0 or arguments.len == 1 or !js.JSValueIsString(ctx, arguments[0]) or !js.JSValueIsObject(ctx, arguments[arguments.len - 1]) or !js.JSObjectIsFunction(ctx, arguments[arguments.len - 1])) {
return js.JSValueMakeUndefined(ctx);
}