Bug 1745626 - Dynamic import should always try to unblock onload event in DOM context; r=jonco

Differential Revision: https://phabricator.services.mozilla.com/D133629
This commit is contained in:
Yulia Startsev 2021-12-14 10:53:58 +00:00
parent bfbe9b27fe
commit 8e87e45a45
2 changed files with 8 additions and 10 deletions

View File

@ -640,14 +640,7 @@ ModuleLoader::~ModuleLoader() {
void ModuleLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest) {
MOZ_ASSERT(aRequest->IsReadyToRun());
if (aRequest->IsDynamicImport()) {
MOZ_ASSERT(aRequest->isInList());
RefPtr<ScriptLoadRequest> req = mDynamicImportRequests.Steal(aRequest);
mLoader->RunScriptWhenSafe(aRequest);
} else {
mLoader->ProcessLoadedModuleTree(aRequest);
}
mLoader->ProcessLoadedModuleTree(aRequest);
}
JS::Value ModuleLoader::FindFirstParseError(ModuleLoadRequest* aRequest) {

View File

@ -753,8 +753,13 @@ void ScriptLoader::ProcessLoadedModuleTree(ModuleLoadRequest* aRequest) {
MOZ_ASSERT(aRequest->IsReadyToRun());
if (aRequest->IsTopLevel()) {
if (aRequest->mIsInline &&
aRequest->GetParserCreated() == NOT_FROM_PARSER) {
if (aRequest->IsDynamicImport()) {
MOZ_ASSERT(aRequest->isInList());
RefPtr<ScriptLoadRequest> req =
mModuleLoader->mDynamicImportRequests.Steal(aRequest);
RunScriptWhenSafe(aRequest);
} else if (aRequest->mIsInline &&
aRequest->GetParserCreated() == NOT_FROM_PARSER) {
MOZ_ASSERT(!aRequest->isInList());
RunScriptWhenSafe(aRequest);
} else {