Skip to content

Commit eaf1c5a

Browse files
committed
Change the order of switch statements instead of converting to if-else
1 parent b552613 commit eaf1c5a

File tree

1 file changed

+28
-34
lines changed

1 file changed

+28
-34
lines changed

src/compiler/parser.ts

Lines changed: 28 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2669,41 +2669,35 @@ module ts {
26692669
}
26702670

26712671
function parsePrimaryExpression(): PrimaryExpression {
2672-
if (token === SyntaxKind.ThisKeyword ||
2673-
token === SyntaxKind.SuperKeyword ||
2674-
token === SyntaxKind.NullKeyword ||
2675-
token === SyntaxKind.TrueKeyword ||
2676-
token === SyntaxKind.FalseKeyword) {
2677-
return parseTokenNode<PrimaryExpression>();
2678-
}
2679-
else if (token === SyntaxKind.NumericLiteral ||
2680-
token === SyntaxKind.StringLiteral ||
2681-
token === SyntaxKind.NoSubstitutionTemplateLiteral) {
2682-
return parseLiteralNode();
2683-
}
2684-
else if (token === SyntaxKind.OpenParenToken) {
2685-
return parseParenthesizedExpression();
2686-
}
2687-
else if (token === SyntaxKind.OpenBracketToken) {
2688-
return parseArrayLiteralExpression();
2689-
}
2690-
else if (token === SyntaxKind.OpenBraceToken) {
2691-
return parseObjectLiteralExpression();
2692-
}
2693-
else if (token === SyntaxKind.FunctionKeyword) {
2694-
return parseFunctionExpression();
2695-
}
2696-
else if (token === SyntaxKind.NewKeyword) {
2697-
return parseNewExpression();
2698-
}
2699-
else if (token === SyntaxKind.SlashToken ||
2700-
token === SyntaxKind.SlashEqualsToken) {
2701-
if (reScanSlashToken() === SyntaxKind.RegularExpressionLiteral) {
2672+
switch (token) {
2673+
case SyntaxKind.NumericLiteral:
2674+
case SyntaxKind.StringLiteral:
2675+
case SyntaxKind.NoSubstitutionTemplateLiteral:
27022676
return parseLiteralNode();
2703-
}
2704-
}
2705-
else if (token === SyntaxKind.TemplateHead) {
2706-
return parseTemplateExpression();
2677+
case SyntaxKind.ThisKeyword:
2678+
case SyntaxKind.SuperKeyword:
2679+
case SyntaxKind.NullKeyword:
2680+
case SyntaxKind.TrueKeyword:
2681+
case SyntaxKind.FalseKeyword:
2682+
return parseTokenNode<PrimaryExpression>();
2683+
case SyntaxKind.OpenParenToken:
2684+
return parseParenthesizedExpression();
2685+
case SyntaxKind.OpenBracketToken:
2686+
return parseArrayLiteralExpression();
2687+
case SyntaxKind.OpenBraceToken:
2688+
return parseObjectLiteralExpression();
2689+
case SyntaxKind.FunctionKeyword:
2690+
return parseFunctionExpression();
2691+
case SyntaxKind.NewKeyword:
2692+
return parseNewExpression();
2693+
case SyntaxKind.SlashToken:
2694+
case SyntaxKind.SlashEqualsToken:
2695+
if (reScanSlashToken() === SyntaxKind.RegularExpressionLiteral) {
2696+
return parseLiteralNode();
2697+
}
2698+
break;
2699+
case SyntaxKind.TemplateHead:
2700+
return parseTemplateExpression();
27072701
}
27082702

27092703
return parseIdentifier(Diagnostics.Expression_expected);

0 commit comments

Comments
 (0)