<!DOCTYPE html><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<span id=span1></span><button id=button1>button</button>
<style>
        .embedStyle { min-height: 13pc; -webkit-transition: 10s; }
</style>
<script>
    function runTest() {
        div1 = document.createElement("div");
        document.body.appendChild(div1);
        embed1 = document.createElementNS("http://www.w3.org/1999/xhtml", "embed");
        document.body.offsetTop;
        embed1.setAttribute("class", "embedStyle");
        span1.appendChild(embed1);
        embed1.setAttribute("type", "block");
        document.body.offsetTop;
        r = document.createRange();
        r.setStart(button1, 0);
        r.setEnd(div1, div1.childNodes.length);
        window.getSelection().addRange(r);
        o = r.extractContents();
        document.body.appendChild(o);
        window.getSelection().modify("move", "Right", "character");

        if (window.testRunner) testRunner.dumpAsText();
    }
    document.addEventListener("DOMContentLoaded", runTest, false);
</script>PASS, if no crash or assert in debug
</html>
