Skip to content

Commit 3dc5faf

Browse files
committed
Restore earlier behaviour when parsing non-simple arrow function bodies
1 parent bd828e3 commit 3dc5faf

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

src/compiler/parser.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3046,14 +3046,11 @@ module ts {
30463046

30473047
// If we have an arrow, then try to parse the body. Even if not, try to parse if we
30483048
// have an opening brace, just in case we're in an error state.
3049-
arrowFunction.equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken, false, Diagnostics._0_expected, "=>");
3050-
if (arrowFunction.equalsGreaterThanToken.kind === SyntaxKind.EqualsGreaterThanToken || token === SyntaxKind.OpenBraceToken) {
3051-
arrowFunction.body = parseArrowFunctionExpressionBody();
3052-
}
3053-
else {
3054-
// If not, we're probably better off bailing out and returning a bogus function expression.
3055-
arrowFunction.body = parseIdentifier();
3056-
}
3049+
var lastToken = token;
3050+
arrowFunction.equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken, /*reportAtCurrentPosition:*/false, Diagnostics._0_expected, "=>");
3051+
arrowFunction.body = (lastToken === SyntaxKind.EqualsGreaterThanToken || lastToken === SyntaxKind.OpenBraceToken)
3052+
? parseArrowFunctionExpressionBody()
3053+
: parseIdentifier();
30573054

30583055
return finishNode(arrowFunction);
30593056
}

0 commit comments

Comments
 (0)