diff --git a/extensions/html-language-features/server/src/modes/javascriptSemanticTokens.ts b/extensions/html-language-features/server/src/modes/javascriptSemanticTokens.ts
index 3c7b620ab8c7..38a87159a327 100644
--- a/extensions/html-language-features/server/src/modes/javascriptSemanticTokens.ts
+++ b/extensions/html-language-features/server/src/modes/javascriptSemanticTokens.ts
@@ -17,7 +17,7 @@ export function getSemanticTokens(jsLanguageService: ts.LanguageService, current
const typeChecker = program.getTypeChecker();
function visit(node: ts.Node) {
- if (node.kind === ts.SyntaxKind.Identifier) {
+ if (ts.isIdentifier(node)) {
const symbol = typeChecker.getSymbolAtLocation(node);
if (symbol) {
let typeIdx = classifySymbol(symbol);
@@ -76,7 +76,7 @@ function classifySymbol(symbol: ts.Symbol) {
}
}
const decl = symbol.valueDeclaration || symbol.declarations && symbol.declarations[0];
- return tokenFromDeclarationMapping[decl.kind];
+ return decl && tokenFromDeclarationMapping[decl.kind];
}
diff --git a/extensions/html-language-features/server/src/test/semanticTokens.test.ts b/extensions/html-language-features/server/src/test/semanticTokens.test.ts
index 384d1467d0b7..ea3777e84e90 100644
--- a/extensions/html-language-features/server/src/test/semanticTokens.test.ts
+++ b/extensions/html-language-features/server/src/test/semanticTokens.test.ts
@@ -147,7 +147,7 @@ suite('HTML Semantic Tokens', () => {
/*3*/' const f = 9;',
/*4*/' class A { static readonly t = 9; static url: URL; }',
/*5*/' const enum E { A = 9, B = A + 1 }',
- /*6*/' const x = f + A.t + A.url.origin;',
+ /*6*/' console.log(f + A.t + A.url.origin);',
/*7*/'',
/*8*/'',
/*9*/'