<html>
<head>
    <title></title>
</head>
<body>
    <p>
        Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=12899">http://bugs.webkit.org/show_bug.cgi?id=12899</a>
        Ordered lists not updating dynamically with new styles</i>.
    </p>
    <p>
        The items in the following list should be numbered 1, 2, 3.
    </p>
    <ol id="list" style="list-style-type: lower-alpha;">
        <li>First item</li>
        <li>Second item</li>
        <li>Third item</li>
    </ol>
    <script>
        document.body.offsetTop;
        document.getElementById("list").style.listStyleType = "decimal";
    </script>
    <script src="resources/dump-list.js"></script>
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            filterListsWithReplacement([document.getElementById("list")]);
        }
    </script>
</body>
</html>
