Simplify parse for (~+) and (~-)

This commit is contained in:
Ron Buckton
2016-11-23 14:22:39 -05:00
parent e2688cc450
commit 24f3794952
2 changed files with 24 additions and 9 deletions
+6 -9
View File
@@ -926,6 +926,10 @@ namespace ts {
return currentToken = scanner.reScanTemplateToken();
}
function reScanTildeToken(): SyntaxKind {
return currentToken = scanner.reScanTildeToken();
}
function scanJsxIdentifier(): SyntaxKind {
return currentToken = scanner.scanJsxIdentifier();
}
@@ -4251,15 +4255,8 @@ namespace ts {
}
return undefined;
case SyntaxKind.TildeToken:
nextToken();
if (token() === SyntaxKind.PlusToken) {
nextToken();
operator = SyntaxKind.TildePlusToken;
}
else if (token() === SyntaxKind.MinusToken) {
nextToken();
operator = SyntaxKind.TildeMinusToken;
}
operator = reScanTildeToken();
nextToken()
if (token() === SyntaxKind.CloseParenToken) {
nextToken();
const node = <OperatorExpression>createNode(SyntaxKind.OperatorExpression, fullStart);
+18
View File
@@ -26,6 +26,7 @@ namespace ts {
reScanGreaterToken(): SyntaxKind;
reScanSlashToken(): SyntaxKind;
reScanTemplateToken(): SyntaxKind;
reScanTildeToken(): SyntaxKind;
scanJsxIdentifier(): SyntaxKind;
scanJsxAttributeValue(): SyntaxKind;
reScanJsxToken(): SyntaxKind;
@@ -821,6 +822,7 @@ namespace ts {
isUnterminated: () => tokenIsUnterminated,
reScanGreaterToken,
reScanSlashToken,
reScanTildeToken,
reScanTemplateToken,
scanJsxIdentifier,
scanJsxAttributeValue,
@@ -1647,6 +1649,22 @@ namespace ts {
return token;
}
function reScanTildeToken(): SyntaxKind {
if (token === SyntaxKind.TildeToken) {
if (text.charCodeAt(pos) === CharacterCodes.plus) {
if (text.charCodeAt(pos + 1) === CharacterCodes.closeParen) {
return pos += 1, token = SyntaxKind.TildePlusToken;
}
}
else if (text.charCodeAt(pos) === CharacterCodes.minus) {
if (text.charCodeAt(pos + 1) === CharacterCodes.closeParen) {
return pos += 1, token = SyntaxKind.TildeMinusToken;
}
}
}
return token;
}
function reScanSlashToken(): SyntaxKind {
if (token === SyntaxKind.SlashToken || token === SyntaxKind.SlashEqualsToken) {
let p = tokenPos + 1;