<html xmlns='http://www.w3.org/1999/xhtml'>
Test passes if it does not crash.
<form>
<input id="submit" type="submit" />
</form>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

textNode = document.createTextNode("x");
document.getElementById("submit").appendChild(textNode);

runTest = function() {
    event = document.createEvent("MouseEvent");
    event.initEvent("click", false, false);
    textNode.dispatchEvent(event);
    if (window.testRunner)
        testRunner.notifyDone();
}

setTimeout(runTest, 0);
</script>
</html>
