<!DOCTYPE html>
<html>
<head>
    <script src="../resources/runner.js"></script>
    <script src="resources/utils.js"></script>
    <style>
    </style>
</head>
<body>
    <script>
        for (let i = 0; i < 5000; i++) {
            let div = document.createElement('div');
            div.style = 'color: red'; // Avoid matched properties cache.
            document.body.appendChild(div);
        }

        let props = [];
        let value = 2**32;
        for (let i = 0; i < 1000; i++) {
            props.push(`--property-with-long-name-and-value-${i}: ${value.toString(2)};`);
            // Use a unique value every time to avoid optimization that might
            // utilize identical values.
            value--;
        }

        applyCSSRule(`:root { ${props.join('\n')} }`);
        applyCSSRule(':root { --x: 0; --y: var(--x); }');

        PerfTestRunner.measureTime({
            description: 'Measure impact of unused custom properties at :root.',
            run: function() {
                document.body.style = 'display: none';
                forceStyleRecalc(document.body);
                document.body.style = '';
                forceStyleRecalc(document.body);
            }
        });
    </script>
</body>
</html>
