It assumes that `ToThis(ToThis(value)) === ToThis(value)`. But it is wrong since the semantics of ToThis in strict mode and ToThis in sloppy mode is different. If `ToThisFromSloppyMode(ToThisFromStrictMode(value))` is converted to `ToThisFromStrictMode(value)`, we have a bad time!
This is not necessary. Original intent is already implemented in AI.
Upload a patch after I ensured that the result is perf-neutral.
Created attachment 359344 [details] Patch WIP
<rdar://problem/45842236>
Created attachment 359348 [details] Performance Numbers Performance looks neutral.
Created attachment 359349 [details] Patch
Comment on attachment 359349 [details] Patch Clearing flags on attachment: 359349 Committed r240106: <https://trac.webkit.org/changeset/240106>
All reviewed patches have been landed. Closing bug.