bug1804634.js (619B)
1 // |jit-test| --ion-instruction-reordering=off 2 3 function inner(o) { 4 return o.x; 5 } 6 function outer(o) { 7 return inner(o); 8 } 9 10 with ({}) {} 11 12 var arr = []; 13 for (var i = 0; i < 3; i++) { 14 var obj = {x: 1}; 15 obj["y" + i] = 2; 16 arr.push(obj); 17 } 18 19 // Transpile a GuardMultipleShapes with 3 shapes. 20 for (var i = 0; i < 2000; i++) { 21 assertEq(outer(arr[i % arr.length]), 1); 22 } 23 24 // Bail out ten times with new shapes. 25 for (var i = 0; i < 10; i++) { 26 var obj = {x: 1}; 27 obj["z" + i] = 3; 28 assertEq(outer(obj), 1); 29 } 30 31 // Trigger a recompilation. 32 for (var i = 0; i < 2000; i++) { 33 assertEq(outer(arr[i % arr.length]), 1); 34 }