66 lines
1.6 KiB
HTML
66 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body>
|
|
<div id='sandbox'></div>
|
|
<div id="console"></div>
|
|
<script src="../resources/magnitude-perf.js"></script>
|
|
<script>
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
var list;
|
|
var stack;
|
|
var sandbox = document.getElementById('sandbox');
|
|
|
|
// Check that long sequences of combined selectors has linear performance (per styled element)
|
|
|
|
function setupList(magnitude)
|
|
{
|
|
if (sandbox.firstChild)
|
|
sandbox.removeChild(sandbox.firstChild);
|
|
list = document.createElement('ul');
|
|
|
|
for (var i = 0; i < magnitude; ++i) {
|
|
var li = document.createElement('li');
|
|
li.setAttribute('id','unique'+i); // add unique id ensure the styles are not auto-shared
|
|
list.appendChild(li);
|
|
}
|
|
sandbox.appendChild(list);
|
|
}
|
|
|
|
function setupStack(magnitude)
|
|
{
|
|
if (sandbox.firstChild)
|
|
sandbox.removeChild(sandbox.firstChild);
|
|
stack = document.createElement('div');
|
|
var cur = stack;
|
|
|
|
for (var i = 0; i < magnitude; ++i) {
|
|
var div = document.createElement('div');
|
|
div.setAttribute('id','unique'+i);
|
|
cur.appendChild(div);
|
|
cur = div;
|
|
}
|
|
sandbox.appendChild(stack);
|
|
}
|
|
|
|
function testListStyling(magnitude)
|
|
{
|
|
document.querySelectorAll("la ~ li ~ li");
|
|
}
|
|
|
|
function testStackStyling(magnitude)
|
|
{
|
|
document.querySelectorAll("dav div div");
|
|
}
|
|
|
|
Magnitude.description('Tests styling multiple combinators have linear performance');
|
|
Magnitude.run(setupStack, testStackStyling, Magnitude.LINEAR);
|
|
sandbox.removeChild(sandbox.firstChild);
|
|
Magnitude.run(setupList, testListStyling, Magnitude.LINEAR);
|
|
sandbox.removeChild(sandbox.firstChild);
|
|
</script>
|
|
</body>
|
|
</html>
|