| 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 | 
|---|