<!--
Calculating collapsed borders for big tables is expensive, so we cache them and recalculate when needed.
Here we append new cell, expect that cache is invalidated and paint produces expected image.
-->
<html>
    <head>
        <title></title>
        <link rel="stylesheet" href="resources/cached.css">
        <script type="text/javascript">
            function test() {
                document.body.offsetTop;
                if (window.testRunner)
                    testRunner.displayAndTrackRepaints();
                newCell = document.createElement("td");
                newCell.style.borderLeftWidth = "6px";
                newCell.style.borderLeftStyle = "solid";
                newCell.style.borderLeftColor = "yellow";
                document.getElementById("row").appendChild(newCell);
            }
        </script>
    </head>
    <body onload="test()">
        <table style="border-collapse:collapse; border:2px solid blue">
            <tr id="row">
                <td style="border:4px solid lime"/>
            </tr>
        </table>
    </body>
</html>

