Bug 1766274 - Part 4: Change references to module trees to module graphs r=yulia

Module imports can be cyclic so it's more correct to refer to them as graphs.
The spec also uses this term.

Depends on D144599

Differential Revision: https://phabricator.services.mozilla.com/D144600
This commit is contained in:
Jon Coppeard 2022-04-26 12:40:48 +00:00
Родитель 77609d6143
Коммит 5d525af423
4 изменённых файлов: 20 добавлений и 16 удалений

Просмотреть файл

@ -1716,7 +1716,7 @@ nsresult ScriptLoader::ProcessRequest(ScriptLoadRequest* aRequest) {
if (aRequest->IsModuleRequest()) {
ModuleLoadRequest* request = aRequest->AsModuleRequest();
if (request->mModuleScript) {
if (!request->InstantiateModuleTree()) {
if (!request->InstantiateModuleGraph()) {
request->mModuleScript = nullptr;
}
}

Просмотреть файл

@ -105,7 +105,9 @@ class ModuleLoadRequest final : public ScriptLoadRequest {
nsresult OnFetchComplete(nsresult aRv) {
return mLoader->OnFetchComplete(this, aRv);
}
bool InstantiateModuleTree() { return mLoader->InstantiateModuleTree(this); }
bool InstantiateModuleGraph() {
return mLoader->InstantiateModuleGraph(this);
}
nsresult EvaluateModule() { return mLoader->EvaluateModule(this); }
void StartDynamicImport() { mLoader->StartDynamicImport(this); }
void ProcessDynamicImport() { mLoader->ProcessDynamicImport(this); }
@ -131,8 +133,8 @@ class ModuleLoadRequest final : public ScriptLoadRequest {
// finishes.
RefPtr<ModuleLoaderBase> mLoader;
// Pointer to the top level module of this module tree, nullptr if this is
// a top level module
// Pointer to the top level module of this module graph, nullptr if this is a
// top level module
RefPtr<ModuleLoadRequest> mRootModule;
// Set to a module script object after a successful load or nullptr on

Просмотреть файл

@ -716,8 +716,8 @@ void ModuleLoaderBase::StartFetchingModuleDependencies(
return;
}
// For each url in urls, fetch a module script tree given url, module script's
// CORS setting, and module script's settings object.
// For each url in urls, fetch a module script graph given url, module
// script's CORS setting, and module script's settings object.
nsTArray<RefPtr<mozilla::GenericPromise>> importsReady;
for (auto* url : urls) {
RefPtr<mozilla::GenericPromise> childReady =
@ -896,16 +896,16 @@ JS::Value ModuleLoaderBase::FindFirstParseError(ModuleLoadRequest* aRequest) {
return JS::UndefinedValue();
}
bool ModuleLoaderBase::InstantiateModuleTree(ModuleLoadRequest* aRequest) {
bool ModuleLoaderBase::InstantiateModuleGraph(ModuleLoadRequest* aRequest) {
// Instantiate a top-level module and record any error.
MOZ_ASSERT(aRequest);
MOZ_ASSERT(aRequest->mLoader == this);
MOZ_ASSERT(aRequest->IsTopLevel());
LOG(("ScriptLoadRequest (%p): Instantiate module tree", aRequest));
LOG(("ScriptLoadRequest (%p): Instantiate module graph", aRequest));
AUTO_PROFILER_LABEL("ModuleLoaderBase::InstantiateModuleTree", JS);
AUTO_PROFILER_LABEL("ModuleLoaderBase::InstantiateModuleGraph", JS);
ModuleScript* moduleScript = aRequest->mModuleScript;
MOZ_ASSERT(moduleScript);
@ -943,7 +943,7 @@ bool ModuleLoaderBase::InstantiateModuleTree(ModuleLoadRequest* aRequest) {
return true;
}
nsresult ModuleLoaderBase::InitDebuggerDataForModuleTree(
nsresult ModuleLoaderBase::InitDebuggerDataForModuleGraph(
JSContext* aCx, ModuleLoadRequest* aRequest) {
// JS scripts can be associated with a DOM element for use by the debugger,
// but preloading can cause scripts to be compiled before DOM script element
@ -958,7 +958,7 @@ nsresult ModuleLoaderBase::InitDebuggerDataForModuleTree(
}
for (ModuleLoadRequest* childRequest : aRequest->mImports) {
nsresult rv = InitDebuggerDataForModuleTree(aCx, childRequest);
nsresult rv = InitDebuggerDataForModuleGraph(aCx, childRequest);
NS_ENSURE_SUCCESS(rv, rv);
}
@ -977,7 +977,7 @@ void ModuleLoaderBase::ProcessDynamicImport(ModuleLoadRequest* aRequest) {
MOZ_ASSERT(aRequest->mLoader == this);
if (aRequest->mModuleScript) {
if (!InstantiateModuleTree(aRequest)) {
if (!InstantiateModuleGraph(aRequest)) {
aRequest->mModuleScript = nullptr;
}
}
@ -1036,7 +1036,7 @@ nsresult ModuleLoaderBase::EvaluateModule(ModuleLoadRequest* aRequest) {
return NS_OK;
}
nsresult rv = InitDebuggerDataForModuleTree(cx, request);
nsresult rv = InitDebuggerDataForModuleGraph(cx, request);
NS_ENSURE_SUCCESS(rv, rv);
if (request->HasLoadContext()) {

Просмотреть файл

@ -162,8 +162,10 @@ class ModuleLoaderBase : public nsISupports {
// Notify the module loader when a fetch started by StartFetch() completes.
nsresult OnFetchComplete(ModuleLoadRequest* aRequest, nsresult aRv);
bool InstantiateModuleTree(ModuleLoadRequest* aRequest);
// Link the module and all its imports. This must occur prior to evaluation.
bool InstantiateModuleGraph(ModuleLoadRequest* aRequest);
// Executes the module.
// Implements https://html.spec.whatwg.org/#run-a-module-script
nsresult EvaluateModule(ModuleLoadRequest* aRequest);
@ -218,8 +220,8 @@ class ModuleLoaderBase : public nsISupports {
ModuleScript* GetFetchedModule(nsIURI* aURL) const;
JS::Value FindFirstParseError(ModuleLoadRequest* aRequest);
static nsresult InitDebuggerDataForModuleTree(JSContext* aCx,
ModuleLoadRequest* aRequest);
static nsresult InitDebuggerDataForModuleGraph(JSContext* aCx,
ModuleLoadRequest* aRequest);
static nsresult ResolveRequestedModules(ModuleLoadRequest* aRequest,
nsCOMArray<nsIURI>* aUrlsOut);