Created attachment 525774 [details]
$ ./js -n -a -m test.js
true <- should be false
Revision a3eeee8f7803, 32-bit.
Pretty tricky call path bug. If we rejoin after a recompilation in the middle of the call path, i.e. after the entry code has been generated and before it has been jumped to, the new frame has been pushed but the rejoin code assumes it still points to the old frame. We then start patching random things into doubles. This changes things so that ic::Call, stubs::UncachedCall etc. do not change regs->fp but store the new fp in regs->sp. This is then reloaded after doing all necessary patching of the calling frame.