v8/test/inspector
Simon Zünd af7e68931f Forward exceptions while using DebugPropertyIterator
The V8 inspector is using the DebugPropertyIterator (a debug only
interface) while building RemoteObjects. The DebugPropertyIterator
uses the `KeyAccumulator::GetKeys` for this, which can potentially
throw, but the DebugPropertyIterator ignores exceptions and keeps
iterating. If multiple iteration steps throw an exception
(e.g. due to a pending stack overflow), we run into a CHECK in
Isolate::Throw, as we can't throw exceptions while another
exception is still pending.

This CL fixes the CHECK crash by properly propagating exceptions
after the iterator is created or advanced and returning early
in the inspector if an exception happens.

Please note that the regression test that showcases this behavior
is still disabled, as fixing the crash causes currently an
endless loop. While the exception in `ValueMirror::getProperties`
is handled by early returing, we still need to forward it as
the result of the `Runtime::evaluate` all the way up the stack.

R=bmeurer@chromium.org, yangguo@chromium.org

Bug: chromium:1080638
Change-Id: I1d55e0d70490a06a6bc1b0a3525236411da7f64b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639954
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72203}
2021-01-20 17:02:43 +00:00
..
console Reland 2 ScriptContext CLs 2020-01-22 15:40:06 +00:00
counters [DevTools] Re-implemented Profiler.getRuntimeCallStats. 2020-09-08 18:32:05 +00:00
cpu-profiler Reland "Faster JS-to-Wasm calls" 2021-01-19 11:54:38 +00:00
debugger [wasm][debug] Simplify debug name handling. 2021-01-13 12:08:16 +00:00
heap-profiler heap-snapshot: Add detachedness field 2020-09-09 14:42:41 +00:00
regress Forward exceptions while using DebugPropertyIterator 2021-01-20 17:02:43 +00:00
runtime [inspector] Skip sending data urls in the Runtime domain 2021-01-13 13:27:41 +00:00
runtime-call-stats [DevTools] Re-implemented Profiler.getRuntimeCallStats. 2020-09-08 18:32:05 +00:00
sessions DevTools: add support for system-unique execution context ids 2020-12-23 05:15:47 +00:00
type-profiler [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
BUILD.gn [inspector] Remove spurious data dep 2020-12-09 16:03:37 +00:00
DEPS [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
frontend-channel.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
inspector-test.cc [inspector] do not interrupt with pause when running regexp 2020-12-24 11:06:35 +00:00
inspector.status Forward exceptions while using DebugPropertyIterator 2021-01-20 17:02:43 +00:00
isolate-data.cc [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
isolate-data.h Delegate unique id generation to embedder 2020-12-22 18:40:10 +00:00
json-parse-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
json-parse.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
print-method-not-found-expected.txt [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
print-method-not-found.js [tests] Filter out non-existent methods in inspector tests 2020-01-17 12:21:29 +00:00
protocol-test.js DevTools: add support for system-unique execution context ids 2020-12-23 05:15:47 +00:00
task-runner.cc [inspector][fuzzer] Fix timeouts on endless loops 2021-01-12 08:36:09 +00:00
task-runner.h [inspector] do not interrupt with pause when running regexp 2020-12-24 11:06:35 +00:00
tasks.cc [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
tasks.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{cctest,fuzzer,inspector} 2020-11-10 01:24:43 +00:00
testcfg.py [test] Load missing file to Android devices for inspector test suite 2020-07-21 14:11:11 +00:00
utils.cc [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
utils.h [inspector][fuzzer] Extract functionality for reuse 2020-10-28 08:37:25 +00:00
wasm-inspector-test.js [inspector][wasm] Improve Scope view and instance preview. 2021-01-12 15:13:49 +00:00