// 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);