<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<body onunload="test('xhr-ununload.html')">
<p>Test for <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=10852">bug 10852</a>:
REGRESSION: Reproducible crash in XMLHttpRequest::abort().
<p>Press Cmd+R to reload (should not crash).</p>
<!-- When running as an automated test, crashes when loading the next test case. -->
<script>
    
    if (window.layoutTestController)
        layoutTestController.dumpAsText();

    function test(url)
    {
        req = new XMLHttpRequest();
        req.open('GET', url, true);
        req.send(null);
    }
    
</script>
</body>
</html>
