<html>
    <head>
        <style>
            div.example:before {
                content: counter(exampleno, upper-roman);
                counter-increment: exampleno;
            }
            pre.example:before {
                content: counter(exampleno, upper-roman);
                counter-increment: exampleno;
            }
        </style>
        <script>
            function test()
            {
                if (window.testRunner)
                    testRunner.dumpAsText();
            }
        </script>
    </head>
    <body onload="test()">
        This tests that we don't crash when using the CSS counters feature.
        <div class="example"></div>
        <pre class="example"></pre>
    </body>
</html>
