es from opaque origins should be self-contained");

const data_url_worker_src = (channel_name, worker_name) => {
  const source = `
const handler = (reply) => {
  let bc2 = new BroadcastChannel("${channel_name}");
  bc2.onmessage = (e) => {
    if (e.data == "from-${worker_name}") {
      reply("${worker_name}-done");
    } else {
      reply("fail");
    }
  };
  let bc3 = new BroadcastChannel("${channel_name}");
  bc3.postMessage("from-${worker_name}");
};
// For dedicated workers:
self.addEventListener("