function createWorker() { if (!window.Worker) { resultOutput.textContent = "Web Workers are not supported in this browser."; return null; } const worker = new Worker("worker.js", { name: "sum-worker" }); writeLog("main: worker created"); worker.addEventListener("message", (event) => { const message = event.data; if (message.type === "progress") { writeLog(message.text); return; } if (message.type === "result") { window.lastWorkerResult = message; resultOutput.textContent = `Worker total: ${message.total}`; writeLog(`main: total ${message.total} from ${message.count} numbers`); worker.terminate(); if (activeWorker === worker) { activeWorker = null; } writeLog("main: worker terminated"); } }); worker.addEventListener("error", (event) => { resultOutput.textContent = `Worker failed: ${event.message}`; writeLog(`main: worker error at ${event.filename}:${event.lineno}`); if (activeWorker === worker) { activeWorker = null; } }); return worker; }