diff options
Diffstat (limited to 'Userland/Libraries/LibJS/Tests/object-getter-setter-shorthand.js')
-rw-r--r-- | Userland/Libraries/LibJS/Tests/object-getter-setter-shorthand.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Userland/Libraries/LibJS/Tests/object-getter-setter-shorthand.js b/Userland/Libraries/LibJS/Tests/object-getter-setter-shorthand.js new file mode 100644 index 0000000000..02b513800b --- /dev/null +++ b/Userland/Libraries/LibJS/Tests/object-getter-setter-shorthand.js @@ -0,0 +1,62 @@ +test("normal methods named get and set", () => { + let o = { + get() { + return 5; + }, + set() { + return 10; + }, + }; + expect(o.get()).toBe(5); + expect(o.set()).toBe(10); +}); + +test("basic get and set", () => { + let o = { + get x() { + return 5; + }, + set x(_) {}, + }; + expect(o.x).toBe(5); + o.x = 10; + expect(o.x).toBe(5); +}); + +test("get and set with 'this'", () => { + let o = { + get x() { + return this._x + 1; + }, + set x(value) { + this._x = value + 1; + }, + }; + + expect(o.x).toBeNaN(); + o.x = 10; + expect(o.x).toBe(12); + o.x = 20; + expect(o.x).toBe(22); +}); + +test("multiple getters", () => { + let o = { + get x() { + return 5; + }, + get x() { + return 10; + }, + }; + expect(o.x).toBe(10); +}); + +test("setter return value", () => { + o = { + set x(value) { + return 10; + }, + }; + expect((o.x = 20)).toBe(20); +}); |