aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/api/server.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/api/server.zig')
-rw-r--r--src/bun.js/api/server.zig13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig
index 3612e7d3e..f4f4907f1 100644
--- a/src/bun.js/api/server.zig
+++ b/src/bun.js/api/server.zig
@@ -704,14 +704,16 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp
const arguments = callframe.arguments(2);
var ctx = arguments.ptr[1].asPromisePtr(@This());
const result = arguments.ptr[0];
+ result.ensureStillAlive();
+
ctx.pending_promises_for_abort -|= 1;
if (ctx.aborted) {
ctx.finalizeForAbort();
return JSValue.jsUndefined();
}
- if (result.isEmptyOrUndefinedOrNull()) {
- ctx.renderMissing();
+ if (ctx.didUpgradeWebSocket()) {
+ ctx.finalize();
return JSValue.jsUndefined();
}
@@ -720,12 +722,7 @@ fn NewRequestContext(comptime ssl_enabled: bool, comptime debug_mode: bool, comp
}
fn handleResolve(ctx: *RequestContext, value: JSC.JSValue) void {
- if (ctx.didUpgradeWebSocket()) {
- ctx.finalize();
- return;
- }
-
- if (value.isEmptyOrUndefinedOrNull()) {
+ if (value.isEmptyOrUndefinedOrNull() or !value.isCell()) {
ctx.renderMissing();
return;
}