mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:42:43 +00:00 
			
		
		
		
	 299c3069c1
			
		
	
	
		299c3069c1
		
	
	
	
	
		
			
			Since we have had eval() for a while now, we can finally use it here - this allows us to get rid of the confusing return statements in tested source code.
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| test("Issue #1829, if-else without braces or semicolons", () => {
 | |
|     const source = `if (1)
 | |
|     foo;
 | |
| else
 | |
|     bar;
 | |
| 
 | |
| if (1)
 | |
|     foo
 | |
| else
 | |
|     bar
 | |
| 
 | |
| if (1)
 | |
|     foo
 | |
| else
 | |
|     bar;`;
 | |
| 
 | |
|     expect(source).toEval();
 | |
| });
 | |
| 
 | |
| test("break/continue, variable declaration, do-while, and return asi", () => {
 | |
|     const source = `function foo() {
 | |
|     label:
 | |
|     for (var i = 0; i < 4; i++) {
 | |
|         break // semicolon inserted here
 | |
|         continue // semicolon inserted here
 | |
| 
 | |
|         break label // semicolon inserted here
 | |
|         continue label // semicolon inserted here
 | |
|     }
 | |
| 
 | |
|     var j // semicolon inserted here
 | |
| 
 | |
|     do {
 | |
|     } while (1 === 2) // semicolon inserted here
 | |
| 
 | |
|     return // semicolon inserted here
 | |
|     1;
 | |
| var curly/* semicolon inserted here */}
 | |
| 
 | |
| foo();`;
 | |
| 
 | |
|     expect(source).toEvalTo(undefined);
 | |
| });
 | |
| 
 | |
| test("more break and continue asi", () => {
 | |
|     const source = `let counter = 0;
 | |
| let outer;
 | |
| 
 | |
| outer:
 | |
| for (let i = 0; i < 5; ++i) {
 | |
|     for (let j = 0; j < 5; ++j) {
 | |
|         continue // semicolon inserted here
 | |
|         outer // semicolon inserted here
 | |
|     }
 | |
|     counter++;
 | |
| }
 | |
| 
 | |
| counter;`;
 | |
| 
 | |
|     expect(source).toEvalTo(5);
 | |
| });
 | |
| 
 | |
| test("eof with no semicolon", () => {
 | |
|     expect("var eof").toEval();
 | |
| });
 |