<!DOCTYPE html>
<html>
    <head>
    <style type="text/css">
        div
        {
            counter-increment: ident 2147483648;
        }
        div:before
        {
            content: counter(ident);
        }
    </style>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.dumpAsText();

        function doTest()
        {
            if (window.testRunner)
                document.getElementById('counted').innerText = window.internals.counterValue(document.getElementById('counted'));
        }

        window.addEventListener('load', doTest, false);
    </script>
    </head>
    <body>
    <p>Test passes if the number '2147483647' appears below.</p>
    <div id="counted"></div>

    </body>
</html>
