@@ -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