mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-30 21:01:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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);
 | |
| });
 | 
