+++ This bug was initially created as a clone of Bug #774006 +++ Bug 774006 focus on doing the SetElementIC with an integer key, we should do the same for property names, when we see the same JSString entering the fallback path multiple times, or when the name is an atom. I made a first attempt as part of Bug 774006, an this show some improvement on GWT linpack benchmark (from 3.25s to 3.15s on my computer). Still the implementation is not good enough as this will not work with sub-strings such as the one found in pdfjs (where the properties are dependent strings), but it will fill-up the ICs for nothing.
Created attachment 753037 [details] [diff] [review] Add string indexes to IonMonkey SetElementIC. If this patch still need some work to prevent the addition of strings which are uniq each time, and only keep strings which are reused. And instead of doing a pointer comparisons, we should reuse the compare String function defined in the Macro assembler under the condition that it does not make any fallible call. The other option would be to add to compare strings the support for comparing linear strings if none of the strategy work before.
Created attachment 753047 [details] [diff] [review] Add string indexes to IonMonkey SetElementIC. Attach non empty patch.