mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 05:10:57 +00:00 
			
		
		
		
	
		
			
	
	
		
			31 lines
		
	
	
	
		
			809 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			809 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | test("callee is evaluated before arguments", () => { | ||
|  |     function foo() {} | ||
|  |     const values = []; | ||
|  | 
 | ||
|  |     [foo][(values.push("callee"), 0)](values.push("args")); | ||
|  | 
 | ||
|  |     expect(values).toEqual(["callee", "args"]); | ||
|  | }); | ||
|  | 
 | ||
|  | test("arguments are evaluated in order", () => { | ||
|  |     function foo() {} | ||
|  |     const values = []; | ||
|  | 
 | ||
|  |     foo(values.push("arg1"), values.push("arg2"), values.push("arg3")); | ||
|  | 
 | ||
|  |     expect(values).toEqual(["arg1", "arg2", "arg3"]); | ||
|  | }); | ||
|  | 
 | ||
|  | test("arguments are evaluated before callee is checked for its type", () => { | ||
|  |     const values = []; | ||
|  | 
 | ||
|  |     expect(() => { | ||
|  |         "foo"(values.push("args")); | ||
|  |     }).toThrowWithMessage(TypeError, "foo is not a function"); | ||
|  |     expect(values).toEqual(["args"]); | ||
|  | 
 | ||
|  |     expect(() => { | ||
|  |         "foo"(bar); | ||
|  |     }).toThrowWithMessage(ReferenceError, "'bar' is not defined"); | ||
|  | }); |