This sounds like some optimization failure in DFG/FTL. We should fix.
OK, this is not something simple issue.
The main reason why this takes some time is that, valueAt and setValueAt are not inlined.
Their callers and callees are creating objects frequently (return value / parameter).
If they are inlined, FTL compiler knows that these objects are not escaped so we can completely eliminate object allocations for them. However, if they are not inlined, we need to allocate them since it is escaped inside this function. This is the reason why they are slow.
And why they are not inlined is because they are complex enough and taking enough amount of bytecodes which prevents inlining.
https://bugs.webkit.org/show_bug.cgi?id=220219 does not fix this. But it slightly removes unnecessary bytecodes that can be seen commonly.
Let's fix this with https://bugs.webkit.org/show_bug.cgi?id=220254
*** This bug has been marked as a duplicate of bug 220254 ***