<!DOCTYPE html>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();
    onload = function() {
        document.body.offsetTop;
        document.getElementById('wine').style.WebkitColumns = '2';
        document.body.offsetTop;
        document.getElementById('spanner1').style.display = 'block';
        document.body.offsetTop;
        document.getElementById('container').style.display = 'none';
    }
</script>
<div id="container" style="-webkit-columns:2;">
    <div id="wine">
        <div id="beer">
            <div id="strength"></div>
            <div id="spanner1" style="display:none; -webkit-column-span:all;"></div>
        </div>
        <div id="wisdom"></div>
        <div id="beer2">
            <div id="wisdom2"></div>
            <div id="strength2"></div>
            <div style="-webkit-column-span:all;"></div>
        </div>
    </div>
</div>
<p>PASS if no crash.</p>
<ol>
    <li>After initial layout: A multicol has a column-span:all
        descendant (not a direct child, so that we establish block
        continuations and anonymous multi-column blocks)</li>
    <li>Turn a child of this multicol container into a multicol</li>
    <li>Add another column-span:all descendant (again, not a direct
        child, so that we get more continuations)</li>
    <li>Set display:none on everything</li>
</ol>
