From cfc8994729fe37dd2fe6558f562a732572eef8ec Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Thu, 30 Oct 2025 10:37:20 -0400 Subject: [PATCH] Reproduce renderComponent error: 'Cannot read property of undefined: reading syscall' --- .../components/render-component-test.ts | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts b/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts index 14649f1914d..476688d3c58 100644 --- a/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts +++ b/packages/@ember/-internals/glimmer/tests/integration/components/render-component-test.ts @@ -594,6 +594,51 @@ moduleFor( expect: '
3
3
', }); } + + async '@test rendering multiple times to adjacent elements'() { + let Child = defComponent(`Hi`, { scope: {} }); + let get = (id: string) => this.element.querySelector(id); + let promises: Promise[] = []; + + function render(Comp: GlimmerishComponent, id: string, owner: Owner) { + let promise = (async () => { + await Promise.resolve(); + let element = get(`#${id}`); + + renderComponent(Comp, { + into: element!, + owner, + }); + })(); + + promises.push(promise); + + return; + } + let A = defComponent('a:', { scope: { Child } }); + let B = defComponent('b:', { scope: { Child } }); + let Root = defComponent( + [ + `

`, + `
`, + `{{render A 'a' owner}}`, + `{{render B 'b' owner}}`, + ].join('\n'), + { scope: { render, A, B, owner: this.owner } } + ); + + this.renderComponent(Root, { + expect: [`

`, `
`, ``, ``].join('\n'), + }); + + await Promise.all(promises); + + assertHTML([`
a:Hi

`, `
b:Hi
`, ``, ``].join('\n')); + + run(() => destroy(this)); + + assertHTML(''); + } } );