<html><head>
<script language="javascript" type="text/javascript"><!--

    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function updateClock()
    {
        window.setTimeout("success()", 100);
    }

    function success()
    {
        document.getElementById("RESULT").innerHTML = "SUCCESS";
        if (window.testRunner)
            window.location = "resources/notify-success.html";
    }

--></script>

</head><body>
    <p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=9001">bug 9001<a>:
    Javascript stops running before replacement page data arrives.</p>

    <span id="RESULT">WAIT</span><p>

    <script>
    window.setTimeout("updateClock()", 100);
    setTimeout('window.location = "resources/hang-connection.php"', 0);
    </script>

</body></html>
