/
exec.js
46 lines (36 loc) 路 1.02 KB
/
exec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Cl {
static #privateField = "top secret string";
static publicField = "not secret string";
static get #privateFieldValue() {
return Cl.#privateField;
}
static set #privateFieldValue(newValue) {
Cl.#privateField = newValue;
}
static publicGetPrivateField() {
return Cl.#privateFieldValue;
}
static publicSetPrivateField(newValue) {
Cl.#privateFieldValue = newValue;
}
static get publicFieldValue() {
return Cl.publicField;
}
static set publicFieldValue(newValue) {
Cl.publicField = newValue;
}
static testUpdates() {
Cl.#privateField = 0;
Cl.publicField = 0;
Cl.#privateFieldValue = Cl.#privateFieldValue++;
Cl.publicFieldValue = Cl.publicFieldValue++;
expect(Cl.#privateField).toEqual(Cl.publicField);
++Cl.#privateFieldValue;
++Cl.publicFieldValue;
expect(Cl.#privateField).toEqual(Cl.publicField);
Cl.#privateFieldValue += 1;
Cl.publicFieldValue += 1;
expect(Cl.#privateField).toEqual(Cl.publicField);
}
}
Cl.testUpdates();