blob: 3c16cfcee23e971fde8793a0478a819d3fc59d90 [file] [log] [blame] [edit]
// Flags: --harmony-weak-refs
'use strict';
require('../common');
const assert = require('assert');
// Test that finalization callbacks do not crash when caused through a regular
// GC (not global.gc()).
const start = Date.now();
const g = new globalThis.FinalizationRegistry(() => {
const diff = Date.now() - start;
assert(diff < 10000, `${diff} >= 10000`);
});
g.register({}, 42);
setImmediate(() => {
const arr = [];
// Build up enough memory usage to hopefully trigger a platform task but not
// enough to trigger GC as an interrupt.
while (arr.length < 1000000) arr.push([]);
setTimeout(() => {
g; // Keep reference alive.
}, 200000).unref();
});