| (function() { |
| function createElement(tag, parent, className, id) { |
| var el = document.createElement(tag); |
| el.className = className; |
| if (id) |
| el.id = id; |
| parent.appendChild(el); |
| return el; |
| } |
| |
| function createSet(width, height, nested) { |
| var container = createElement("div", document.body, "container"); |
| for (var y = 0; y < height; ++y) { |
| for (var x = 0; x < width; ++x) |
| createElement("div", container, "float", "float" + x + "_" + y); |
| |
| var nestedContainer = container; |
| for ( ; nested > 0; --nested) |
| nestedContainer = createElement("div", nestedContainer, "nested", "nested" + x + "_" + nested); |
| |
| createElement("div", container, "float-end", "end" + x) |
| } |
| return container; |
| } |
| |
| function toggle(str, str1, str2) { |
| return str == str1 ? str2 : str1; |
| } |
| |
| function resetTest() { |
| PerfTestRunner.resetRandomSeed(); |
| var list = document.querySelectorAll(".float.big"); |
| for (var i = 0; i < list.length; ++i) |
| list[i].className = "float"; |
| } |
| |
| function createTestFunction(width, height, nested, runs) { |
| var container = createSet(width, height, nested); |
| nested = nested || 0; |
| runs = runs || 10; |
| return function() { |
| container.style.display = "block"; |
| for (var i = 0; i < runs; ++i) { |
| var x = Math.floor(Math.random() * width); |
| var y = Math.floor(Math.random() * height); |
| var el = document.getElementById("float" + x + "_" + y); |
| el.className = toggle(el.className, "float", "float big"); |
| // Force a layout. |
| container.clientHeight; |
| } |
| resetTest(); |
| container.style.display = "none"; |
| } |
| } |
| |
| window.createFloatsLayoutTestFunction = createTestFunction; |
| })(); |