зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
77609d6143
Коммит
5d525af423
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче