<!--
function x() {
  postMessage(1);
  throw new Error();
}
setTimeout(x, 0);
close();
setTimeout(x, 0);
/*
-->
<!doctype html>
<title>close() and setTimeout</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
var worker = new Worker('#');
worker.onmessage = function(e) {
  assert_unreached("Got message");
};
worker.onerror = function(e) {
  assert_unreached("Got error");
};
setTimeout(done, 2000);
</script>
<!--
*/
//-->
