04b766ad80
Per the WebIDL specification, objects that are namespaces must have the their class string value set to their identifier name [1]. Since per spec, console is defined as a namespace [2], console's class string must be "console". However, since the console object in Chromium/v8 is directly implemented inside of v8, it doesn't adhere to the WebIDL binding norms. Its implementation manually had its @@toStringTag set to "Object", which is incorrect. This CL corrects it to "console" and adjusts test expectations accordingly. Unfortunately, this CL will have web-exposed changes to Chromium that are not tested anywhere, specifically because console's implementation of namespace did not adhere to the WebIDL spec. Separately, https://crrev.com/c/4193348 fixes Chromium's web-exposed tests and stable test expectations, to manually treat console as a namespace (despite its broken implementation) so that the global interface listing tests properly enumerate attributes/methods on the console object. Once this CL lands, those expectations will need to be changed. The motivation for this change is to ensure that all console attributes and methods are properly accounted for in the usual Blink webexposed stable tests that are owned by the Blink API OWNERs. This is because recently, v8 shipped a new console method (createTask()) that entirely bypassed the Chromium launch process: https://www.chromium.org/blink/launching-features/, because no files needed to be approved by Blink API OWNERs. [1]: https://webidl.spec.whatwg.org/#ref-for-dfn-class-string%E2%91%A8 [2]: https://console.spec.whatwg.org/#console-namespace Change-Id: I0bbd05242fc815945cce40c65d74995950d64115 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4193308 Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/main@{#85572} |
||
---|---|---|
.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.