| OLD | NEW | 
|   1 <!DOCTYPE html> |   1 <!DOCTYPE html> | 
|   2 <html> |   2 <html> | 
|   3 <head> |   3 <head> | 
|   4 <script type="text/javascript" src="../resources/runner.js"></script> |   4 <script type="text/javascript" src="../resources/runner.js"></script> | 
|   5 </head> |   5 </head> | 
|   6 <body> |   6 <body> | 
|   7 <div id="root"></div> |   7 <div id="root"></div> | 
|   8 <script> |   8 <script> | 
|   9 function createTreeOfTrees(root, depth, branch, eachTreeHeight) |   9 function createComposedTree(root, depth, branch, eachTreeHeight) | 
|  10 { |  10 { | 
|  11     var node = root; |  11     var node = root; | 
|  12     var i; |  12     var i; | 
|  13     for (i = 0; i < eachTreeHeight; ++i) { |  13     for (i = 0; i < eachTreeHeight; ++i) { | 
|  14         var child = document.createElement('div'); |  14         var child = document.createElement('div'); | 
|  15         node.appendChild(child); |  15         node.appendChild(child); | 
|  16         node = child; |  16         node = child; | 
|  17     } |  17     } | 
|  18     if (depth == 1) |  18     if (depth == 1) | 
|  19         return; |  19         return; | 
|  20     for (i = 0; i < branch; ++i) { |  20     for (i = 0; i < branch; ++i) { | 
|  21         var child = document.createElement('div'); |  21         var child = document.createElement('div'); | 
|  22         node.appendChild(child); |  22         node.appendChild(child); | 
|  23         var shadowRoot = child.createShadowRoot(); |  23         var shadowRoot = child.createShadowRoot(); | 
|  24         createTreeOfTrees(shadowRoot, depth - 1, branch, eachTreeHeight); |  24         createComposedTree(shadowRoot, depth - 1, branch, eachTreeHeight); | 
|  25     } |  25     } | 
|  26 } |  26 } | 
|  27  |  27  | 
|  28 function leftMostLeaf(root) |  28 function leftMostLeaf(root) | 
|  29 { |  29 { | 
|  30     var node = root; |  30     var node = root; | 
|  31     while (node.firstChild) |  31     while (node.firstChild) | 
|  32         node = node.firstChild |  32         node = node.firstChild | 
|  33     if (!node.shadowRoot) |  33     if (!node.shadowRoot) | 
|  34         return node; |  34         return node; | 
|  35     return leftMostLeaf(node.shadowRoot) |  35     return leftMostLeaf(node.shadowRoot) | 
|  36 } |  36 } | 
|  37  |  37  | 
|  38 function rightMostLeaf(root) |  38 function rightMostLeaf(root) | 
|  39 { |  39 { | 
|  40     var node = root; |  40     var node = root; | 
|  41     while (node.lastChild) |  41     while (node.lastChild) | 
|  42         node = node.lastChild |  42         node = node.lastChild | 
|  43     if (!node.shadowRoot) |  43     if (!node.shadowRoot) | 
|  44         return node; |  44         return node; | 
|  45     return rightMostLeaf(node.shadowRoot) |  45     return rightMostLeaf(node.shadowRoot) | 
|  46 } |  46 } | 
|  47  |  47  | 
|  48 var root = document.getElementById('root'); |  48 var root = document.getElementById('root'); | 
|  49 createTreeOfTrees(root, 10, 2, 50); |  49 createComposedTree(root, 10, 2, 50); | 
|  50 var leaf1 = leftMostLeaf(root); |  50 var leaf1 = leftMostLeaf(root); | 
|  51 var leaf2 = rightMostLeaf(root); |  51 var leaf2 = rightMostLeaf(root); | 
|  52  |  52  | 
|  53 function run() |  53 function run() | 
|  54 { |  54 { | 
|  55     leaf1.dispatchEvent(new MouseEvent('mousemove', { |  55     leaf1.dispatchEvent(new MouseEvent('mousemove', { | 
|  56         relatedTarget: leaf2 |  56         relatedTarget: leaf2 | 
|  57     })); |  57     })); | 
|  58 } |  58 } | 
|  59  |  59  | 
|  60 PerfTestRunner.measureRunsPerSecond({ |  60 PerfTestRunner.measureRunsPerSecond({ | 
|  61     description: "Measure mousemove events dispatching in shadow trees", |  61     description: "Measure mousemove events dispatching in shadow trees", | 
|  62     run: run |  62     run: run | 
|  63 }); |  63 }); | 
|  64 </script> |  64 </script> | 
|  65 </body> |  65 </body> | 
|  66 </html> |  66 </html> | 
| OLD | NEW |