If i have a strict mode function: function f(a) { "use strict"; a = 5; return arguments[0]; } var x = 0; for (var i = 0; i < N; i++) x = x + f(1); The result should be N, but the DFG optimizes out the eager tear off of the Arguments object, leading to arguments[0] eventually being optimized to return 5, which is incorrect.
Created attachment 208962 [details] the patch
<rdar://problem/14764160>
Landed in http://trac.webkit.org/changeset/154217