diff --git a/src/runtime/template_set.ts b/src/runtime/template_set.ts
index 4bcbe43e..e7d40403 100644
--- a/src/runtime/template_set.ts
+++ b/src/runtime/template_set.ts
@@ -66,6 +66,10 @@ export class TemplateSet {
addTemplate(name: string, template: string | Element) {
if (name in this.rawTemplates) {
+ // this check can be expensive, just silently ignore double definitions outside dev mode
+ if (!this.dev) {
+ return;
+ }
const rawTemplate = this.rawTemplates[name];
const currentAsString =
typeof rawTemplate === "string"
diff --git a/tests/compiler/validation.test.ts b/tests/compiler/validation.test.ts
index e90eaf9e..01ded356 100644
--- a/tests/compiler/validation.test.ts
+++ b/tests/compiler/validation.test.ts
@@ -11,8 +11,8 @@ describe("basic validation", () => {
expect(() => context.getTemplate("invalidname")).toThrow("Missing template");
});
- test("cannot add a different template with the same name", () => {
- const context = new TemplateSet();
+ test("cannot add a different template with the same name in dev mode", () => {
+ const context = new TemplateSet({ dev: true });
context.addTemplate("test", `