diff options
author | 2023-03-02 17:36:47 -0800 | |
---|---|---|
committer | 2023-03-02 17:36:47 -0800 | |
commit | b469e5035161286abeb1a7726518d1afcc163a51 (patch) | |
tree | 2eb8c1e1e4d1adf726888b39d1c6f43795c65a1a /test/bun.js/gc.ts | |
parent | 27c35791185bd85337e312e12c87d5c22d7f3a52 (diff) | |
download | bun-b469e5035161286abeb1a7726518d1afcc163a51.tar.gz bun-b469e5035161286abeb1a7726518d1afcc163a51.tar.zst bun-b469e5035161286abeb1a7726518d1afcc163a51.zip |
Add fs/promises tests and migrate fs.test.js to TypeScript (#2279)
Diffstat (limited to 'test/bun.js/gc.ts')
-rw-r--r-- | test/bun.js/gc.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/bun.js/gc.ts b/test/bun.js/gc.ts new file mode 100644 index 000000000..b9d80116d --- /dev/null +++ b/test/bun.js/gc.ts @@ -0,0 +1,26 @@ +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) { + if (!Bun.unsafe.gcAggressionLevel) return block(); + + const origGC = Bun.unsafe.gcAggressionLevel(); + Bun.unsafe.gcAggressionLevel(0); + try { + return block(); + } finally { + Bun.unsafe.gcAggressionLevel(origGC); + } +} |