<html>
<body onload="runTest();">
Test passes if it does not crash.
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

    function runTest() {
        span0 = document.createElement('span');
        document.documentElement.appendChild(span0);

        span1 = document.createElement('span');
        span0.appendChild(span1);

        span2 = document.createElement('span');
        span2.style.float = 'left';
        span2.appendChild(document.createTextNode('a'));
        span0.appendChild(span2);

        div = document.createElement('div');
        span1.appendChild(div);
        
        document.body.offsetTop;
        
        li = document.createElement('li');
        li.style.position = 'fixed';
        span1.appendChild(li);
        
        document.body.offsetTop;
        
        span3 = document.createElement('span');
        span3.appendChild(span0);
    }
</script>
</body>
</html>
