<script>
function replace()
{
    document.getElementById("target").innerHTML = "If you can see this text and there was no crash, the test was a success.";
}
function test()
{
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        if (navigator.userAgent.search(/\bMac OS X\b/) != -1)
            modifier = "ctrlKey";
        else
            modifier = "altKey";
        eventSender.keyDown("a", [modifier]);
    }
}
</script>
<body onload="test()">
<p>This tests what happens when you use accesskey to trigger a script that causes a node to get destroyed
without ever having a reference to it from JavaScript. With older versions of WebKit this used to cause a crash.</p>
<p id="target"><a href="javascript:replace()" accesskey="a"></a>If you can see this text, the test was a failure.</p>
</body>
