5b8d62d830
This CL fixes a bug where we wouldn't pause (or even crash) when trying to interrupt an infinite loop. When we pause via stack check (i.e. a scheduled break) we currently do one additional step-in. We do so to enter functions properly in case we are paused in the middle of setting up the stack frame. Loops also do a stack check, to support pausing infinite loops. In that case we can skip the additional step-in as we are already in a valid pause position (as implemented by this CL). This CL also removes two bogus DCHECKs. We assumed that a scheduled break never happens after a step. This is wrong, e.g. a user can click the pause button after stepping over a long running function. Note that we duplicate the various loop interruption cctests to also interrupt the loops with the "scheduled" break reason. Without the changes in debug.cc, those won't pass. The CL https://crrev.com/c/4136058 adds a regression test on the blink side. R=jarin@chromium.org Fixed: chromium:1401674 Change-Id: I42b44744b17d24351f01b83c0446908c24e6c5fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4134246 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/main@{#85106} |
||
---|---|---|
.github | ||
bazel | ||
build_overrides | ||
custom_deps | ||
docs | ||
gni | ||
include | ||
infra | ||
samples | ||
src | ||
test | ||
testing | ||
third_party | ||
tools | ||
.bazelrc | ||
.clang-format | ||
.clang-tidy | ||
.editorconfig | ||
.flake8 | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
.gn | ||
.mailmap | ||
.style.yapf | ||
.vpython3 | ||
.ycm_extra_conf.py | ||
AUTHORS | ||
BUILD.bazel | ||
BUILD.gn | ||
CODE_OF_CONDUCT.md | ||
codereview.settings | ||
COMMON_OWNERS | ||
DEPS | ||
DIR_METADATA | ||
ENG_REVIEW_OWNERS | ||
INFRA_OWNERS | ||
INTL_OWNERS | ||
LICENSE | ||
LICENSE.fdlibm | ||
LICENSE.strongtalk | ||
LICENSE.v8 | ||
LOONG_OWNERS | ||
MIPS_OWNERS | ||
OWNERS | ||
PPC_OWNERS | ||
PRESUBMIT.py | ||
README.md | ||
RISCV_OWNERS | ||
S390_OWNERS | ||
WATCHLISTS | ||
WORKSPACE |
V8 JavaScript Engine
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Getting the Code
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies.
To stay up to date, run
git pull origin
gclient sync
For fetching all branches, add the following into your remote
configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
fetch = +refs/tags/*:refs/tags/*
Contributing
Please follow the instructions mentioned at v8.dev/docs/contribute.