diff --git a/src/runtime/internal/dom.ts b/src/runtime/internal/dom.ts index e40df19c386..1f87e919105 100644 --- a/src/runtime/internal/dom.ts +++ b/src/runtime/internal/dom.ts @@ -698,7 +698,7 @@ export class HtmlTag { // html tag nodes n: ChildNode[]; // target - t: HTMLElement | SVGElement; + t: HTMLElement | SVGElement | DocumentFragment; // anchor a: HTMLElement | SVGElement; @@ -718,8 +718,9 @@ export class HtmlTag { ) { if (!this.e) { if (this.is_svg) this.e = svg_element(target.nodeName as keyof SVGElementTagNameMap); - else this.e = element(target.nodeName as keyof HTMLElementTagNameMap); - this.t = target; + /** #7364 target for + `, test({ assert, target }) { @@ -27,5 +28,16 @@ export default { assert.equal(template2.content.firstChild.textContent, '123'); assert.htmlEqual(template2.innerHTML, '123'); + const template3 = target.querySelector('#t3'); + assert.equal(template3.childNodes.length, 0); + assert.equal(template3.content.childNodes.length, 3); + // test: (with hydration from ssr rendered html) + // out of order render. + // may render as for ssr+hydration case. + // we bypass it by using symmetric siblings. hence