mirror of
				https://github.com/tc39/test262.git
				synced 2025-10-30 03:03:51 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			629 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			629 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| //@ runDefault("--useFTLJIT=0", "--useConcurrentJIT=false")
 | |
| 
 | |
| let num = 150;
 | |
| 
 | |
| function foo(comp, o, b) {
 | |
|     let sum = o.f;
 | |
|     if (b)
 | |
|         OSRExit();
 | |
|     for (let i = 0; i < comp; ++i) {
 | |
|         sum += o.f;
 | |
|     }
 | |
|     return sum;
 | |
| }
 | |
| noInline(foo);
 | |
| 
 | |
| let o = {f:25};
 | |
| let o2 = {f:25, g:44};
 | |
| o2.f = 45;
 | |
| o2.f = 45;
 | |
| o2.f = 45;
 | |
| o2.f = 45;
 | |
| let comp = {
 | |
|     valueOf() { return num; }
 | |
| }
 | |
| 
 | |
| foo(comp, o2, true);
 | |
| foo(comp, o2, true);
 | |
| for (let i = 0; i < 500; ++i) {
 | |
|     foo(comp, o2, false);
 | |
| }
 | |
| 
 | |
| let o3 = {g:24, f:73};
 | |
| num = 10000000;
 | |
| let result = foo(comp, o3, false);
 | |
| 
 | |
| if (result !== (num + 1)*73) {
 | |
|     throw new Error("Bad: " + result);
 | |
| }
 |