The baseline JIT emits a stub specialized for put_by_id transitions (i.e. setting a property that did not previous exist in the object, thereby resulting in a structure transition). The DFG JIT emits a slow C call. The DFG JIT should really be emitting an optimized stub, like the baseline JIT.
Created attachment 99161 [details] the patch This patch takes us from a 20% slow-down in v8-raytrace to a 4% speed-up on v8-raytrace. We no longer have large regressions on any v8 benchmark (all v8 benchmarks are now speed-ups, no effect, or <5% slowdowns).
Comment on attachment 99161 [details] the patch Clearing flags on attachment: 99161 Committed r90063: <http://trac.webkit.org/changeset/90063>
All reviewed patches have been landed. Closing bug.