<html>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.waitUntilDone();
}

window.onmessage = function() {
  document.getElementById('result').innerHTML = "SUCCESS";
  if (window.testRunner)
    testRunner.notifyDone();
}

function killChildFrame() {
  document.body.removeChild(document.getElementsByTagName("iframe")[0]);
}
</script>
<p>Test the destruction of an iframe while deferred events are being raised does not crash the system.</p>
<div id="result">FAILURE</div>
<iframe src="resources/deferred-events-delete-while-raising-timer-1.html"></iframe>
</html>
