<!doctype html>
<script src="../resources/runner.js"></script>
<div id="sample"></div>
<script>
const kElements = 10000;
const metaElements = (() => {
const result = [];
for (let count = 0; count < kElements; ++count)
result.push('<meta>', '</meta>');
return result;
})();
const sample = document.getElementById('sample');
sample.innerHTML = [
'<h1 id="before">first line of renderered text</h1>',
'<div hidden>', ...metaElements, '</div>',
'<h1 id="target">second line of renderered text</h1>',
'<div hidden>', ...metaElements, '</div>',
'<h1 id="after">third line of renderered text</h1>',
].join('');
const selection = window.getSelection();
PerfTestRunner.measureTime({
description: 'Measures performance of move-up through non-renderered elements',
setup: () => {
selection.removeAllRanges();
const target = document.getElementById('target');
selection.collapse(target.firstChild, 5);
selection.extend(target.firstChild, 10);
},
run: () => {
selection.modify('extend', 'backward', 'line');
},
});
</script>