<html>
<script>
    function testCrash() {
        q = document.getElementById('root');
        r = document.createRange();
        r.selectNodeContents( q.getElementById('t') );
        window.getSelection().addRange(r)
        document.designMode='on';
        document.execCommand('delete');
        document.execCommand('delete');

        if (window.testRunner)
            testRunner.dumpAsText();
    }
</script>
<body onload="testCrash()">
This test passes if there is no crash or assert.<br/>
<svg id="root" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <g>
        <rect filter="url(#x)"/>
        <text>aa</text>
        <rect id="t"/>
        <style></style>
        <text>bb</text>
    </g>
    <filter id="x"></filter>
</svg>
</body>
</html>
