Created attachment 410063 [details] [diff] [review] remove offending memset Bug 525120 changes the way we allocate native stack and globals to reuse a single buffer. With deep aborts, we can have nested ExecuteTree invocations, which is fine except that #ifdef DEBUG memset(global, 0xCD, GLOBAL_SLOTS_BUFFER_SIZE * sizeof(double)); #endif will overwrite the outer ExecuteTree's 0xdeadbeefdeadbeef end-of-global-frame marker. This causes an assertion if the inner ExecuteTree has a different globalFrameSize than the outer tree. This shows up in js_1_8_1/trace/trace-test.js. The solution is just to remove the memset.
I guess I should be more specific and say that the bug fixed by this patch causes the assertion: Assertion failure: *(uint64*)&global[globalFrameSize] == 0xdeadbeefdeadbeefLL, at ../jstracer.cpp:6481