Attempt no. 3 to fix Heap::IsHeapIterable and HeapIterator.
authorjarin@chromium.org <jarin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 22 May 2014 11:13:37 +0000 (11:13 +0000)
committerjarin@chromium.org <jarin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 22 May 2014 11:13:37 +0000 (11:13 +0000)
commit3d0bf69cd83fe73894b0fd96c77b45d559e795aa
tree0acc00dbb057d7598ca1f7dea1a0b45800fcb1f5
parentd0398c08cee2cd78081f5fdd105f8cbc832d6569
Attempt no. 3 to fix Heap::IsHeapIterable and HeapIterator.

Now we remember new space's top pointer after the last GC to find out if there was a new space allocation since the last GC.

Unfortunately, this not completely safe - the debugger has a callback hook (that can call to JS) at the end of the GC epilogue that can in theory allocate and possibly make the heap non-iterable. We can only hope this does not happen.

BUG=373283
R=hpayer@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/291193005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/debug.cc
src/heap-profiler.cc
src/heap-snapshot-generator.cc
src/heap.cc
src/heap.h
src/liveedit.cc
src/runtime.cc
test/cctest/test-api.cc
test/cctest/test-heap.cc
test/cctest/test-object-observe.cc
test/mjsunit/regress/regress-373283.js [new file with mode: 0644]