Backed out changeset 06f41c22f3a6 (bug 1888460) for causing linux xpcshell failures...
[gecko.git] / dom / workers / test / threadTimeouts_worker.js
blob27e514b391cebb9d84ac88bc483a833e9c87d379
1 /**
2  * Any copyright is dedicated to the Public Domain.
3  * http://creativecommons.org/publicdomain/zero/1.0/
4  */
5 var gTimeoutId;
6 var gTimeoutCount = 0;
7 var gIntervalCount = 0;
9 function timeoutFunc() {
10   if (++gTimeoutCount > 1) {
11     throw new Error("Timeout called more than once!");
12   }
13   postMessage("timeoutFinished");
16 function intervalFunc() {
17   if (++gIntervalCount == 2) {
18     postMessage("intervalFinished");
19   }
22 function messageListener(event) {
23   switch (event.data) {
24     case "startTimeout":
25       gTimeoutId = setTimeout(timeoutFunc, 2000);
26       clearTimeout(gTimeoutId);
27       gTimeoutId = setTimeout(timeoutFunc, 2000);
28       break;
29     case "startInterval":
30       gTimeoutId = setInterval(intervalFunc, 2000);
31       break;
32     case "cancelInterval":
33       clearInterval(gTimeoutId);
34       postMessage("intervalCanceled");
35       break;
36     case "startExpression":
37       // eslint-disable-next-line no-implied-eval
38       setTimeout("this.postMessage('expressionFinished');", 2000);
39       break;
40     default:
41       throw "Bad message: " + event.data;
42   }
45 addEventListener("message", messageListener, false);