| <!DOCTYPE html> |
| <script src="../resources/runner.js"></script> |
| <!-- This is a micro benchmark to catch an unintentional regression. |
| If the reason of a regression is clear, it is okay. |
| We do not have to optimize the result of the benchmark. --> |
| <div id="wrapper"> |
| <div id="host"></div> |
| </div> |
| <script> |
| 'use strict'; |
| const numChildOfHost = 20; |
| const numDivsInShadow = 20; |
| const loops = 100; |
| |
| const slot1 = document.createElement('slot'); |
| slot1.setAttribute('name', 'slot1'); |
| const slot2 = document.createElement('slot'); |
| slot2.setAttribute('name', 'slot2'); |
| const shadowRoot = host.attachShadow({mode: 'open'}); |
| shadowRoot.appendChild(slot1); |
| shadowRoot.appendChild(slot2); |
| |
| for (let i = 0; i < numDivsInShadow; ++i) { |
| let div = document.createElement('div'); |
| shadowRoot.appendChild(div); |
| } |
| |
| for (let i = 0; i < numChildOfHost; ++i) { |
| let div1 = document.createElement('div'); |
| div1.setAttribute('slot', 'slot1'); |
| host.appendChild(div1); |
| let div2 = document.createElement('div'); |
| div2.setAttribute('slot', 'slot2'); |
| host.appendChild(div2); |
| } |
| |
| function run() { |
| for (let i = 0; i < loops; ++i) { |
| const slot3 = document.createElement('slot'); |
| slot1.setAttribute('name', 'slot3'); |
| const slot4 = document.createElement('slot'); |
| slot1.setAttribute('name', 'slot1'); |
| slot3.remove(); |
| slot4.remove(); |
| } |
| } |
| |
| PerfTestRunner.measureTime({ |
| description: "Measure v1 distribution performance", |
| run: run, |
| done: () => { |
| wrapper.innerHTML = ''; |
| } |
| }); |
| </script> |