'use strict'; // Flags: --expose-internals // Check that main thread handles unserializable errors in a worker thread as // expected. const common = require('../common'); const assert = require('assert'); const { Worker } = require('worker_threads'); const worker = new Worker(` const { internalBinding } = require('internal/test/binding'); const { getEnvMessagePort } = internalBinding('worker'); const { messageTypes } = require('internal/worker/io'); const messagePort = getEnvMessagePort(); messagePort.postMessage({ type: messageTypes.COULD_NOT_SERIALIZE_ERROR }); `, { eval: true }); worker.on('error', common.mustCall((e) => { assert.strictEqual(e.code, 'ERR_WORKER_UNSERIALIZABLE_ERROR'); }));