Skip to content

Commit ed75ee1

Browse files
committed
Add test for enum unicode case
1 parent 8b4d191 commit ed75ee1

4 files changed

Lines changed: 195 additions & 0 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//// [tests/cases/compiler/enumMemberNameNonIdentifier.ts] ////
2+
3+
//// [enumMemberNameNonIdentifier.ts]
4+
export const enum E {
5+
regular = 0,
6+
"hyphen-member" = 1,
7+
"123startsWithNumber" = 2,
8+
"has space" = 3,
9+
// Greek Capital Yot (U+037F) - valid identifier in ES2015+ but NOT in ES5
10+
Ϳ = 4,
11+
}
12+
13+
export const a = E["hyphen-member"];
14+
export const b = E["123startsWithNumber"];
15+
export const c = E["has space"];
16+
export const d = E.regular;
17+
export const e = E.Ϳ;
18+
19+
20+
//// [enumMemberNameNonIdentifier.js]
21+
export const a = 1 /* E["hyphen-member"] */;
22+
export const b = 2 /* E["123startsWithNumber"] */;
23+
export const c = 3 /* E["has space"] */;
24+
export const d = 0 /* E.regular */;
25+
export const e = 4 /* E.Ϳ */;
26+
27+
28+
//// [enumMemberNameNonIdentifier.d.ts]
29+
export declare const enum E {
30+
regular = 0,
31+
"hyphen-member" = 1,
32+
"123startsWithNumber" = 2,
33+
"has space" = 3,
34+
Ϳ = 4
35+
}
36+
export declare const a = E["hyphen-member"];
37+
export declare const b = E["123startsWithNumber"];
38+
export declare const c = E["has space"];
39+
export declare const d = E.regular;
40+
export declare const e = E.Ϳ;
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//// [tests/cases/compiler/enumMemberNameNonIdentifier.ts] ////
2+
3+
=== enumMemberNameNonIdentifier.ts ===
4+
export const enum E {
5+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
6+
7+
regular = 0,
8+
>regular : Symbol(E.regular, Decl(enumMemberNameNonIdentifier.ts, 0, 21))
9+
10+
"hyphen-member" = 1,
11+
>"hyphen-member" : Symbol(E["hyphen-member"], Decl(enumMemberNameNonIdentifier.ts, 1, 16))
12+
13+
"123startsWithNumber" = 2,
14+
>"123startsWithNumber" : Symbol(E["123startsWithNumber"], Decl(enumMemberNameNonIdentifier.ts, 2, 24))
15+
16+
"has space" = 3,
17+
>"has space" : Symbol(E["has space"], Decl(enumMemberNameNonIdentifier.ts, 3, 30))
18+
19+
// Greek Capital Yot (U+037F) - valid identifier in ES2015+ but NOT in ES5
20+
Ϳ = 4,
21+
>Ϳ : Symbol(E.Ϳ, Decl(enumMemberNameNonIdentifier.ts, 4, 20))
22+
}
23+
24+
export const a = E["hyphen-member"];
25+
>a : Symbol(a, Decl(enumMemberNameNonIdentifier.ts, 9, 12))
26+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
27+
>"hyphen-member" : Symbol(E["hyphen-member"], Decl(enumMemberNameNonIdentifier.ts, 1, 16))
28+
29+
export const b = E["123startsWithNumber"];
30+
>b : Symbol(b, Decl(enumMemberNameNonIdentifier.ts, 10, 12))
31+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
32+
>"123startsWithNumber" : Symbol(E["123startsWithNumber"], Decl(enumMemberNameNonIdentifier.ts, 2, 24))
33+
34+
export const c = E["has space"];
35+
>c : Symbol(c, Decl(enumMemberNameNonIdentifier.ts, 11, 12))
36+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
37+
>"has space" : Symbol(E["has space"], Decl(enumMemberNameNonIdentifier.ts, 3, 30))
38+
39+
export const d = E.regular;
40+
>d : Symbol(d, Decl(enumMemberNameNonIdentifier.ts, 12, 12))
41+
>E.regular : Symbol(E.regular, Decl(enumMemberNameNonIdentifier.ts, 0, 21))
42+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
43+
>regular : Symbol(E.regular, Decl(enumMemberNameNonIdentifier.ts, 0, 21))
44+
45+
export const e = E.Ϳ;
46+
>e : Symbol(e, Decl(enumMemberNameNonIdentifier.ts, 13, 12))
47+
>E.Ϳ : Symbol(E.Ϳ, Decl(enumMemberNameNonIdentifier.ts, 4, 20))
48+
>E : Symbol(E, Decl(enumMemberNameNonIdentifier.ts, 0, 0))
49+
>Ϳ : Symbol(E.Ϳ, Decl(enumMemberNameNonIdentifier.ts, 4, 20))
50+
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
//// [tests/cases/compiler/enumMemberNameNonIdentifier.ts] ////
2+
3+
=== enumMemberNameNonIdentifier.ts ===
4+
export const enum E {
5+
>E : E
6+
> : ^
7+
8+
regular = 0,
9+
>regular : E.regular
10+
> : ^^^^^^^^^
11+
>0 : 0
12+
> : ^
13+
14+
"hyphen-member" = 1,
15+
>"hyphen-member" : (typeof E)["hyphen-member"]
16+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
17+
>1 : 1
18+
> : ^
19+
20+
"123startsWithNumber" = 2,
21+
>"123startsWithNumber" : (typeof E)["123startsWithNumber"]
22+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23+
>2 : 2
24+
> : ^
25+
26+
"has space" = 3,
27+
>"has space" : (typeof E)["has space"]
28+
> : ^^^^^^^^^^^^^^^^^^^^^^^
29+
>3 : 3
30+
> : ^
31+
32+
// Greek Capital Yot (U+037F) - valid identifier in ES2015+ but NOT in ES5
33+
Ϳ = 4,
34+
>Ϳ : (typeof E)["\u037F"]
35+
> : ^^^^^^^^^^^^^^^^^^^^
36+
>4 : 4
37+
> : ^
38+
}
39+
40+
export const a = E["hyphen-member"];
41+
>a : (typeof E)["hyphen-member"]
42+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
43+
>E["hyphen-member"] : (typeof E)["hyphen-member"]
44+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
45+
>E : typeof E
46+
> : ^^^^^^^^
47+
>"hyphen-member" : "hyphen-member"
48+
> : ^^^^^^^^^^^^^^^
49+
50+
export const b = E["123startsWithNumber"];
51+
>b : (typeof E)["123startsWithNumber"]
52+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
53+
>E["123startsWithNumber"] : (typeof E)["123startsWithNumber"]
54+
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55+
>E : typeof E
56+
> : ^^^^^^^^
57+
>"123startsWithNumber" : "123startsWithNumber"
58+
> : ^^^^^^^^^^^^^^^^^^^^^
59+
60+
export const c = E["has space"];
61+
>c : (typeof E)["has space"]
62+
> : ^^^^^^^^^^^^^^^^^^^^^^^
63+
>E["has space"] : (typeof E)["has space"]
64+
> : ^^^^^^^^^^^^^^^^^^^^^^^
65+
>E : typeof E
66+
> : ^^^^^^^^
67+
>"has space" : "has space"
68+
> : ^^^^^^^^^^^
69+
70+
export const d = E.regular;
71+
>d : E.regular
72+
> : ^^^^^^^^^
73+
>E.regular : E.regular
74+
> : ^^^^^^^^^
75+
>E : typeof E
76+
> : ^^^^^^^^
77+
>regular : E.regular
78+
> : ^^^^^^^^^
79+
80+
export const e = E.Ϳ;
81+
>e : (typeof E)["\u037F"]
82+
> : ^^^^^^^^^^^^^^^^^^^^
83+
>E.Ϳ : (typeof E)["\u037F"]
84+
> : ^^^^^^^^^^^^^^^^^^^^
85+
>E : typeof E
86+
> : ^^^^^^^^
87+
>Ϳ : (typeof E)["\u037F"]
88+
> : ^^^^^^^^^^^^^^^^^^^^
89+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// @declaration: true
2+
3+
export const enum E {
4+
regular = 0,
5+
"hyphen-member" = 1,
6+
"123startsWithNumber" = 2,
7+
"has space" = 3,
8+
// Greek Capital Yot (U+037F) - valid identifier in ES2015+ but NOT in ES5
9+
Ϳ = 4,
10+
}
11+
12+
export const a = E["hyphen-member"];
13+
export const b = E["123startsWithNumber"];
14+
export const c = E["has space"];
15+
export const d = E.regular;
16+
export const e = E.Ϳ;

0 commit comments

Comments
 (0)