<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>Adoptedstylesheets.concat should work when starting empty</title>
<link rel="author" href="mailto:masonf@chromium.org">
<link rel="help" href="https://drafts.csswg.org/cssom/#extensions-to-the-document-or-shadow-root-interface">
<link rel="match" href="CSSStyleSheet-constructable-concat-ref.html">

<span>This should be green</span>
<div id=host></div>
<pre id=tests>Tests:
</pre>

<script>
function assert_equals(val1,val2) {
  const t = val1 === val2 ? 'PASS' : `FAIL! ${val1} !== ${val2}`;
  tests.appendChild(document.createTextNode(`${t}\n`));
}
window.onload = () => {
  const sheet = new CSSStyleSheet();
  sheet.replaceSync('span {background-color:green;}');
  assert_equals(document.adoptedStyleSheets.length,0);
  document.adoptedStyleSheets = document.adoptedStyleSheets.concat([sheet]);
  assert_equals(document.adoptedStyleSheets.length,1);

  const host = document.getElementById('host');
  const shadow = host.attachShadow({mode: 'open'});
  shadow.innerHTML = '<span>This should be green</span>';
  assert_equals(shadow.adoptedStyleSheets.length,0);
  shadow.adoptedStyleSheets = shadow.adoptedStyleSheets.concat([sheet]);
  assert_equals(shadow.adoptedStyleSheets.length,1);
  document.documentElement.classList.remove("reftest-wait");
};
</script>
