An element of type x-widget exists in the parsed DOM before customElements.define('x-widget', ...) runs. When the definition runs, in what order do the upgrade steps fire relative to the constructor and connectedCallback?
<x-widget></x-widget>
<script>
// element already in DOM and connected here
customElements.define('x-widget', class extends HTMLElement {
constructor() { super(); /* A */ }
connectedCallback() { /* B */ }
});
</script>