'use strict'; const common = require('../common'); const assert = require('assert'); const { Worker } = require('worker_threads'); // Verify that `.terminate()` interrupts the microtask queue. const worker = new Worker(` function loop() { Promise.resolve().then(loop); } loop(); require('worker_threads').parentPort.postMessage('up'); `, { eval: true }); worker.once('message', common.mustCall(() => { setImmediate(() => worker.terminate()); })); worker.once('exit', common.mustCall((code) => { assert.strictEqual(code, 1); }));