33 lines
1.3 KiB
HTML
33 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<title>Uncaught error in shared worker should not propagate to window</title>
|
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/workers.html#runtime-script-errors-2">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="support/SharedWorker-create-common.js"></script>
|
|
<script>
|
|
// Suppress the default handling of the error event so that a failure
|
|
// manifests as a failed test and not a harness error.
|
|
setup({ allow_uncaught_exception: true });
|
|
|
|
async_test(function(t) {
|
|
addEventListener("error", t.unreached_func("error event fired"));
|
|
var worker = createWorker();
|
|
worker.postMessage("throw");
|
|
worker.postMessage("ping");
|
|
var pongs = 0;
|
|
worker.onmessage = function(evt) {
|
|
// Wait for response from ping - that's how we know we have thrown the exception.
|
|
if (evt.data == "PASS: Received ping message") {
|
|
pongs++;
|
|
if (pongs == 1) {
|
|
// Send another "ping" message and wait for the response before
|
|
// ending the test, so that any error propagation that is now
|
|
// in flight will have finished.
|
|
worker.postMessage("ping");
|
|
} else {
|
|
t.done();
|
|
}
|
|
}
|
|
};
|
|
});
|
|
</script>
|