diff --git a/packages/@lwc/errors/src/compiler/error-info/index.ts b/packages/@lwc/errors/src/compiler/error-info/index.ts index ac79220451..c2f596bcf8 100644 --- a/packages/@lwc/errors/src/compiler/error-info/index.ts +++ b/packages/@lwc/errors/src/compiler/error-info/index.ts @@ -5,7 +5,7 @@ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT */ /** - * Next error code: 1211 + * Next error code: 1212 */ export * from './compiler'; diff --git a/packages/@lwc/errors/src/compiler/error-info/template-transform.ts b/packages/@lwc/errors/src/compiler/error-info/template-transform.ts index 77d496b9ab..332795fef0 100644 --- a/packages/@lwc/errors/src/compiler/error-info/template-transform.ts +++ b/packages/@lwc/errors/src/compiler/error-info/template-transform.ts @@ -1020,4 +1020,11 @@ export const ParserDiagnostics = { level: DiagnosticLevel.Error, url: '', }, + + RESERVED_KEYWORD_AS_IDENTIFIER: { + code: 1211, + message: '{0} is a reserved keyword and cannot be used as an identifier.', + level: DiagnosticLevel.Error, + url: '', + }, } as const satisfies Record; diff --git a/packages/@lwc/template-compiler/src/__tests__/fixtures/expression/reverved-keyword/metadata.json b/packages/@lwc/template-compiler/src/__tests__/fixtures/expression/reverved-keyword/metadata.json index 311b72b989..32337ffb9a 100644 --- a/packages/@lwc/template-compiler/src/__tests__/fixtures/expression/reverved-keyword/metadata.json +++ b/packages/@lwc/template-compiler/src/__tests__/fixtures/expression/reverved-keyword/metadata.json @@ -12,8 +12,8 @@ } }, { - "code": 1059, - "message": "LWC1059: const is not a valid identifier", + "code": 1211, + "message": "LWC1211: const is a reserved keyword and cannot be used as an identifier.", "level": 1, "location": { "line": 3, diff --git a/packages/@lwc/template-compiler/src/parser/expression.ts b/packages/@lwc/template-compiler/src/parser/expression.ts index 9313965f3c..47a794126c 100644 --- a/packages/@lwc/template-compiler/src/parser/expression.ts +++ b/packages/@lwc/template-compiler/src/parser/expression.ts @@ -177,7 +177,12 @@ export function parseIdentifier( isValid = isIdentifierChar(source.charCodeAt(i)); } - if (isValid && !isReservedES6Keyword(source)) { + if (isValid) { + if (isReservedES6Keyword(source)) { + ctx.throwAtLocation(ParserDiagnostics.RESERVED_KEYWORD_AS_IDENTIFIER, location, [ + source, + ]); + } return { ...t.identifier(source), location,