JSFiddle - React, Tailwind, and code Playground

HTML

<before-super></before-super>
<after-super></after-super>

JavaScript

let needsTest1 = true;
class ReentryBeforeSuper extends HTMLElement {
  constructor() {
    if (needsTest1) {
      needsTest1 = false;
      nested = new ReentryBeforeSuper();
      document.body.appendChild(nested);
    }
    super();
    this.attachShadow({mode: 'open'}).innerHTML = 'ReentryBeforeSuper';
  }
}
customElements.define('before-super', ReentryBeforeSuper);


let needsTest2 = true;
class ReentryAfterSuper extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({mode: 'open'}).innerHTML = 'ReentryAfterSuper';
    if (needsTest2) {
      needsTest2 = false;
      document.body.appendChild(new ReentryAfterSuper());
    }
  }
}
customElements.define('after-super', ReentryAfterSuper);