32 lines
886 B
JavaScript
32 lines
886 B
JavaScript
// Hold the nested worker alive until this parent worker closes.
|
|
var worker;
|
|
|
|
var searchParams = new URL(location.href).searchParams;
|
|
|
|
addEventListener("message", function nestedWorkerWrapperOnMessage(evt) {
|
|
removeEventListener("message", nestedWorkerWrapperOnMessage);
|
|
|
|
var mode = searchParams.get("mode");
|
|
var script = searchParams.get("script");
|
|
worker = new Worker(`worker_wrapper.js?mode=${mode}&script=${script}`);
|
|
|
|
worker.addEventListener("message", function (evt) {
|
|
self.postMessage({
|
|
context: "NestedWorker",
|
|
type: evt.data.type,
|
|
status: evt.data.status,
|
|
msg: evt.data.msg,
|
|
});
|
|
});
|
|
|
|
worker.addEventListener("error", function (evt) {
|
|
self.postMessage({
|
|
context: "NestedWorker",
|
|
type: "status",
|
|
status: false,
|
|
msg: "Nested worker error: " + evt.message,
|
|
});
|
|
});
|
|
|
|
worker.postMessage(evt.data);
|
|
});
|