Skip to content

Commit 37a4056

Browse files
author
Andy
authored
Support exponentiation operator in const enums (microsoft#20424)
1 parent d814233 commit 37a4056

File tree

5 files changed

+204
-178
lines changed

5 files changed

+204
-178
lines changed

src/compiler/checker.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22915,6 +22915,7 @@ namespace ts {
2291522915
case SyntaxKind.PlusToken: return left + right;
2291622916
case SyntaxKind.MinusToken: return left - right;
2291722917
case SyntaxKind.PercentToken: return left % right;
22918+
case SyntaxKind.AsteriskAsteriskToken: return left ** right;
2291822919
}
2291922920
}
2292022921
break;

tests/baselines/reference/constEnums.js

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const enum Enum1 {
2121
N = E << 1,
2222
O = E >> B,
2323
P = E >> 1,
24+
PQ = E ** 2,
2425
Q = -D,
2526
R = C & 5,
2627
S = 5 & C,
@@ -128,6 +129,7 @@ function foo(x: Enum1) {
128129
case Enum1.N:
129130
case Enum1.O:
130131
case Enum1.P:
132+
case Enum1.PQ:
131133
case Enum1.Q:
132134
case Enum1.R:
133135
case Enum1.S:
@@ -200,6 +202,7 @@ function foo(x) {
200202
case 2 /* N */:
201203
case 0 /* O */:
202204
case 0 /* P */:
205+
case 1 /* PQ */:
203206
case -1 /* Q */:
204207
case 0 /* R */:
205208
case 0 /* S */:

0 commit comments

Comments
 (0)