| OLD | NEW |
| 1 // Perf Tests run a maximum of 20 times, | 1 // Perf Tests run a maximum of 20 times, |
| 2 // make sure we have an equal amount of characters | 2 // make sure we have an equal amount of characters |
| 3 // for each run. | 3 // for each run. |
| 4 var selectionSize = fallbackChars.length / 21; | 4 var selectionSize = fallbackChars.length / 21; |
| 5 var target; | 5 var target; |
| 6 | 6 |
| 7 function test() { | 7 function test() { |
| 8 var charSelection = ""; | 8 var charSelection = ""; |
| 9 for(var i=0; i < selectionSize; i++) { | 9 for(var i=0; i < selectionSize; i++) { |
| 10 var selectedCharIndex = Math.floor(Math.random() * fallbackChars.length)
; | 10 var selectedCharIndex = Math.floor(Math.random() * fallbackChars.length)
; |
| 11 if(!fallbackChars[selectedCharIndex]) | 11 if(!fallbackChars[selectedCharIndex]) |
| 12 continue; | 12 continue; |
| 13 charSelection += fallbackChars[selectedCharIndex]; | 13 charSelection += fallbackChars[selectedCharIndex]; |
| 14 fallbackChars.splice(selectedCharIndex, 1); | 14 fallbackChars.splice(selectedCharIndex, 1); |
| 15 } | 15 } |
| 16 if (charSelection.length) | 16 if (charSelection.length) |
| 17 replaceTextAndWaitForLayout(charSelection); | 17 replaceTextAndWaitForLayout(charSelection); |
| 18 } | 18 } |
| 19 | 19 |
| 20 function replaceTextAndWaitForLayout(charSelection) { | 20 function replaceTextAndWaitForLayout(charSelection) { |
| 21 while (target.firstChild) | 21 while (target.firstChild) |
| 22 target.removeChild(target.firstChild); | 22 target.removeChild(target.firstChild); |
| 23 target.appendChild(document.createTextNode(charSelection)); | 23 target.appendChild(document.createTextNode(charSelection)); |
| 24 target.offsetHeight; | 24 PerfTestRunner.forceLayoutOrFullFrame(); |
| 25 } | 25 } |
| 26 | 26 |
| 27 function cleanup() { | 27 function cleanup() { |
| 28 replaceTextAndWaitForLayout(""); | 28 replaceTextAndWaitForLayout(""); |
| 29 } | 29 } |
| 30 | 30 |
| 31 function startTest() { | 31 function startTest() { |
| 32 target = document.querySelector("#target"); | 32 target = document.querySelector("#target"); |
| 33 PerfTestRunner.measureTime({ run: test, done: cleanup, description: "Per-cha
racter font fallback" }); | 33 PerfTestRunner.measureTime({ run: test, done: cleanup, description: "Per-cha
racter font fallback" }); |
| 34 } | 34 } |
| OLD | NEW |