<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<script src="./resources/utils.js"></script>
<div id=root></div>
<style>
* { z-index: inherit; }
:root { z-index: 42; }
</style>
<script>
function setup() {
createDOMTree(root, 8, 4);
let leaf = document.querySelector('body div:empty');
let style = document.createElement('style');
style.textContent = (() => {
const PSEUDO_NOT_COUNT = 50;
let selector = `:not(${[...Array(PSEUDO_NOT_COUNT).keys()].map(x => `.a${x}`).join(', ')}):not(div)`;
const RULES = 100;
let rules = [...Array(RULES).keys()].map(x => `${selector} { --x:${x}; }`).join('\n');
return `
@scope {
${rules}
}
`;
})();
leaf.append(style);
}
setup();
PerfTestRunner.measureTime({
description: 'An implicit whole-RuleSet @scope deep in the tree',
run: () => {
root.offsetTop;
root.style.zIndex = '43';
root.offsetTop;
root.style.zIndex = '42';
}
});
</script>