<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.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

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

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

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