OLD | NEW |
(Empty) | |
| 1 function foo() { |
| 2 var a = new Array(); |
| 3 a[0] = 1; |
| 4 return a; |
| 5 } |
| 6 |
| 7 |
| 8 function foo_other() { |
| 9 var a = new Array(); |
| 10 a[0] = 2; |
| 11 return a; |
| 12 } |
| 13 |
| 14 |
| 15 function bar(f1, f2) { |
| 16 var accum = 0; |
| 17 for (var i = 0; i < 100; i++) { |
| 18 var a = f1(); |
| 19 var b = f2(); |
| 20 accum = a[0] + b[0]; |
| 21 } |
| 22 } |
| 23 |
| 24 |
| 25 // We should see function bar referenced in --trace-opt like so: |
| 26 // [marking 0x5f540959 <JS Function bar (SharedFunctionInfo 0x5f5407d9)> |
| 27 // for recompilation, reason: small function, |
| 28 // ICs with typeinfo: 6/7 (85%), generic ICs: 1/7 (14%)] |
| 29 |
| 30 for (var i = 0; i < 100000; i++) { |
| 31 if (i % 2 == 0) { |
| 32 bar(foo, foo); |
| 33 } else { |
| 34 bar(foo, foo_other); |
| 35 } |
| 36 } |
| 37 |
OLD | NEW |