<!DOCTYPE html>
<style>
    .fixed { position: fixed; }
    .col { -webkit-column-span: all; }
    .colcount:nth-child(2n) { -webkit-column-count: 1; }
    .colcount { padding-left: 65536px; }
</style>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();
    function boom() {
        var nav = document.createElement('nav');
        nav.setAttribute('class', 'col');
        div.appendChild(nav);
        document.body.offsetTop;

        dt.parentNode.removeChild(dt);

        var p = document.createElement('p');
        div.appendChild(p);
        document.body.offsetTop;

        var text = document.createTextNode('88');
        div.appendChild(text);

        p.setAttribute("class", "fixed");

        var command = document.createElement('command');
        command.setAttribute('class', 'colcount');
        nav.appendChild(command);
    }
    window.onload = boom;
</script>
<p></p>
<dt id="dt"></dt>
<p></p>
<div class="colcount" id="div"></div>
<p> When a block element becomes positioned or float we should not strip anonymous blocks wrapping its siblings if any of their children are inline.</p>
