diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 98d733acd17..35c74a7ef48 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4656,21 +4656,27 @@ module ts { // ImportSpecifier: // ImportedBinding // IdentifierName as ImportedBinding - var isfirstIdentifierNameNotAnIdentifier = isKeyword(token) && !isIdentifier(); + var isFirstIdentifierNameNotAnIdentifier = isKeyword(token) && !isIdentifier(); var start = scanner.getTokenPos(); var identifierName = parseIdentifierName(); if (token === SyntaxKind.AsKeyword) { node.propertyName = identifierName; parseExpected(SyntaxKind.AsKeyword); - node.name = parseIdentifier(); + if (isIdentifier()) { + node.name = parseIdentifierName(); + } + else { + parseErrorAtCurrentToken(Diagnostics.Identifier_expected); + } } else { node.name = identifierName; - if (isfirstIdentifierNameNotAnIdentifier) { + if (isFirstIdentifierNameNotAnIdentifier) { // Report error identifier expected parseErrorAtPosition(start, identifierName.end - start, Diagnostics.Identifier_expected); } } + return finishNode(node); }