mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 05:22:45 +00:00 
			
		
		
		
	 331f6a9e60
			
		
	
	
		331f6a9e60
		
	
	
	
	
		
			
			Fixes the bug in interpreter when cached environment coordinate is not invalidated after `delete` operator usage on global `this`.
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			434 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			434 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| a = 1;
 | |
| b = 42;
 | |
| 
 | |
| test("basic functionality", () => {
 | |
|     expect(delete a).toBeTrue();
 | |
| 
 | |
|     expect(() => {
 | |
|         a;
 | |
|     }).toThrowWithMessage(ReferenceError, "'a' is not defined");
 | |
| });
 | |
| 
 | |
| test("delete global var after usage", () => {
 | |
|     let errors = 0;
 | |
|     for (let i = 0; i < 3; ++i) {
 | |
|         try {
 | |
|             b++;
 | |
|         } catch {
 | |
|             ++errors;
 | |
|         }
 | |
|         delete globalThis.b;
 | |
|     }
 | |
|     expect(errors).toBe(2);
 | |
| });
 |