···11+class Test {
22+ constructor() {
33+ this._value = "initial";
44+ }
55+66+ get value() {
77+ console.log("getter called");
88+ return this._value;
99+ }
1010+}
1111+1212+const t = new Test();
1313+console.log("1. Get via dot:", t.value);
1414+console.log("2. Get via bracket:", t["value"]);
+23
tests/test_bracket_setter.js
···11+class Test {
22+ constructor() {
33+ this._value = "initial";
44+ }
55+66+ get value() {
77+ return this._value;
88+ }
99+1010+ set value(v) {
1111+ console.log("setter called with:", v);
1212+ this._value = v;
1313+ }
1414+}
1515+1616+const t = new Test();
1717+console.log("1. Get via dot:", t.value);
1818+t.value = "changed via dot";
1919+console.log("2. After dot set:", t.value);
2020+2121+console.log("3. Get via bracket:", t["value"]);
2222+t["value"] = "changed via bracket";
2323+console.log("4. After bracket set:", t["value"]);
+56
tests/test_getters_setters.js
···11+class Person {
22+ constructor(name) {
33+ this._name = name;
44+ }
55+66+ get name() {
77+ console.log("Getting name");
88+ return this._name;
99+ }
1010+1111+ set name(value) {
1212+ console.log("Setting name to:", value);
1313+ this._name = value;
1414+ }
1515+1616+ get greeting() {
1717+ return "Hello, " + this._name;
1818+ }
1919+}
2020+2121+const person = new Person("Alice");
2222+console.log("1. Initial name:", person.name);
2323+console.log("2. Greeting:", person.greeting);
2424+2525+person.name = "Bob";
2626+console.log("3. After setting name:", person.name);
2727+console.log("4. New greeting:", person.greeting);
2828+2929+// Test with multiple getters
3030+class Rectangle {
3131+ constructor(width, height) {
3232+ this._width = width;
3333+ this._height = height;
3434+ }
3535+3636+ get area() {
3737+ return this._width * this._height;
3838+ }
3939+4040+ get perimeter() {
4141+ return 2 * (this._width + this._height);
4242+ }
4343+4444+ set width(w) {
4545+ console.log("Setting width to:", w);
4646+ this._width = w;
4747+ }
4848+4949+ get width() {
5050+ return this._width;
5151+ }
5252+}
5353+5454+const rect = new Rectangle(5, 10);
5555+console.log("5. Rectangle area:", rect.area);
5656+console.log("6. Rectangle perimeter:", rect.perimeter);