test for abort signal reason gc problem

This commit is contained in:
pfg
2025-05-20 15:14:33 -07:00
parent 20ca7be637
commit bc0461db4f

View File

@@ -0,0 +1,21 @@
import { expect, test, describe } from "bun:test";
describe("AbortSignal reason", () => {
// https://bugs.webkit.org/show_bug.cgi?id=293319
test("reason is preserved after GC", () => {
const controller = new AbortController();
controller.signal;
controller.abort(new Error("one two three")); // error must be defined inline so it doesn't get kept alive
Bun.gc(true);
let error;
try {
controller.signal.throwIfAborted();
} catch (e) {
error = e;
}
expect(error).toBe(controller.signal.reason);
expect(error.message).toBe("one two three");
});
});