'use strict'; const common = require('../common'); const assert = require('assert'); const { Worker } = require('worker_threads'); // Test that calling worker.terminate() if kHandler is null should return an // empty promise that resolves to undefined, even when a callback is passed const worker = new Worker(` const { parentPort } = require('worker_threads'); parentPort.postMessage({ hello: 'world' }); `, { eval: true }); process.once('beforeExit', common.mustCall(() => { console.log('beforeExit'); worker.ref(); })); worker.on('exit', common.mustCall(() => { console.log('exit'); worker.terminate().then((res) => assert.strictEqual(res, undefined)); worker.terminate(() => null).then( (res) => assert.strictEqual(res, undefined) ); })); worker.unref();