From ae3b03022380ffc746e2ddb031a407e486b2b9dc Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 1 Dec 2014 16:39:22 -0800 Subject: [PATCH] Don't set kinds after the fact. --- src/compiler/parser.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 0d1806adca4..8348d7d802b 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3209,8 +3209,8 @@ module ts { } // STATEMENTS - function parseBlock(ignoreMissingOpenBrace: boolean, checkForStrictMode: boolean): Block { - var node = createNode(SyntaxKind.Block); + function parseBlock(kind: SyntaxKind, ignoreMissingOpenBrace: boolean, checkForStrictMode: boolean): Block { + var node = createNode(kind); if (parseExpected(SyntaxKind.OpenBraceToken) || ignoreMissingOpenBrace) { node.statements = parseList(ParsingContext.BlockStatements, checkForStrictMode, parseStatement); parseExpected(SyntaxKind.CloseBraceToken); @@ -3225,8 +3225,7 @@ module ts { var savedYieldContext = inYieldContext(); setYieldContext(allowYield); - var block = parseBlock(ignoreMissingOpenBrace, /*checkForStrictMode*/ true); - block.kind = SyntaxKind.FunctionBlock; + var block = parseBlock(SyntaxKind.FunctionBlock, ignoreMissingOpenBrace, /*checkForStrictMode*/ true); setYieldContext(savedYieldContext); @@ -3436,8 +3435,9 @@ module ts { function parseTokenAndBlock(token: SyntaxKind): Block { var pos = getNodePos(); parseExpected(token); - var result = parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.kind = token === SyntaxKind.TryKeyword ? SyntaxKind.TryBlock : SyntaxKind.FinallyBlock; + var result = parseBlock( + token === SyntaxKind.TryKeyword ? SyntaxKind.TryBlock : SyntaxKind.FinallyBlock, + /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); result.pos = pos; return result; } @@ -3449,8 +3449,7 @@ module ts { var variable = parseIdentifier(); var typeAnnotation = parseTypeAnnotation(); parseExpected(SyntaxKind.CloseParenToken); - var result = parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); - result.kind = SyntaxKind.CatchBlock; + var result = parseBlock(SyntaxKind.CatchBlock, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); result.pos = pos; result.variable = variable; result.type = typeAnnotation; @@ -3549,7 +3548,7 @@ module ts { function parseStatement(): Statement { switch (token) { case SyntaxKind.OpenBraceToken: - return parseBlock(/* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); + return parseBlock(SyntaxKind.Block, /* ignoreMissingOpenBrace */ false, /*checkForStrictMode*/ false); case SyntaxKind.VarKeyword: case SyntaxKind.LetKeyword: case SyntaxKind.ConstKeyword: