<script type="text/javascript">
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
    }

    window.onload = function() {
        function doReload() {
            window.location = window.location + '?';
        }

        function doQSA() {
            document.querySelectorAll('h1:first-child');
            if (window.location.toString().indexOf('?') < 0)
                window.setTimeout(doReload, 100);
            else if (window.testRunner)
                testRunner.notifyDone();
        }

        window.setTimeout(doQSA, 100);
    }
</script>
<h1>Test case for <a href='http://bugs.webkit.org/show_bug.cgi?id=17313'>bug 17313</a></h1>
<p>The test has passed if reloading the page does not crash.</p>
<input type="hidden">
