diff --git a/packages/@glimmer/syntax/lib/v2/normalize.ts b/packages/@glimmer/syntax/lib/v2/normalize.ts index fb5b75630..741464a3a 100644 --- a/packages/@glimmer/syntax/lib/v2/normalize.ts +++ b/packages/@glimmer/syntax/lib/v2/normalize.ts @@ -762,6 +762,13 @@ class ElementNormalizer { let inScope = variable[0] === '@' || variable === 'this' || this.ctx.hasBinding(variable); if (this.ctx.strict && !inScope) { + if (uppercase) { + throw generateSyntaxError( + `Attempted to invoke a component that was not in scope in a strict mode template, \`<${variable}>\`. If you wanted to create an element with that name, convert it to lowercase - \`<${variable.toLowerCase()}>\``, + loc + ); + } + // In strict mode, values are always elements unless they are in scope return 'ElementHead'; }