import { QuickJSWorker } from "../dist"; describe("BigInt bridge compatibility", () => { let worker: QuickJSWorker; beforeEach(() => { worker = new QuickJSWorker(); }); afterEach(async () => { if (worker && !worker.isClosed()) await worker.close(); }); it("returns bigint values from eval", async () => { await expect(worker.eval("1234567890123456789012345678901234567890n")).resolves.toBe( 1234567890123456789012345678901234567890n, ); }); it("round-trips bigint through globals", async () => { const value = 987654321098765432109876543210987654321n; await worker.global.set("bigValue", value); await expect(worker.eval("bigValue")).resolves.toBe(value); await expect(worker.global.get("bigValue")).resolves.toBe(value); }); it("delivers bigint values over postMessage", async () => { const seen: bigint[] = []; worker.on("message", (msg) => seen.push(msg)); await expect(worker.eval(` postMessage(222222222222222222222222222222222222222n); "ok"; `)).resolves.toBe("ok"); expect(seen).toEqual([222222222222222222222222222222222222222n]); }); });