<!DOCTYPE html>
<html>
<body><div><script>

if (!window.testRunner)
    document.write("This test requires GCController.");
else {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();

    function crash() {
        document.open();
        document.write("PASS. WebKit didn't crash.");
        document.close();
        GCController.collect();
        setTimeout("testRunner.notifyDone()", 0);
    }

    setTimeout(function () {
        document.addEventListener('DOMNodeRemoved', function () { crash(); }, true);
        document.addEventListener('DOMSubtreeModified', function () { /* noop */ }, false);
        document.designMode = "on";
        document.execCommand("SelectAll");
        document.body.outerText = "ABC";
    }, 0);
}

</script>
</body>
</html>
