Go to file
Jakob Gruber e79b841bee [literals] Add a dedicated regexp boilerplate type
... and mark it as never-serialized wrt turbofan serialization.

Until this CL, the JSRegExp type was used as both for plain
user-visible regexp objects, and for internal regexp boilerplate
descriptions. Boilerplates are special: they are never exposed to the
user, they are only referenced from the feedback vector, they are
immutable.

To clarify this distinction, this CL introduces a dedicated struct
type RegExpBoilerplateDescription to hold the regexp boilerplate
description.

This makes Turbofan serialization simpler: boilerplates can be
accessed through direct reads since they are immutable. TF has no
special requirements on JSRegExp objects (it never reads into these
objects) and thus serializing only the references as a JSObjectRef is
fine.

Bug: v8:7790
Change-Id: I33b337fcfcf861a02bc6be6d0c6311d07cf05718
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2656257
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72522}
2021-02-04 07:53:23 +00:00
.github [github] Close PRs created on the V8 GitHub mirror automatically 2021-01-12 08:39:59 +00:00
build_overrides [build] Remove obsolete gn flag 2021-01-11 15:50:59 +00:00
custom_deps
docs
gni tracing: Initialize track events conditionally 2021-01-18 12:39:03 +00:00
include cppgc: Add testing API structure 2021-02-03 16:00:37 +00:00
infra [test] Update Mac testing from 10.13 to 10.15 2021-02-03 16:26:57 +00:00
samples [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
src [literals] Add a dedicated regexp boilerplate type 2021-02-04 07:53:23 +00:00
test [wasm-simd][ia32] Implement i64x2.ne and i64x2 all_true 2021-02-03 23:45:08 +00:00
testing
third_party Remove tebbi from OWNERS and TODOs 2021-01-21 13:23:00 +00:00
tools [literals] Add a dedicated regexp boilerplate type 2021-02-04 07:53:23 +00:00
.clang-format
.clang-tidy
.editorconfig
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore [build] Remove legacy binutils 2021-01-08 12:33:31 +00:00
.gn
.vpython
.ycm_extra_conf.py
AUTHORS Remove duplicate AUTHORS entry 2020-12-08 13:49:34 +00:00
BUILD.gn Reland "Reland "Reland "[compiler][wasm] Align Frame slots to value size""" 2021-02-03 16:50:47 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS Remove tebbi from OWNERS and TODOs 2021-01-21 13:23:00 +00:00
DEPS Update V8 DEPS. 2021-02-04 04:06:15 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
ENG_REVIEW_OWNERS
INFRA_OWNERS
INTL_OWNERS
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
MIPS_OWNERS [mips] Request to be an owner of MIPS files 2020-11-23 09:43:49 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
PPC_OWNERS Adding myself to relevant OWNERS files. 2020-11-02 16:37:28 +00:00
PRESUBMIT.py cppgc: Add testing API structure 2021-02-03 16:00:37 +00:00
README.md
S390_OWNERS Adding myself to relevant OWNERS files. 2020-11-02 16:37:28 +00:00
WATCHLISTS Add a watchlist for ieee754.(cc|h) changes. 2021-01-11 18:10:19 +00:00

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.