bug1331350.js (864B)
1 // |jit-test| --ion-eager 2 function optimize(a, b) { 3 a = a | 0; 4 b = b | 0; 5 6 if ((a & 3) === 0) { 7 a = a + 1 | 0 8 } 9 10 if ((a & 7) !== 0) { 11 a = a + 1 | 0 12 } 13 14 return a + b | 0 15 } 16 17 for (var i=0; i<20; i++) { 18 assertEq(optimize(4 | 0, 6 | 0), 12); 19 assertEq(optimize(7 | 0, 11 | 0), 19); 20 } 21 22 function not_optimizable(a, b) { 23 a = a | 0; 24 b = b | 0; 25 26 if ((a & 3) > 0) { 27 a = a + 1 | 0 28 } 29 30 if ((a & 3) >= 0) { 31 a = a + 1 | 0 32 } 33 34 if ((a & 7) < 0) { 35 a = a + 1 | 0 36 } 37 38 if ((a & 7) <= 0) { 39 a = a + 1 | 0 40 } 41 42 if ((b & 3) === 1) { 43 b = b + 1 | 0 44 } 45 46 if ((b & 7) !== 3) { 47 b = b + 1 | 0 48 } 49 50 return a + b | 0 51 } 52 53 for (var i=0; i<20; i++) { 54 assertEq(not_optimizable(4 | 0, 6 | 0), 12); 55 assertEq(not_optimizable(7 | 0, 11 | 0), 20); 56 }