<!DOCTYPE html>
<script src="../resources/runner.js"></script>
<script src="./resources/utils.js"></script>
<div id=container></div>
<div id=root class=myscope></div>
<script>
const SELECTORS = 2000;
let style = document.createElement('style');
function makeStyle() {
let selectors = [...Array(SELECTORS).keys()].map(x => `.a${x}`);
// Creates a selector list which is expensive to evaluate:
// (.a1, .a2, .a3 ... .a<n-1>, .myscope)
return `
@scope (${selectors.join(',')}, .myscope) {
div {
margin: 1px;
}
}
`;
}
function setup() {
style.textContent = makeStyle();
createDOMTree(root, /* siblings */ 1, /* depth */ 50);
}
setup();
PerfTestRunner.measureTime({
description: 'Inserting @scope with a deep tree',
run: () => {
container.append(style);
root.offsetTop;
style.remove();
root.offsetTop;
}
});
</script>