Merge pull request #22022 from Kingwl/enum-eval-div-zero

disallow nan and infinity in enum member
This commit is contained in:
Mohamed Hegazy
2018-05-23 15:32:35 -07:00
committed by GitHub
6 changed files with 262 additions and 3 deletions

View File

@@ -24752,7 +24752,11 @@ namespace ts {
case SyntaxKind.ParenthesizedExpression:
return evaluate((<ParenthesizedExpression>expr).expression);
case SyntaxKind.Identifier:
return nodeIsMissing(expr) ? 0 : evaluateEnumMember(expr, getSymbolOfNode(member.parent), (<Identifier>expr).escapedText);
const identifier = <Identifier>expr;
if (isInfinityOrNaNString(identifier.escapedText)) {
return +(identifier.escapedText);
}
return nodeIsMissing(expr) ? 0 : evaluateEnumMember(expr, getSymbolOfNode(member.parent), identifier.escapedText);
case SyntaxKind.ElementAccessExpression:
case SyntaxKind.PropertyAccessExpression:
const ex = <PropertyAccessExpression | ElementAccessExpression>expr;