// Flags: --experimental-loader ./test/fixtures/es-module-loaders/loader-side-effect.mjs --require ./test/fixtures/es-module-loaders/loader-side-effect-require-preload.js import { allowGlobals, mustCall } from '../common/index.mjs'; import assert from 'assert'; import { fileURLToPath } from 'url'; import { Worker, isMainThread, parentPort } from 'worker_threads'; /* global implicitGlobalProperty */ assert.strictEqual(globalThis.implicitGlobalProperty, 42); allowGlobals(implicitGlobalProperty); /* global implicitGlobalConst */ assert.strictEqual(implicitGlobalConst, 42 * 42); allowGlobals(implicitGlobalConst); /* global explicitGlobalProperty */ assert.strictEqual(globalThis.explicitGlobalProperty, 42 * 42 * 42); allowGlobals(explicitGlobalProperty); /* global preloadOrder */ assert.deepStrictEqual(globalThis.preloadOrder, ['--require', 'loader']); allowGlobals(preloadOrder); if (isMainThread) { const worker = new Worker(fileURLToPath(import.meta.url)); const promise = new Promise((resolve, reject) => { worker.on('message', resolve); worker.on('error', reject); }); promise.then(mustCall()); } else { parentPort.postMessage('worker done'); }