v8/tools
Thibaud Michaud fd122c4221 [wasm] Return chained promise on suspend
Create and return the chained promise, which resumes the suspended wasm
continuation once the JS promise resolves:
- Add stub for the WasmResume builtin, which will resume the given
suspender.
- Add the JS function wrapper for the builtin.
- On suspension, return promise.then(onFulfilled) to the prompt.

R=ahaas@chromium.org
CC=​fgm@chromium.org

Bug: v8:12191
Change-Id: I2d6136b2bd610daa4be1880f347b7bdf897e75ac
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404776
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/main@{#78787}
2022-01-26 18:04:51 +00:00
..
bazel [bazel] Add optional deps for prebuilt bazel for bots 2021-06-22 08:42:15 +00:00
cfi [cfi] Use inclusive terminology 2020-07-28 05:57:41 +00:00
clusterfuzz [foozzie] Ensure sparkplug is off for baseline comparison 2021-11-12 10:54:05 +00:00
cppgc Reland "Reland "Reland "cppgc: Enable checks for assignments in prefinalizers""" 2021-09-29 16:02:17 +00:00
debug_helper Revert "[Torque] Generalize Torque literals to larger size" 2022-01-20 17:13:39 +00:00
dev [gm] Fuchsia support 2022-01-26 15:52:19 +00:00
gcmole [tools] Update gcmole 2021-10-28 07:53:44 +00:00
generate_shim_headers
heap-layout [tool] fix typo in heap-layout and system-analyzer 2022-01-11 13:06:21 +00:00
heap-stats [refactor] Rename StackFrameInfo to CallSiteInfo. 2021-12-14 10:03:25 +00:00
ignition
js [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
jsfunfuzz
link_clicker.extension
mb Remove --isolated from mb.py 2021-12-02 08:31:19 +00:00
memory [tools] Clean up insensitive terms 2020-12-01 20:02:48 +00:00
msan Rename msan blacklist.txt to ignorelist.txt 2021-05-27 08:24:50 +00:00
perf
profview [tools] Profiler builtins and sparkplug fixes 2021-04-21 11:44:31 +00:00
release [tools] Fix list_depreceated.py 2021-10-26 12:07:01 +00:00
sanitizers Reland "[heap] Optimize time to reach global safepoint" 2022-01-12 10:35:25 +00:00
snapshot Fix a Python3 compatibility issue in asm_to_inline_asm.py. 2020-08-03 22:21:55 +00:00
system-analyzer [tool] fix typo in heap-layout and system-analyzer 2022-01-11 13:06:21 +00:00
testrunner Remove the turboprop implementation 2022-01-20 12:31:39 +00:00
toolchain
torque [torque] Invert the default for @generateCppClass 2021-07-21 15:21:00 +00:00
tracing/proto-converter [tools] Refactor, use built-in Array.flat() instead of custom flatten method 2021-05-31 07:46:15 +00:00
turbolizer [turbolizer] Solve off-by-one source position error for non-Wasm 2021-07-09 09:07:54 +00:00
ubsan [respect] Rename UBSAN's blacklists to ignorelists 2021-04-28 07:55:39 +00:00
unittests V8 Sandbox rebranding 2021-12-15 17:09:36 +00:00
v8.xcodeproj
v8windbg Remove absolute paths in ninja files for v8windbg gn file 2021-12-13 16:22:54 +00:00
valgrind/asan
vim [vim] Update vim scripts 2021-04-01 16:14:04 +00:00
visual_studio
wasm [wasm] Add wasm wpt tests to the V8 tests 2021-09-14 19:10:27 +00:00
wasm-compilation-hints
zone-stats [zone-stats] Show all zones in a filter 2020-09-09 16:16:11 +00:00
__init__.py
adb-d8.py
android-build.sh
android-ll-prof.sh
android-run.py
android-sync.sh [mjsunit][tools] Sync module files for tests 2020-10-07 12:45:19 +00:00
arguments.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
avg.py
bash-completion.sh [bash-completion] Support some gm.py completion 2021-03-24 16:24:25 +00:00
bigint-tester.py
BUILD.gn [tools] Add v8windbg, a WinDbg extension for V8 2020-02-18 19:16:18 +00:00
callstats_groups.py [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats-from-telemetry.sh [Tools] Improve callstats.html .txt file handling 2021-01-28 10:37:09 +00:00
callstats.html [web snapshot] web snapshot <3 RuntimeCallStats 2021-05-19 12:16:28 +00:00
callstats.py [callstats] relocate the vpython imports 2020-02-27 14:45:56 +00:00
callstats.py.vpython
check-inline-includes.sh
check-static-initializers.sh Bump expected static initializers count from 2 to 3 2021-02-12 09:47:44 +00:00
check-unused-bailouts.sh
check-unused-symbols.sh
codemap.mjs [tools][system-analyzer] Support profiling ticks 2021-05-31 13:09:16 +00:00
collect_deprecation_stats.sh
compare_torque_output.py
compare-table-gen.js
consarray.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
cpu.sh
cross_build_gcc.sh
csvparser.mjs [tools] Add api events timeline-track to system-analyzer 2020-12-05 10:49:42 +00:00
DEPS
detect-builtins.js
disasm.py
draw_instruction_graph.sh
dump-cpp.py [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
dumpcpp-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
dumpcpp.mjs Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
eval_gc_nvp.py
eval_gc_time.sh Remove all leftovers of store buffer 2021-11-10 09:29:41 +00:00
find_depot_tools.py
find-builtin [tools] Add a tool for finding builtins 2021-04-07 12:51:38 +00:00
find-commit-for-patch.py
freebsd-tick-processor
fuzz-harness.sh
gc_nvp_common.py
gc-nvp-to-csv.py
gc-nvp-trace-processor.py
gdb-v8-support.py [tools] Fix gdb redirect helper in gdb-v8-support.py 2021-10-21 12:27:45 +00:00
gdbinit [gdbinit] Also look for OS::DebugBreak frames 2022-01-04 15:51:18 +00:00
gen-inlining-tests.py
gen-keywords-gen-h.py Fix gen-keywords-gen-h.py 2022-01-03 16:38:27 +00:00
gen-postmortem-metadata.py [objects] Make PropertyKind an enum class to fix -Wshadow 2021-11-15 19:05:14 +00:00
gen-v8-gn.py [Py3] fix py3 issue in tools 2021-01-25 15:33:53 +00:00
generate-builtins-tests.py [respect] Stop using "blacklist" in several python tools 2020-07-10 19:11:36 +00:00
generate-header-include-checks.py Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
generate-runtime-call-stats.py [tools] Fix retention of json files in RCS script 2020-03-26 12:07:56 +00:00
generate-ten-powers.scm
get_landmines.py
grokdump.py [objects] Delete double field unboxing 2021-02-11 17:24:15 +00:00
ic-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
ic-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
index.html [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
linux-tick-processor [tools] Port more tools to ES6 classes 2020-11-04 14:45:41 +00:00
ll_prof.py
lldb_commands.py [tools] Set up source map for lldb 2021-07-01 18:04:17 +00:00
locs.py
logreader.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
mac-nm
mac-tick-processor
Makefile.tags
objdump-v8
OWNERS [owners] Includes infra team as tools owners 2021-11-25 07:55:08 +00:00
package-lock.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
package.json [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
parse-processor [tools] Convert JS-tools to ES6 modules 2020-09-28 14:40:18 +00:00
parse-processor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
parse-processor.html [tools] Prepare parse-processor for baseline compiler 2021-02-22 10:51:00 +00:00
parse-processor.mjs [tools] Cleanup Arguments processing in tools 2021-06-01 09:43:46 +00:00
perf-compare.py
predictable_wrapper.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
PRESUBMIT.py [presubmit] Clean up insensitive terms 2020-07-27 18:05:48 +00:00
process-wasm-compilation-times.py [wasm] Internal representation for function references 2021-11-24 13:07:28 +00:00
profile_view.js
profile_view.mjs [tools] Modernize tools .mjs files 2020-11-10 12:32:26 +00:00
profile.mjs Remove the turboprop implementation 2022-01-20 12:31:39 +00:00
README.md [tools] Add README.md file and package.json for local development 2021-07-05 16:43:28 +00:00
regexp-sequences.py
run_perf.py [tools] Print CWD change in debug log 2021-09-21 12:51:06 +00:00
run-clang-tidy.py
run-llprof.sh
run-num-fuzzer.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-perf.sh
run-tests.py [Py3] Get python scripts in tools closer to Py3 2020-06-29 16:55:16 +00:00
run-wasm-api-tests.py
run.py Show failure codes in run.py 2020-06-17 17:16:22 +00:00
shell-utils.h
sourcemap.mjs [system-analyzer] Add source map support 2021-06-22 14:11:03 +00:00
splaytree.mjs [tools] Migrate more tools to ES6 classes 2021-01-11 16:40:39 +00:00
stats-viewer.py
test262-results-parser.js
tick-processor.html Reland "[mjsunit][tools][d8] Full roundtrip tickprocessor test" 2021-06-02 07:02:48 +00:00
tickprocessor-driver.mjs [tools][system-analyzer] Add local symbol server 2021-07-01 09:59:17 +00:00
tickprocessor.mjs [tools][system-analyzer] Add FeedbackVector support 2021-10-27 09:40:41 +00:00
try_perf.py [v8_perf] remove deprecated builder options from v8 perf trybot 2021-12-02 11:02:32 +00:00
turbolizer-perf.py
update-object-macros-undef.py
v8_presubmit.py [tool] heap layout trace file visualization tool 2021-12-22 02:07:35 +00:00
v8heapconst.py [wasm] Return chained promise on suspend 2022-01-26 18:04:51 +00:00
whitespace.txt Revert "Whitespace change to test alerts" 2021-11-02 12:51:13 +00:00
windbg.js
windows-tick-processor.bat [tools] Use .mjs in windows-tick-processor.bat 2021-01-07 09:00:23 +00:00
wpr.wprp Step 1 (of 3-ish): Basic ETW Instrumentation in V8 2021-01-05 20:11:03 +00:00

TOOLS

This directory contains debugging and investigation tools for V8.

The contents are regularly mirrored to http://v8.dev/tools.

Local Development

For local development you have to start a local webserver under http://localhost:8000:

  cd tools/;
  npm install;
  ws;

Local Symbol Server

The system-analyzer can symbolize profiles for local binaries by running a local symbol server

  cd tools/;
  ws --stack system-analyzer/lws-middleware.js lws-static cors;

Note that the local symbol server will run nm and objdump and has access to your files.