* Remove error for static private accessors * Private static accessors strict * Add loose mode support * Move `value` decl for early return * Reuse getter/setter template * Reuse getter/setter templates * Use `buildUndefinedNode` in accessor templates * Extract `isAccessor` variable
46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
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(); |