Files
bun.sh/test/harness.ts
2023-03-14 15:59:55 -07:00

47 lines
1011 B
TypeScript

export const bunEnv: any = {
...process.env,
BUN_DEBUG_QUIET_LOGS: "1",
NO_COLOR: "1",
FORCE_COLOR: undefined,
};
export function bunExe() {
return process.execPath;
}
export function gc(force: boolean = true) {
Bun.gc(force);
}
// we must ensure that finalizers are run
// so that the reference-counting logic is exercised
export function gcTick(trace = false) {
trace && console.trace("");
// console.trace("hello");
gc();
return new Promise(resolve => {
setTimeout(resolve, 0);
});
}
export function withoutAggressiveGC(block: () => unknown) {
if (!Bun.unsafe.gcAggressionLevel) return block();
const origGC = Bun.unsafe.gcAggressionLevel();
Bun.unsafe.gcAggressionLevel(0);
try {
return block();
} finally {
Bun.unsafe.gcAggressionLevel(origGC);
}
}
export function hideFromStackTrace(block: CallableFunction) {
Object.defineProperty(block, "name", {
value: "::bunternal::",
configurable: true,
enumerable: true,
writable: true,
});
}