| const results = []; |
| test(() => { |
| class Script1 extends HTMLScriptElement { |
| constructor() { |
| super(); |
| } |
| connectedCallback() { |
| results.push("ce connected s1"); |
| } |
| } |
| class Script2 extends HTMLScriptElement { |
| constructor() { |
| super(); |
| } |
| connectedCallback() { |
| results.push("ce connected s2"); |
| } |
| } |
| customElements.define("script-1", Script1, { extends: "script" }); |
| customElements.define("script-2", Script2, { extends: "script" }); |
| const s1 = new Script1(); |
| s1.textContent = "results.push('s1')"; |
| const s2 = new Script2(); |
| s2.textContent = "results.push('s2')"; |
| document.body.append(s1, s2); |
| assert_array_equals(results, ["s1", "s2", "ce connected s1", "ce connected s2"]); |
| }, "Custom element reactions follow script execution"); |