only disallow infinite or nan in const enum

This commit is contained in:
王文璐
2018-05-04 10:33:12 +08:00
parent a20470e005
commit 45e6df955e
2 changed files with 2 additions and 23 deletions

View File

@@ -24311,7 +24311,7 @@ namespace ts {
const initializer = member.initializer;
const value = enumKind === EnumKind.Literal && !isLiteralEnumMember(member) ? undefined : evaluate(initializer);
if (value !== undefined) {
if (typeof value === "number" && !isFinite(value)) {
if (isConstEnum && typeof value === "number" && !isFinite(value)) {
error(initializer, isNaN(value) ?
Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN :
Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value);