mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-26 09:22:34 +00:00 
			
		
		
		
	 2822da8c8f
			
		
	
	
		2822da8c8f
		
	
	
	
	
		
			
			eval only has direct access to the local scope when accessed through the name eval. This includes locals named eval, because of course it does.
		
			
				
	
	
		
			15 lines
		
	
	
	
		
			540 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
	
		
			540 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| test("variable named 'eval' pointing to another function calls that function", function () {
 | |
|     var testValue = "inner";
 | |
|     // This breaks prettier as it considers this to be a parse error
 | |
|     // before even trying to do any linting
 | |
|     var eval = () => {
 | |
|         return "wat";
 | |
|     };
 | |
|     expect(eval("testValue")).toEqual("wat");
 | |
| });
 | |
| 
 | |
| test("variable named 'eval' pointing to real eval works as a direct eval", function () {
 | |
|     var testValue = "inner";
 | |
|     var eval = globalThis.eval;
 | |
|     expect(eval("testValue")).toEqual("inner");
 | |
| });
 |