From 03c549e0392f92c02536d3f86d5e1d8dfa3435ac Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 1 Sep 2021 11:08:40 +0200 Subject: BASELINE: Update Chromium to 91.0.4472.160 Change-Id: I0def1f08a2412aeed79a9ab95dd50eb5c3f65f31 Reviewed-by: Allan Sandfeld Jensen --- chromium/v8/tools/arguments.mjs | 6 +- chromium/v8/tools/bash-completion.sh | 113 +- chromium/v8/tools/callstats.html | 1126 +++++++++++--------- .../v8/tools/clusterfuzz/js_fuzzer/exceptions.js | 1 + .../js_fuzzer/mutators/function_call_mutator.js | 26 +- .../js_fuzzer/resources/differential_fuzz_v8.js | 2 + .../mutate_function_call_baseline_expected.js | 16 + .../tools/clusterfuzz/v8_foozzie_harness_adjust.js | 4 + chromium/v8/tools/clusterfuzz/v8_fuzz_flags.json | 3 +- chromium/v8/tools/debug_helper/BUILD.gn | 1 + .../v8/tools/debug_helper/debug-helper-internal.cc | 2 +- .../v8/tools/debug_helper/get-object-properties.cc | 104 +- chromium/v8/tools/dev/gm.py | 100 +- chromium/v8/tools/dumpcpp.mjs | 4 +- chromium/v8/tools/find-builtin | 24 + chromium/v8/tools/gcmole/gcmole.py | 3 +- chromium/v8/tools/ic-processor-driver.mjs | 8 +- chromium/v8/tools/index.html | 13 +- chromium/v8/tools/ninja/ninja_output.py | 44 - chromium/v8/tools/profview/profile-utils.js | 6 +- chromium/v8/tools/profview/profview.js | 4 + chromium/v8/tools/release/auto_roll.py | 3 +- chromium/v8/tools/release/git_recipes.py | 7 +- chromium/v8/tools/release/test_scripts.py | 4 +- chromium/v8/tools/system-analyzer/index.css | 2 +- chromium/v8/tools/testrunner/base_runner.py | 3 - chromium/v8/tools/testrunner/local/variants.py | 47 +- chromium/v8/tools/tickprocessor.mjs | 2 +- chromium/v8/tools/v8heapconst.py | 418 ++++---- chromium/v8/tools/v8windbg/BUILD.gn | 2 + chromium/v8/tools/v8windbg/README.md | 4 + chromium/v8/tools/v8windbg/src/cur-isolate.h | 2 +- chromium/v8/tools/v8windbg/src/js-stack.cc | 229 ++++ chromium/v8/tools/v8windbg/src/js-stack.h | 98 ++ .../v8/tools/v8windbg/src/v8windbg-extension.cc | 4 + chromium/v8/tools/vim/ninja-build.vim | 14 +- chromium/v8/tools/vim/ninja_output.py | 72 ++ chromium/v8/tools/wasm/update-wasm-spec-tests.sh | 2 +- chromium/v8/tools/whitespace.txt | 4 +- 39 files changed, 1691 insertions(+), 836 deletions(-) create mode 100644 chromium/v8/tools/clusterfuzz/js_fuzzer/test_data/mutate_function_call_baseline_expected.js create mode 100755 chromium/v8/tools/find-builtin delete mode 100644 chromium/v8/tools/ninja/ninja_output.py create mode 100644 chromium/v8/tools/v8windbg/src/js-stack.cc create mode 100644 chromium/v8/tools/v8windbg/src/js-stack.h create mode 100644 chromium/v8/tools/vim/ninja_output.py (limited to 'chromium/v8/tools') diff --git a/chromium/v8/tools/arguments.mjs b/chromium/v8/tools/arguments.mjs index 4e607b7ee9b..1d266b7cee5 100644 --- a/chromium/v8/tools/arguments.mjs +++ b/chromium/v8/tools/arguments.mjs @@ -23,10 +23,10 @@ export class BaseArgumentsProcessor { result() { return this.result_ } printUsageAndExit() { - print('Cmdline args: [options] [log-file-name]\n' + + console.log('Cmdline args: [options] [log-file-name]\n' + 'Default log file name is "' + this.result_.logFileName + '".\n'); - print('Options:'); + console.log('Options:'); for (const arg in this.argsDispatch_) { const synonyms = [arg]; const dispatch = this.argsDispatch_[arg]; @@ -36,7 +36,7 @@ export class BaseArgumentsProcessor { delete this.argsDispatch_[synArg]; } } - print(` ${synonyms.join(', ').padEnd(20)} ${dispatch[2]}`); + console.log(` ${synonyms.join(', ').padEnd(20)} ${dispatch[2]}`); } quit(2); } diff --git a/chromium/v8/tools/bash-completion.sh b/chromium/v8/tools/bash-completion.sh index 27e73b7ad64..a7d525f1790 100755 --- a/chromium/v8/tools/bash-completion.sh +++ b/chromium/v8/tools/bash-completion.sh @@ -27,33 +27,112 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Inspired by and based on: -# http://src.chromium.org/viewvc/chrome/trunk/src/tools/bash-completion +# https://chromium.googlesource.com/chromium/src/+/master/tools/bash-completion # Flag completion rule for bash. # To load in your shell, "source path/to/this/file". -v8_source=$(readlink -f $(dirname $BASH_SOURCE)/..) +v8_source="$(realpath "$(dirname "$BASH_SOURCE")"/..)" -_v8_flag() { - local cur defines targets - cur="${COMP_WORDS[COMP_CWORD]}" - defines=$(cat $v8_source/src/flags/flag-definitions.h \ +_get_v8_flags() { + # The first `sed` command joins lines when a line ends with '('. + # See http://sed.sourceforge.net/sedfaq3.html#s3.2 + local flags_file="$v8_source/src/flags/flag-definitions.h" + local defines=$( \ + sed -e :a -e '/($/N; s/(\n\s*/(/; ta' < "$flags_file" \ | grep "^DEFINE" \ | grep -v "DEFINE_IMPLICATION" \ + | grep -v "DEFINE_NEG_IMPLICATION" \ + | grep -v "DEFINE_VALUE_IMPLICATION" \ | sed -e 's/_/-/g'; \ - cat $v8_source/src/flags/flag-definitions.h \ - | grep "^ V(harmony_" \ + grep "^ V(harmony_" "$flags_file" \ | sed -e 's/^ V/DEFINE-BOOL/' \ + | sed -e 's/_/-/g'; \ + grep "^ V(" "$v8_source/src/wasm/wasm-feature-flags.h" \ + | sed -e 's/^ V(/DEFINE-BOOL(experimental-wasm-/' \ | sed -e 's/_/-/g') - targets=$(echo "$defines" \ - | sed -ne 's/^DEFINE-[^(]*(\([^,]*\).*/--\1/p'; \ - echo "$defines" \ - | sed -ne 's/^DEFINE-BOOL(\([^,]*\).*/--no\1/p'; \ - cat $v8_source/src/d8/d8.cc \ - | grep "strcmp(argv\[i\]" \ - | sed -ne 's/^[^"]*"--\([^"]*\)".*/--\1/p') - COMPREPLY=($(compgen -W "$targets" -- "$cur")) + sed -ne 's/^DEFINE-[^(]*(\([^,]*\).*/--\1/p' <<< "$defines" + sed -ne 's/^DEFINE-BOOL(\([^,]*\).*/--no\1/p' <<< "$defines" +} + +_get_d8_flags() { + grep "strcmp(argv\[i\]" "$v8_source/src/d8/d8.cc" \ + | sed -ne 's/^[^"]*"--\([^"]*\)".*/--\1/p' +} + +_d8_flag() { + local targets + targets=$(_get_v8_flags ; _get_d8_flags) + COMPREPLY=($(compgen -W "$targets" -- "${COMP_WORDS[COMP_CWORD]}")) + return 0 +} + +_test_flag() { + local targets + targets=$(_get_v8_flags) + COMPREPLY=($(compgen -W "$targets" -- "${COMP_WORDS[COMP_CWORD]}")) + return 0 +} + +complete -F _d8_flag -f d8 v8 v8-debug +complete -F _test_flag -f cctest unittests + +# Many distros set up their own GDB completion scripts. The logic below is +# careful to wrap any such functions (with additional logic), rather than +# overwriting them. +# An additional complication is that tested distros dynamically load their +# completion scripts on first use. So in order to be able to detect their +# presence, we have to force-load them first. +_maybe_setup_gdb_completions() { + # We only want to set up the wrapping once: + [[ -n "$_ORIGINAL_GDB_COMPLETIONS" ]] && return 0; + + # This path works for Debian, Ubuntu, and Gentoo; other distros unknown. + # Feel free to submit patches to extend the logic. + local GDB_COMP + for GDB_COMP in "/usr/share/bash-completion/completions/gdb"; do + [[ -f "$GDB_COMP" ]] && source $GDB_COMP + done + _ORIGINAL_GDB_COMPLETIONS="$(complete -p gdb 2>/dev/null \ + | sed -e 's/^.*-F \([^ ]*\).*/\1/')" + + _gdb_v8_flag() { + local c i next + for (( i=1; i<$(($COMP_CWORD-1)); i++ )); do + c=${COMP_WORDS[$i]} + if [ "$c" = "-args" ] || [ "$c" = "--args" ] || [ "$c" == "--" ]; then + next=$(basename -- ${COMP_WORDS[$(($i+1))]}) + if [ "$next" = "d8" ] ; then + _d8_flag + return 0 + elif [ "$next" = "unittests" ] || [ "$next" = "cctest" ]; then + _test_flag + return 0 + fi + fi + done + [[ -n "$_ORIGINAL_GDB_COMPLETIONS" ]] && $_ORIGINAL_GDB_COMPLETIONS + return 0 + } + complete -F _gdb_v8_flag -f gdb +} +_maybe_setup_gdb_completions +unset _maybe_setup_gdb_completions + +_get_gm_flags() { + "$v8_source/tools/dev/gm.py" --print-completions + + # cctest ignore directory structure, it's always "cctest/filename". + find "$v8_source/test/cctest/" -type f -name 'test-*' | \ + xargs basename -a -s ".cc" | \ + while read -r item; do echo "cctest/$item/*"; done +} + +_gm_flag() { + local targets=$(_get_gm_flags) + COMPREPLY=($(compgen -W "$targets" -- "${COMP_WORDS[COMP_CWORD]}")) return 0 } -complete -F _v8_flag -f d8 +# gm might be an alias, based on https://v8.dev/docs/build-gn#gm. +complete -F _gm_flag gm.py gm diff --git a/chromium/v8/tools/callstats.html b/chromium/v8/tools/callstats.html index cc4260d2806..701e5bee874 100644 --- a/chromium/v8/tools/callstats.html +++ b/chromium/v8/tools/callstats.html @@ -7,12 +7,29 @@ code is governed by a BSD-style license that can be found in the LICENSE file. - V8 Runtime Stats Komparator + V8 Runtime Call Stats Komparator +