Backed out changeset 06f41c22f3a6 (bug 1888460) for causing linux xpcshell failures...
[gecko.git] / dom / workers / test / errorwarning_worker.js
blob39e71f8414a15c5ab94c5e61b2c66564504b90d8
1 /**
2  * Any copyright is dedicated to the Public Domain.
3  * http://creativecommons.org/publicdomain/zero/1.0/
4  */
6 function errorHandler() {
7   postMessage({ type: "error" });
10 onmessage = function (event) {
11   if (event.data.errors) {
12     try {
13       // This is an error:
14       postMessage({ type: "ignore", value: b.aaa });
15     } catch (e) {
16       errorHandler();
17     }
18   } else {
19     var a = {};
20     // This is a warning:
21     postMessage({ type: "ignore", value: a.foo });
22   }
24   if (event.data.loop != 0) {
25     var worker = new Worker("errorwarning_worker.js");
26     worker.onerror = errorHandler;
27     worker.postMessage({
28       loop: event.data.loop - 1,
29       errors: event.data.errors,
30     });
32     worker.onmessage = function (e) {
33       postMessage(e.data);
34     };
35   } else {
36     postMessage({ type: "finish" });
37   }
40 onerror = errorHandler;
41 // eslint-disable-next-line no-self-assign
42 onerror = onerror;
43 // eslint-disable-next-line no-self-compare
44 if (!onerror || onerror != onerror) {
45   throw "onerror wasn't set properly";