2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/publicdomain/zero/1.0/
7 if (self.name != "FrameWorker") {
8 throw new Error("Bad worker name: " + self.name);
11 var registeredPorts = [];
15 self.onconnect = function (event) {
16 var port = event.ports[0];
18 if (registeredPorts.length) {
23 registeredPorts.forEach(function (registeredPort) {
24 registeredPort.postMessage(data);
28 port.onmessage = function (msg) {
29 switch (msg.data.command) {
34 throw new Error("Expected");
37 storedData = msg.data.data;
45 port.postMessage(data);
49 throw new Error("Unknown command '" + error.data.command + "'");
53 registeredPorts.push(port);
56 self.onerror = function (message, filename, lineno) {
65 registeredPorts.forEach(function (registeredPort) {
66 registeredPort.postMessage(data);
69 // Prevent the error from propagating the first time only.