1'use strict'; 2// Flags: --expose-gc --force-node-api-uncaught-exceptions-policy 3 4const common = require('../../common'); 5const binding = require(`./build/${common.buildType}/test_finalizer`); 6const assert = require('assert'); 7const tick = require('util').promisify(require('../../common/tick')); 8 9process.on('uncaughtException', common.mustCall((err) => { 10 assert.throws(() => { throw err; }, /finalizer error/); 11})); 12 13(async function() { 14 { 15 binding.malignFinalizerBuffer(common.mustCall(() => { 16 throw new Error('finalizer error'); 17 })); 18 } 19 global.gc({ type: 'minor' }); 20 await tick(common.platformTimeout(100)); 21 global.gc(); 22 await tick(common.platformTimeout(100)); 23 global.gc(); 24 await tick(common.platformTimeout(100)); 25})().then(common.mustCall()); 26