<!--
var interval1 = setInterval(function() {
  clearInterval(interval1);
  postMessage(1);
  throw new Error();
}, 10);
close();
var interval2 = setInterval(function() {
  clearInterval(interval2);
  postMessage(1);
  throw new Error();
}, 10);
/*
-->
<!doctype html>
<title>close() and setInterval</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>
<!--
*/
//-->


