nested_worker_wrapper.js (886B)
1 // Hold the nested worker alive until this parent worker closes. 2 var worker; 3 4 var searchParams = new URL(location.href).searchParams; 5 6 addEventListener("message", function nestedWorkerWrapperOnMessage(evt) { 7 removeEventListener("message", nestedWorkerWrapperOnMessage); 8 9 var mode = searchParams.get("mode"); 10 var script = searchParams.get("script"); 11 worker = new Worker(`worker_wrapper.js?mode=${mode}&script=${script}`); 12 13 worker.addEventListener("message", function (evt) { 14 self.postMessage({ 15 context: "NestedWorker", 16 type: evt.data.type, 17 status: evt.data.status, 18 msg: evt.data.msg, 19 }); 20 }); 21 22 worker.addEventListener("error", function (evt) { 23 self.postMessage({ 24 context: "NestedWorker", 25 type: "status", 26 status: false, 27 msg: "Nested worker error: " + evt.message, 28 }); 29 }); 30 31 worker.postMessage(evt.data); 32 });