Allow '!' only on variable declarations within variable statements
This commit is contained in:
parent
546663a59d
commit
272076391b
1 changed files with 9 additions and 3 deletions
|
@ -5252,10 +5252,15 @@ namespace ts {
|
|||
return parseIdentifier();
|
||||
}
|
||||
|
||||
function parseVariableDeclaration(): VariableDeclaration {
|
||||
function parseVariableDeclarationAllowExclamation() {
|
||||
return parseVariableDeclaration(/*allowExclamation*/ true);
|
||||
}
|
||||
|
||||
function parseVariableDeclaration(allowExclamation?: boolean): VariableDeclaration {
|
||||
const node = <VariableDeclaration>createNode(SyntaxKind.VariableDeclaration);
|
||||
node.name = parseIdentifierOrPattern();
|
||||
if (node.name.kind === SyntaxKind.Identifier && token() === SyntaxKind.ExclamationToken && !scanner.hasPrecedingLineBreak()) {
|
||||
if (allowExclamation && node.name.kind === SyntaxKind.Identifier &&
|
||||
token() === SyntaxKind.ExclamationToken && !scanner.hasPrecedingLineBreak()) {
|
||||
node.exclamationToken = parseTokenNode();
|
||||
}
|
||||
node.type = parseTypeAnnotation();
|
||||
|
@ -5299,7 +5304,8 @@ namespace ts {
|
|||
const savedDisallowIn = inDisallowInContext();
|
||||
setDisallowInContext(inForStatementInitializer);
|
||||
|
||||
node.declarations = parseDelimitedList(ParsingContext.VariableDeclarations, parseVariableDeclaration);
|
||||
node.declarations = parseDelimitedList(ParsingContext.VariableDeclarations,
|
||||
inForStatementInitializer ? parseVariableDeclaration : parseVariableDeclarationAllowExclamation);
|
||||
|
||||
setDisallowInContext(savedDisallowIn);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue