There is some silliness in how byte code generator handles push/pop lexical scope and prepareScopeForNextForLoopIteration. This should be skipped. There is a silly mistake to always assume that scopeRegister() will be the scope in which we want to grab the parent scope of. This is fundamentally wrong. We want to grab the parent of the corresponding lexical scope. scopeRegister() just refers to scope stack top which is not always what we want to pop from.
Created attachment 257027 [details] patch
(In reply to comment #0) > There is some silliness in how byte code generator handles push/pop lexical > scope and prepareScopeForNextForLoopIteration. > This should be skipped. There is a silly mistake to always assume that > scopeRegister() will be the scope in which > we want to grab the parent scope of. This is fundamentally wrong. We want to > grab the parent of the corresponding > lexical scope. scopeRegister() just refers to scope stack top which is not > always what we want to pop from. This assessment is still correct. But it doesn't tell the whole story. This was a symptom, rather than the leading cause, of the problem this patch fixes.
Comment on attachment 257027 [details] patch Clearing flags on attachment: 257027 Committed r186996: <http://trac.webkit.org/changeset/186996>
All reviewed patches have been landed. Closing bug.
This broke 11 tests: https://build.webkit.org/builders/Apple%20Mavericks%2032-bit%20JSC%20%28BuildAndTest%29/builds/11494
Re-opened since this is blocked by bug 147070
Fixed 32-bit tests. They were timing out. I made the test have fewer loop iterations. landed in: http://trac.webkit.org/changeset/187003