blob: d5f3a0c81484ebd85e0711dc13e24704cb72edd3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
// Worker-related helper file to be used from executor.html.
// The class `WorkerHelper` is exposed to `globalThis` because this should be
// used via `eval()`.
globalThis.WorkerHelper = class {
static pingWorker(worker) {
return new Promise((resolve, reject) => {
const message = 'message ' + Math.random();
const onmessage = e => {
if (e.data === message) {
resolve('PASS');
} else {
reject('pingWorker: expected ' + message + ' but got ' + e.data);
}
};
worker.onerror = reject;
if (worker instanceof Worker) {
worker.addEventListener('message', onmessage, {once: true});
worker.postMessage(message);
} else if (worker instanceof SharedWorker) {
worker.port.onmessage = onmessage;
worker.port.postMessage(message);
} else {
reject('Unexpected worker type');
}
});
}
};
|