mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Simplify parse for (~+) and (~-)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user