<html>
<head>
    <title>Test for http://bugs.webkit.org/show_bug.cgi?id=10522</title>
    <style type="text/css">
        .float { float: right; height: 40px; width: 40px; }
        .test { height: 100px; background-color: aliceblue }
    </style>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById('target').style.height='20px';
            document.getElementById('cell').style.height='20px';
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body onload="setTimeout(runTest, 0)">
    <div class="test">
        <div class="float"></div>
        <div style="clear: right; background-color: purple; width: 40px; padding: 3px;">
            <div style="height: 40px; width: 0;" id="target">
            </div>
        </div>
    </div>
    
    <div class="test">
        <div class="float"></div>
        <table style="clear: both; background-color: purple;">
            <tr>
                <td id="cell" style="height: 40px; width: 40px;">
                </td>
            </tr>
        </table>
    </div>
</body>
</html>
