Make ExecutionContextSaver GC safe

Change-Id: I29f00366d24c770afe4ba4579106d81a8c9043df
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix valgrind support in the memory manager

Fix compilation and ensure the memory manager
doesn't create bogus warnings.

Change-Id: I78ccfc7a11944f3275b7c03f6005874a561fa977
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Mark JS freed parts of the JS stack as undefined in valgrind

Change-Id: Ibee3d95762bc0a0124b65ad8986ed643b9535529
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Fix GC crash with conditional breakpoints and JS console

We may choose to execute an expression in a specific frame within the
debugger, which is where we pop context's until we reached the frame
in question. If we are trying to execute an expression at the top of the
stack (or with a conditional breakpoint expression), then we don't have
a frame and don't need to pop contexts. But also also don't need to call
Scope::alloc(-1).

Change-Id: I1f6754a3d77d943aed9bf4468e817a5269a3c547
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Cleanup code that modifies the JS stack

Change-Id: Ic043e256c3df984bb06c9a16b86573b0173b19a1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Return Heap::ExecutionContext for currentContext()

Change-Id: I155ab996e24d7f36761d2ea62a04774e16469b34
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>