v8/tools
Simon Zünd b15c02d0e1 Store JSMessageObject on rejected promises
When V8 throws an uncaught exception, we store a JSMessageObject
with a stack trace and source positions on the isolate itself.
The JSMessageObject can be retrieved by a TryCatch scope
and is used by the inspector to provide additional information to the DevTools
frontend (besides the exception).

Introducing top-level await for REPL mode causes all thrown exceptions
to be turned into a rejected promise. The implicit catch block that does this
conversion clears the JSMessageObject from the isolate as to not leak memory.

This CL preserves the JSMessageObject when the debugger is active and stores
the JSMessageObject on the rejected promise itself. The inspector is changed
to retrieve the JSMessageObject in the existing catch handler and pass the
information along to the frontend.

Drive-by: This CL removes a inspector test that made assumptions when a promise
is cleaned up by the GC. These assumptions no longer hold since we hold on to
the promise longer.

Bug: chromium:1021921
Change-Id: Id0380e2cf3bd79aca05191bc4f3c616f6ced8db7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967375
Commit-Queue: Simon Zünd <szuend@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65497}
2019-12-18 12:07:03 +00:00
..
blink_tests [test] Remove obsolete blink test skips 2019-01-18 12:30:23 +00:00
cfi Reland "Move API-related files" 2019-05-17 12:52:27 +00:00
clusterfuzz [foozzie] Mock readline for correctness fuzzing 2019-12-16 14:43:20 +00:00
debug_helper [tools] Add in-object properties to debug_helper 2019-11-26 16:56:26 +00:00
dev [preparser] deprecate stand-alone "preparser" test-suite 2019-11-20 08:52:59 +00:00
gcmole Remove and update some outdated TODO(mstarzinger). 2019-12-13 10:18:04 +00:00
generate_shim_headers
heap-stats [Intl] Prototype Intl.DisplayNames 2019-11-18 21:48:22 +00:00
ignition Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
jsfunfuzz
link_clicker.extension
mb [test] Add unittests to fuchsia trybot 2019-11-18 07:56:21 +00:00
memory
msan
ninja
node Remove android_tools deps for v8 repo 2019-07-03 17:59:11 +00:00
perf
profview [profview] Use requestAnimationFrame to schedule a render 2019-01-15 13:08:46 +00:00
profviz [Tools] Add support to tickprocessor to symbolize libraries embedded in APKs 2019-05-28 16:18:47 +00:00
release [release] Remove logic for handling the ChangeLog 2019-11-27 09:43:03 +00:00
sanitizers Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
snapshot [Builtins] Infrastructure for source positions in stubs/builtins 2019-01-22 19:09:36 +00:00
sodium
testrunner [test] Bump timeout on slow architectures 2019-11-27 10:06:26 +00:00
toolchain
torque [torque] fix formatting of union types 2019-10-24 10:05:25 +00:00
tracing/proto-converter [tracing] Add the proto to json converter for trace events 2019-03-25 08:56:18 +00:00
turbolizer [turbolizer] Add shortcuts for hide (un)selected nodes 2019-12-04 17:34:22 +00:00
ubsan [ubsan] Make ARM and ARM64 UBSan-clean 2019-09-16 15:03:45 +00:00
unittests Remove 'embedded_builtins' variant 2019-10-22 12:58:02 +00:00
v8.xcodeproj
valgrind/asan
vim [vim] Update CrBuild to use autoninja. 2019-05-27 06:27:29 +00:00
visual_studio
wasm [wasm] Stage multi-value support 2019-10-22 13:49:52 +00:00
wasm-compilation-hints Remove mstarzinger@ from OWNERS files. 2019-12-13 11:13:14 +00:00
__init__.py
adb-d8.py Remove JS natives support, step 3 2019-10-22 07:48:05 +00:00
android-build.sh
android-ll-prof.sh
android-run.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
android-sync.sh [preparser] deprecate stand-alone "preparser" test-suite 2019-11-20 08:52:59 +00:00
arguments.js
avg.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
bash-completion.sh Move remaining files in src/ 2019-05-24 18:24:36 +00:00
bigint-tester.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
BUILD.gn Reland "Add postmortem debugging helper library" 2019-07-31 14:30:19 +00:00
callstats_groups.py [tools] Add grouping to generate-runtime-callstats.py 2019-12-12 14:52:05 +00:00
callstats.html [tools] Fix callstats.html to correctly bucket OptimizeBackground events 2019-12-12 11:05:53 +00:00
callstats.py [tools] Add grouping to generate-runtime-callstats.py 2019-12-12 14:52:05 +00:00
callstats.py.vpython
check-inline-includes.sh
check-static-initializers.sh [logging] Systematically emit CodeCreateEvents for builtins 2019-05-23 11:55:36 +00:00
check-unused-bailouts.sh
check-unused-symbols.sh
codemap.js Revert "[prof] Attribute ticks in embedded builtins correctly" 2019-05-27 10:11:14 +00:00
collect_deprecation_stats.sh
compare-table-gen.js
consarray.js
cpu.sh
cross_build_gcc.sh
csvparser.js
deprecation_stats.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
DEPS
detect-builtins.js
disasm.py
draw_instruction_graph.sh
dump-cpp.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
dumpcpp-driver.js [Tools] Add support to tickprocessor to symbolize libraries embedded in APKs 2019-05-28 16:18:47 +00:00
dumpcpp.js
eval_gc_nvp.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
eval_gc_time.sh
find_depot_tools.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
find-commit-for-patch.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
freebsd-tick-processor
fuzz-harness.sh
gc_nvp_common.py
gc-nvp-to-csv.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gc-nvp-trace-processor.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gdb-v8-support.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gdbinit [gdb] Do not set disassembly-flavor on non-x86 platforms. 2019-10-09 11:25:21 +00:00
gen-inlining-tests.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
gen-keywords-gen-h.py
gen-postmortem-metadata.py [postmortem] Load files using utf-8 to support Python 3 2019-11-03 06:25:07 +00:00
generate-builtins-tests.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
generate-header-include-checks.py Change all TODOs from clemensh to clemensb 2019-09-26 10:25:27 +00:00
generate-runtime-call-stats.py [tools] Add grouping to generate-runtime-callstats.py 2019-12-12 14:52:05 +00:00
generate-ten-powers.scm
get_landmines.py [landmines] Force clean build to fix Misc V8 Linux gcc 2019-06-06 21:52:11 +00:00
grokdump.py Make grokdump.py work on Windows 2019-10-18 11:13:55 +00:00
ic-explorer.html [ic] Rename PatchCache to SetCache and remove unused methods. 2019-10-10 15:08:54 +00:00
ic-processor
ic-processor-driver.js
ic-processor.js [tools] Make ic-processor print global loads/stores. 2019-01-18 12:35:43 +00:00
inspect-d8.js Improve JavaScript debugging in d8 2019-09-30 11:19:49 +00:00
linux-tick-processor
ll_prof.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
lldb_commands.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
locs.py [tools] Use ThreadPoolExecutor with reasonable job count default 2019-04-08 10:41:46 +00:00
logreader.js
mac-nm
mac-tick-processor
Makefile.tags
map-processor
map-processor-driver.js
map-processor.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
map-processor.js
objdump-v8
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00
parse-processor
parse-processor-driver.js
parse-processor.html [tools] Clean up HTML for tools 2019-01-06 14:20:33 +00:00
parse-processor.js
perf-compare.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
plot-timer-events
predictable_wrapper.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
PRESUBMIT.py [tools] Clean up presubmit and run all unittests 2019-02-01 10:27:29 +00:00
profile_view.js
profile.js
regexp-sequences.py Preparing v8 to use with python3 2019-10-18 13:10:56 +00:00
run_perf.py [perf] mask timeout failures if they succeed after retries 2019-07-16 09:38:40 +00:00
run-clang-tidy.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
run-llprof.sh
run-num-fuzzer.py
run-perf.sh [cleanup] Replace underscore by minus in d8 flags 2019-04-03 12:32:08 +00:00
run-tests.py
run-wasm-api-tests.py [wasm-c-api] Roll 7865f7d: Expose possible traps during Instance::make 2019-08-23 09:46:29 +00:00
run.py
shell-utils.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
SourceMap.js
splaytree.js
stats-viewer.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
test262-results-parser.js
tick-processor.html [Tools] Add support to tickprocessor to symbolize libraries embedded in APKs 2019-05-28 16:18:47 +00:00
tickprocessor-driver.js [Tools] Add support to tickprocessor to symbolize libraries embedded in APKs 2019-05-28 16:18:47 +00:00
tickprocessor.js [tools] Strip path from library when applying targetRootFS in tickprocessor 2019-06-28 15:07:24 +00:00
trace-maps-processor.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
try_perf.py [tools] Add support for --confidence-level flag to tools/try_perf.py 2019-06-14 12:33:49 +00:00
turbolizer-perf.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
update-object-macros-undef.py Preparing v8 to use with python3 /tools 2019-02-19 09:12:07 +00:00
v8_presubmit.py Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
v8heapconst.py Store JSMessageObject on rejected promises 2019-12-18 12:07:03 +00:00
whitespace.txt [goma] Whitespace to trigger builders 2019-12-09 11:34:19 +00:00
windbg.js [heap] Add base class for LargeObjectSpaces 2019-10-25 09:22:57 +00:00
windows-tick-processor.bat