only defer promise funcs on non-exception

This commit is contained in:
Karl Seguin
2026-06-26 08:40:03 +08:00
parent 90e1a6e6d8
commit 8bc42e82cc

View File

@@ -387,9 +387,9 @@ fn invokeGoto(
) q.JSValue {
var funcs: [2]q.JSValue = undefined;
const promise = q.JS_NewPromiseCapability(ctx, &funcs);
if (q.JS_IsException(promise)) return self.throwError(ctx, "internal: resolver alloc failed");
defer q.JS_FreeValue(ctx, funcs[0]);
defer q.JS_FreeValue(ctx, funcs[1]);
if (q.JS_IsException(promise)) return self.throwError(ctx, "internal: resolver alloc failed");
const result = self.callTool(arena, .goto, args) catch |err| switch (err) {
error.OutOfMemory => {