<!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>
