Go to file
Daniel Clark 9bccbee460 [modules] Allow Module::GetModuleRequests() to be called on a SyntheticModule
I'd implemented Module::GetModuleRequests() such that it can only be
called on a SourceTextModuleRecord, forgetting that one of the APIs
it replaces, Module::GetModuleRequestsLength(), could be called on a
synthetic module.  The old behavior allowed embedders to write code that
iterates over a module's requests without needing to handle synthetic
modules as a special case.  GetModuleRequestsLength() would just return
0 for all synthetic modules and the code to process the requests
would be skipped seamlessly for them.

With the new GetModuleRequests() API, this would no longer be possible,
and embedders would explicitly need to check IsSyntheticModule()
before calling it.  Thus, to reach parity with the old API, this change
allows embedders to call GetModuleRequests() on a synthetic module,
which will always result in an empty FixedArray.

Bug: v8:10958
Change-Id: I6024261fe46d18fa7acc83b0ec8f69d6af21b28d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2570146
Reviewed-by: Marja Hölttä <marja@chromium.org>
Reviewed-by: Camillo Bruni <cbruni@chromium.org>
Commit-Queue: Dan Clark <daniec@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#71599}
2020-12-03 16:24:34 +00:00
build_overrides
custom_deps
docs
gni
include [api] Clean up ScriptCompiler::StartStreaming* methods 2020-12-01 12:16:06 +00:00
infra
samples [api] Use shorter 8::Local::As<*> casts in more places 2020-11-28 11:04:26 +00:00
src [modules] Allow Module::GetModuleRequests() to be called on a SyntheticModule 2020-12-03 16:24:34 +00:00
test [modules] Allow Module::GetModuleRequests() to be called on a SyntheticModule 2020-12-03 16:24:34 +00:00
testing
third_party
tools [cleanup] Remove remaining uses of DISALLOW_COPY_AND_ASSIGN 2020-12-03 12:24:03 +00:00
.clang-format
.clang-tidy
.editorconfig
.flake8
.git-blame-ignore-revs
.gitattributes
.gitignore
.gn
.vpython
.ycm_extra_conf.py
AUTHORS
BUILD.gn [cleanup][TurboProp] Unify DynamicMapChecks names. 2020-12-02 10:29:49 +00:00
CODE_OF_CONDUCT.md
codereview.settings
COMMON_OWNERS
DEPS Update V8 DEPS. 2020-12-03 03:33:32 +00:00
DIR_METADATA
ENG_REVIEW_OWNERS
INFRA_OWNERS
INTL_OWNERS
LICENSE
LICENSE.fdlibm
LICENSE.strongtalk
LICENSE.v8
MIPS_OWNERS
OWNERS
PPC_OWNERS
PRESUBMIT.py
README.md
S390_OWNERS
WATCHLISTS

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.