<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../fast/dom/custom/testutils.js"></script>
<body>
<script>
'use strict';

// TODO(dominicc): Port fork() etc. to work with testharness, then
// remove these.
function debug() {}
function finishJSTest() {}

(() => {

if (fork()) {
  // The controlling parent frame.
  let t = async_test('constructor destroys the context before super');
  let watcher = new EventWatcher(t, window, 'message');
  watcher.wait_for('message').then(t.step_func((event) => {
    assert_equals(event.data, 'PASS destroyed context');
    return watcher.wait_for('message');
  })).then(t.step_func((event) => {
    assert_equals(event.data, 'PASS child done');
    t.done();
  }));
} else {
  // The child frame.
  class BadConstructor extends HTMLElement {
    constructor() {
      destroyContext();
      super();
    }
  }
  window.customElements.define('x-x', BadConstructor);
  try {
    new BadConstructor();
  } finally {
    done();
  }
}

})();
</script>
