current commit
260829.14 · worker: add ref/unref to web workers
// Flags: --experimental-web-worker
'use strict';

const common = require('../common');
const fixtures = require('../common/fixtures');
const assert = require('assert');

{
  // Both are no-ops on a worker whose script could not be loaded.
  const worker = new Worker(fixtures.fileURL('web-worker', 'nonexistent.js').href);
  worker.addEventListener('error', common.mustCall());
  process.unref(worker);
  process.ref(worker);
}

const worker = new Worker(fixtures.fileURL('web-worker', 'echo.js').href);

worker.addEventListener('error', common.mustNotCall('worker failed'));
worker.addEventListener('message', common.mustCall(({ data }) => {
  assert.strictEqual(data, 'hello');
  worker.terminate();
}));

process.once('beforeExit', common.mustCall(() => {
  process.ref(worker);
  worker.postMessage('hello');
}));

process.unref(worker);