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('');
+ }
}
);