4 <div id='sandbox'></div>
5 <div id="console"></div>
6 <script src="../resources/magnitude-perf.js"></script>
10 testRunner.dumpAsText();
14 var sandbox = document.getElementById('sandbox');
16 // Check that long sequences of combined selectors has linear performance (per styled element)
18 function setupList(magnitude)
20 if (sandbox.firstChild)
21 sandbox.removeChild(sandbox.firstChild);
22 list = document.createElement('ul');
24 for (var i = 0; i < magnitude; ++i) {
25 var li = document.createElement('li');
26 li.setAttribute('id','unique'+i); // add unique id ensure the styles are not auto-shared
29 sandbox.appendChild(list);
32 function setupStack(magnitude)
34 if (sandbox.firstChild)
35 sandbox.removeChild(sandbox.firstChild);
36 stack = document.createElement('div');
39 for (var i = 0; i < magnitude; ++i) {
40 var div = document.createElement('div');
41 div.setAttribute('id','unique'+i);
45 sandbox.appendChild(stack);
48 function testListStyling(magnitude)
50 document.querySelectorAll("la ~ li ~ li");
53 function testStackStyling(magnitude)
55 document.querySelectorAll("dav div div");
58 Magnitude.description('Tests styling multiple combinators have linear performance');
59 Magnitude.run(setupStack, testStackStyling, Magnitude.LINEAR);
60 sandbox.removeChild(sandbox.firstChild);
61 Magnitude._numPoints=9; // Limit the max test magnitude since it triggers a test timeout
62 Magnitude.run(setupList, testListStyling, Magnitude.LINEAR);
63 sandbox.removeChild(sandbox.firstChild);