This way, B3 could constant-fold silly cases of this. Also, it can be instruction-selected very nicely on some CPUs.
Check out how badly we compile this: function foo(a) { a[0] = -1.0; } noInline(foo); var a = new Int8Array(1); for (var i = 0; i < 10000; ++i) foo(a); We emit awful code in FTL for the "a[0] = -1.0" statement.
(In reply to comment #0) > This way, B3 could constant-fold silly cases of this. Also, it can be > instruction-selected very nicely on some CPUs. Nice!