Lines Matching full:module
16 #include "ecmascript/module/js_module_source_text.h"
23 #include "ecmascript/module/js_shared_module_manager.h"
24 #include "ecmascript/module/module_logger.h"
25 #include "ecmascript/module/module_message_helper.h"
26 #include "ecmascript/module/module_path_helper.h"
28 #include "ecmascript/module/module_value_accessor.h"
29 #include "ecmascript/module/module_resolver.h"
30 #include "ecmascript/module/module_tools.h"
41 …ing> SourceTextModule::GetExportedNames(JSThread *thread, const JSHandle<SourceTextModule> &module, in GetExportedNames() argument
45 // 1. Let module be this Source Text Module Record. in GetExportedNames()
46 // 2. If exportStarSet contains module, then in GetExportedNames()
47 if (exportStarSet->GetIdx(thread, module.GetTaggedValue()) != TaggedArray::MAX_ARRAY_INDEX) { in GetExportedNames()
52 // 3. Append module to exportStarSet. in GetExportedNames()
55 newExportStarSet->Set(thread, len, module.GetTaggedValue()); in GetExportedNames()
57 JSTaggedValue entryValue = module->GetLocalExportEntries(thread); in GetExportedNames()
58 // 5. For each ExportEntry Record e in module.[[LocalExportEntries]], do in GetExportedNames()
61 // 6. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in GetExportedNames()
62 entryValue = module->GetIndirectExportEntries(thread); in GetExportedNames()
65 entryValue = module->GetStarExportEntries(thread); in GetExportedNames()
69 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in GetExportedNames()
70 // 7. For each ExportEntry Record e in module.[[StarExportEntries]], do in GetExportedNames()
75 // a. Let requestedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetExportedNames()
77 … GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, ee->GetModuleRequestIndex()); in GetExportedNames()
88 const JSHandle<SourceTextModule> &module, in CheckCircularImport() argument
95 auto range = resolvedMap.equal_range(reinterpret_cast<CString *>(GetModuleName(module))); in CheckCircularImport()
98 // a. If module and r.[[Module]] are the same Module Record and in CheckCircularImport()
111 … const JSHandle<SourceTextModule> module, in GetBindingNameByIndex() argument
119 …JSHandle<JSTaggedValue> exports = ModuleValueAccessor::GetNativeOrCjsExports(thread, module.GetTag… in GetBindingNameByIndex()
143 … const JSHandle<SourceTextModule> &module, in ResolveExportObject() argument
147 // Let module be this Source Text Module Record. in ResolveExportObject()
150 // For CJS, if exports is not JSObject, means the CJS module use default output in ResolveExportObject()
154 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, -1)); in ResolveExportObject()
157 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, -1)); in ResolveExportObject()
168 resolution = ResolveElementOfObject(thread, jsHclass, exportName, module); in ResolveExportObject()
174 … resolution = JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, entry)); in ResolveExportObject()
213 const JSHandle<SourceTextModule> &module, in ResolveExport() argument
217 // 1. Let module be this Source Text Module Record. in ResolveExport()
220 // 2.For each Record { [[Module]], [[ExportName]] } r in resolvedMap, do in ResolveExport()
221 if (CheckCircularImport(thread, module, exportName, resolvedMap)) { in ResolveExport()
224 // 3. Append the Record { [[Module]]: module, [[ExportName]]: exportName } to resolvedMap. in ResolveExport()
225 resolvedMap.emplace(reinterpret_cast<CString *>(GetModuleName(module)), exportName); in ResolveExport()
226 // 4. For each ExportEntry Record e in module.[[LocalExportEntries]], do in ResolveExport()
227 JSHandle<JSTaggedValue> localExportEntriesTv(thread, module->GetLocalExportEntries(thread)); in ResolveExport()
229 …e<JSTaggedValue> resolution = ResolveLocalExport(thread, localExportEntriesTv, exportName, module); in ResolveExport()
234 // 5. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in ResolveExport()
235 … JSHandle<JSTaggedValue> indirectExportEntriesTv(thread, module->GetIndirectExportEntries(thread)); in ResolveExport()
238 exportName, module, resolvedMap); in ResolveExport()
247 // a. Assert: A default export was not explicitly defined by this module. in ResolveExport()
254 // 8. For each ExportEntry Record e in module.[[StarExportEntries]], do in ResolveExport()
255 JSTaggedValue starExportEntriesTv = module->GetStarExportEntries(thread); in ResolveExport()
260 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in ResolveExport()
265 // a. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in ResolveExport()
267 … GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, ee->GetModuleRequestIndex()); in ResolveExport()
338 // use module name as so name in MakeNormalizedAppArgs()
361 LOG_FULL(FATAL) << "Invalid native module " << soPath; in MakeAppArgs()
366 // use module name as so name in MakeAppArgs()
432 LOG_FULL(DEBUG) << "Request module is " << moduleRequestName; in LoadNativeModuleImpl()
468 CString errorMsg = "load native module failed."; in LoadNativeModuleMayThrowError()
513 …t SourceTextModule::HandleInstantiateException([[maybe_unused]] JSHandle<SourceTextModule> &module, in HandleInstantiateException() argument
516 // a. For each module m in stack, do in HandleInstantiateException()
528 // b. Assert: module.[[Status]] is "uninstantiated". in HandleInstantiateException()
529 ASSERT(module->GetStatus() == ModuleStatus::UNINSTANTIATED); in HandleInstantiateException()
540 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleHdl); in Instantiate() local
541 // 1. Let module be this Source Text Module Record. in Instantiate()
542 // 2. Assert: module.[[Status]] is one of UNLINKED, LINKED, EVALUATING-ASYNC, or EVALUATED. in Instantiate()
543 ModuleStatus status = module->GetStatus(); in Instantiate()
547 // 4. Let result be InnerModuleInstantiation(module, stack, 0). in Instantiate()
548 SourceTextModule::PreModuleInstantiation(thread, module, executeType); in Instantiate()
552 …// handle exception here may cause incompatible changes, therefore, resolve module failed still ne… in Instantiate()
559 int result = FinishModuleInstantiation(thread, module, stack, 0, exception); in Instantiate()
561 return HandleInstantiateException(module, stack, result); in Instantiate()
563 // 6. Assert: module.[[Status]] is one of LINKED, EVALUATING-ASYNC, or EVALUATED. in Instantiate()
564 status = module->GetStatus(); in Instantiate()
582 void SourceTextModule::DFSModuleInstantiation(JSThread *thread, JSHandle<SourceTextModule> &module, in DFSModuleInstantiation() argument
585 // 1. Assert: module occurs exactly once in stack. in DFSModuleInstantiation()
586 // 2. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in DFSModuleInstantiation()
587 int dfsAncIdx = module->GetDFSAncestorIndex(); in DFSModuleInstantiation()
588 int dfsIdx = module->GetDFSIndex(); in DFSModuleInstantiation()
590 // 3. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in DFSModuleInstantiation()
602 // iv. If requiredModule and module are the same Module Record, set done to true. in DFSModuleInstantiation()
603 … if (JSTaggedValue::SameValue(thread, module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in DFSModuleInstantiation()
611 JSHandle<SourceTextModule> module, const ExecuteTypes &executeType) in PreModuleInstantiation() argument
615 ModuleStatus status = module->GetStatus(); in PreModuleInstantiation()
620 bool isShared = SourceTextModule::IsSharedModule(module); in PreModuleInstantiation()
622 LOG_FULL(INFO) << "circular dependency occurred of shared-module"; in PreModuleInstantiation()
625 module->SetStatus(ModuleStatus::PREINSTANTIATING); in PreModuleInstantiation()
626 JSHandle<TaggedArray> moduleRequests(thread, module->GetModuleRequests(thread)); in PreModuleInstantiation()
627 // 9. For each String required that is an element of module.[[RequestedModules]], do in PreModuleInstantiation()
629 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in PreModuleInstantiation()
635 ModuleResolver::HostResolveImportedModule(thread, module, required, executeType); in PreModuleInstantiation()
645 int SourceTextModule::FinishModuleInstantiation(JSThread *thread, JSHandle<SourceTextModule> module, in FinishModuleInstantiation() argument
650 // ArkTS module doesn't implement other module Record, delete follow branch. in FinishModuleInstantiation()
651 // 1. If module is not a Source Text Module Record, then in FinishModuleInstantiation()
652 // a. Perform ? module.Instantiate(). in FinishModuleInstantiation()
654 …// 2. If module.[[Status]] is one of LINKING, LINKED, EVALUATING-ASYNC, or EVALUATED, then Return … in FinishModuleInstantiation()
655 ModuleStatus status = module->GetStatus(); in FinishModuleInstantiation()
659 // 3. Assert: module.[[Status]] is "PREINSTANTIATING". in FinishModuleInstantiation()
661 // 4. Set module.[[Status]] to "instantiating". in FinishModuleInstantiation()
662 module->SetStatus(ModuleStatus::INSTANTIATING); in FinishModuleInstantiation()
663 // 5. Set module.[[DFSIndex]] to index. in FinishModuleInstantiation()
664 module->SetDFSIndex(index); in FinishModuleInstantiation()
665 // 6. Set module.[[DFSAncestorIndex]] to index. in FinishModuleInstantiation()
666 module->SetDFSAncestorIndex(index); in FinishModuleInstantiation()
669 // 8. Append module to stack. in FinishModuleInstantiation()
670 stack.emplace_back(module); in FinishModuleInstantiation()
671 // 9. For each String required that is an element of module.[[RequestedModules]], do in FinishModuleInstantiation()
672 if (!module->GetRequestedModules(thread).IsUndefined()) { in FinishModuleInstantiation()
673 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in FinishModuleInstantiation()
677 GetRequestedModuleMayThrowError(thread, module, idx, requestedModules, exception); in FinishModuleInstantiation()
691 // i. Assert: requiredModule is a Source Text Module Record. in FinishModuleInstantiation()
692 // ii. Set module.[[DFSAncestorIndex]] to min( in FinishModuleInstantiation()
693 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in FinishModuleInstantiation()
694 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in FinishModuleInstantiation()
695 module->SetDFSAncestorIndex(dfsAncIdx); in FinishModuleInstantiation()
700 // 10. Perform ? ModuleDeclarationEnvironmentSetup(module). in FinishModuleInstantiation()
701 if (module->GetIsNewBcVersion()) { in FinishModuleInstantiation()
702 SourceTextModule::ModuleDeclarationArrayEnvironmentSetup(thread, module); in FinishModuleInstantiation()
704 SourceTextModule::ModuleDeclarationEnvironmentSetup(thread, module); in FinishModuleInstantiation()
707 DFSModuleInstantiation(thread, module, stack); in FinishModuleInstantiation()
712 const JSHandle<SourceTextModule> &module) in ModuleDeclarationEnvironmentSetup() argument
714 CheckResolvedBinding(thread, module); in ModuleDeclarationEnvironmentSetup()
715 if (module->GetImportEntries(thread).IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
718 ASSERT(!SourceTextModule::IsSharedModule(module)); in ModuleDeclarationEnvironmentSetup()
719 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationEnvironmentSetup()
720 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationEnvironmentSetup()
723 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries(thread)); in ModuleDeclarationEnvironmentSetup()
727 // 6. Set module.[[Environment]] to env. in ModuleDeclarationEnvironmentSetup()
728 module->SetEnvironment(thread, map); in ModuleDeclarationEnvironmentSetup()
730 JSMutableHandle<JSTaggedValue> envRec(thread, module->GetEnvironment(thread)); in ModuleDeclarationEnvironmentSetup()
732 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationEnvironmentSetup()
733 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in ModuleDeclarationEnvironmentSetup()
742 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationEnvironmentSetup()
744 … GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, in->GetModuleRequestIndex())); in ModuleDeclarationEnvironmentSetup()
767 … CString msg = "the requested module '" + requestMod + GetResolveErrorReason(resolution) + in ModuleDeclarationEnvironmentSetup()
769 if (!module->GetEcmaModuleRecordNameString().empty()) { in ModuleDeclarationEnvironmentSetup()
770 … CString recordStr = ModulePathHelper::ReformatPath(module->GetEcmaModuleRecordNameString()); in ModuleDeclarationEnvironmentSetup()
773 msg += "' which imported by '" + module->GetEcmaModuleFilenameString() + "'"; in ModuleDeclarationEnvironmentSetup()
778 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationEnvironmentSetup()
786 module->SetEnvironment(thread, envRec); in ModuleDeclarationEnvironmentSetup()
790 … const JSHandle<SourceTextModule> &module) in ModuleDeclarationArrayEnvironmentSetup() argument
793 "SourceTextModule::Instantiating:" + module->GetEcmaModuleRecordNameString()); in ModuleDeclarationArrayEnvironmentSetup()
794 …if (IsSharedModule(module) && SharedModuleManager::GetInstance()->IsInstantiatedSModule(thread, mo… in ModuleDeclarationArrayEnvironmentSetup()
797 CheckResolvedIndexBinding(thread, module); in ModuleDeclarationArrayEnvironmentSetup()
798 if (module->GetImportEntries(thread).IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
803 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationArrayEnvironmentSetup()
804 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationArrayEnvironmentSetup()
807 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries(thread)); in ModuleDeclarationArrayEnvironmentSetup()
812 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationArrayEnvironmentSetup()
813 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in ModuleDeclarationArrayEnvironmentSetup()
820 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationArrayEnvironmentSetup()
822 … GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, in->GetModuleRequestIndex()); in ModuleDeclarationArrayEnvironmentSetup()
829 envRec = JSSharedModule::CloneEnvForSModule(thread, module, envRec); in ModuleDeclarationArrayEnvironmentSetup()
830 module->SetEnvironment(thread, envRec); in ModuleDeclarationArrayEnvironmentSetup()
841 … CString msg = "the requested module '" + requestMod + GetResolveErrorReason(resolution) + in ModuleDeclarationArrayEnvironmentSetup()
843 if (!module->GetEcmaModuleRecordNameString().empty()) { in ModuleDeclarationArrayEnvironmentSetup()
845 module->GetEcmaModuleRecordNameString()); in ModuleDeclarationArrayEnvironmentSetup()
848 msg += "' which imported by '" + module->GetEcmaModuleFilenameString() + "'"; in ModuleDeclarationArrayEnvironmentSetup()
853 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationArrayEnvironmentSetup()
856 envRec = JSSharedModule::CloneEnvForSModule(thread, module, envRec); in ModuleDeclarationArrayEnvironmentSetup()
857 module->SetEnvironment(thread, envRec); in ModuleDeclarationArrayEnvironmentSetup()
861 … const JSHandle<SourceTextModule> &module) in GetModuleNamespace() argument
864 // 1. Assert: module is an instance of a concrete subclass of Module Record. in GetModuleNamespace()
865 // 2. Assert: module.[[Status]] is not "uninstantiated". in GetModuleNamespace()
866 ASSERT(module->GetStatus() != ModuleStatus::UNINSTANTIATED); in GetModuleNamespace()
867 // 3. Let namespace be module.[[Namespace]]. in GetModuleNamespace()
868 …JSMutableHandle<JSTaggedValue> moduleNamespace(thread, module->GetNamespace(thread).GetWeakRawValu… in GetModuleNamespace()
871 // a. Let exportedNames be ? module.GetExportedNames(« »). in GetModuleNamespace()
873 …CVector<std::string> exportedNames = SourceTextModule::GetExportedNames(thread, module, exportStar… in GetModuleNamespace()
879 // i. Let resolution be ? module.ResolveExport(name, « »). in GetModuleNamespace()
883 SourceTextModule::ResolveExport(thread, module, nameHandle, resolvedMap); in GetModuleNamespace()
892 JSHandle<JSTaggedValue> moduleTagged = JSHandle<JSTaggedValue>::Cast(module); in GetModuleNamespace()
900 void SourceTextModule::HandleEvaluateResult(JSThread *thread, JSHandle<SourceTextModule> &module, in HandleEvaluateResult() argument
909 // b. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is result. in HandleEvaluateResult()
918 // a. Assert: module.[[Status]] is either EVALUATING-ASYNC or EVALUATED. in HandleEvaluateResult()
919 status = module->GetStatus(); in HandleEvaluateResult()
921 // b. Assert: module.[[EvaluationError]] is EMPTY. in HandleEvaluateResult()
923 // c. If module.[[AsyncEvaluation]] is false, then in HandleEvaluateResult()
924 // i. Assert: module.[[Status]] is EVALUATED || ERRORED. in HandleEvaluateResult()
926 if (!module->IsAsyncEvaluating()) { in HandleEvaluateResult()
937 // 1. Let module be this Source Text Module Record. in Evaluate()
938 // 2. Assert: module.[[Status]] is one of LINKED, EVALUATING-ASYNC, or EVALUATED. in Evaluate()
939 JSMutableHandle<SourceTextModule> module(thread, moduleHdl); in Evaluate() local
940 ModuleStatus status = module->GetStatus(); in Evaluate()
943 …// 3. If module.[[Status]] is either EVALUATING-ASYNC or EVALUATED, set module to module.[[CycleRo… in Evaluate()
945 module.Update(module->GetCycleRoot(thread)); in Evaluate()
947 // 4. If module.[[TopLevelCapability]] is not EMPTY, then in Evaluate()
948 // a. Return module.[[TopLevelCapability]].[[Promise]]. in Evaluate()
956 // 7. Set module.[[TopLevelCapability]] to capability. in Evaluate()
957 if (!SourceTextModule::IsSharedModule(module)) { in Evaluate()
958 module->SetTopLevelCapability(thread, capability); in Evaluate()
961 // 8. Let result be Completion(InnerModuleEvaluation(module, stack, 0)). in Evaluate()
962 …SourceTextModule::InnerModuleEvaluation(thread, module, stack, errorStack, 0, buffer, size, execut… in Evaluate()
963 HandleEvaluateResult(thread, module, capability, stack, errorStack); in Evaluate()
969 moduleLogger->InsertEntryPointModule(module); in Evaluate()
975 …SourceTextModule::EvaluateForConcurrent(JSThread *thread, const JSHandle<SourceTextModule> &module, in EvaluateForConcurrent() argument
978 // 1. Let module be this Source Text Module Record. in EvaluateForConcurrent()
979 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in EvaluateForConcurrent()
980 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in EvaluateForConcurrent()
982 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in EvaluateForConcurrent()
983 int result = SourceTextModule::ModuleEvaluation(thread, module, 0, method); in EvaluateForConcurrent()
993 …SourceTextModule::InnerModuleEvaluationUnsafe(JSThread *thread, JSHandle<SourceTextModule> &module, in InnerModuleEvaluationUnsafe() argument
998 ModuleStatus status = module->GetStatus(); in InnerModuleEvaluationUnsafe()
1001 ModuleMessageHelper::PrintAndThrowError(thread, module); in InnerModuleEvaluationUnsafe()
1011 module->SetStatus(ModuleStatus::EVALUATING); in InnerModuleEvaluationUnsafe()
1012 module->SetDFSIndex(index); in InnerModuleEvaluationUnsafe()
1013 module->SetDFSAncestorIndex(index); in InnerModuleEvaluationUnsafe()
1014 module->SetPendingAsyncDependencies(0); in InnerModuleEvaluationUnsafe()
1016 stack.emplace_back(module); in InnerModuleEvaluationUnsafe()
1018 if (!module->GetRequestedModules(thread).IsUndefined()) { in InnerModuleEvaluationUnsafe()
1019 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in InnerModuleEvaluationUnsafe()
1024 if (module->IsLazyImportModule(idx)) { in InnerModuleEvaluationUnsafe()
1027 … requiredModule = GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, idx); in InnerModuleEvaluationUnsafe()
1030 moduleLogger->InsertParentModule(module, requiredModule); in InnerModuleEvaluationUnsafe()
1051 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleEvaluationUnsafe()
1052 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleEvaluationUnsafe()
1058 errorStack.emplace_back(module); in InnerModuleEvaluationUnsafe()
1059 SetExceptionToModule(thread, module, requiredModule->GetException(thread)); in InnerModuleEvaluationUnsafe()
1060 ModuleMessageHelper::PrintAndThrowError(thread, module); in InnerModuleEvaluationUnsafe()
1066 module->SetPendingAsyncDependencies(module->GetPendingAsyncDependencies() + 1); in InnerModuleEvaluationUnsafe()
1067 AddAsyncParentModule(thread, requiredModule, module); in InnerModuleEvaluationUnsafe()
1071 int pendingAsyncDependencies = module->GetPendingAsyncDependencies(); in InnerModuleEvaluationUnsafe()
1072 bool hasTLA = module->GetHasTLA(); in InnerModuleEvaluationUnsafe()
1073 // 12. If module.[[PendingAsyncDependencies]] > 0 or module.[[HasTLA]] is true, then in InnerModuleEvaluationUnsafe()
1075 // a. Assert: module.[[AsyncEvaluation]] is false and was never previously set to true. in InnerModuleEvaluationUnsafe()
1076 ASSERT(module->GetAsyncEvaluatingOrdinal() == NOT_ASYNC_EVALUATED); in InnerModuleEvaluationUnsafe()
1077 // b. Set module.[[AsyncEvaluation]] to true. in InnerModuleEvaluationUnsafe()
1079 module->SetAsyncEvaluatingOrdinal(moduleManager->NextModuleAsyncEvaluatingOrdinal()); in InnerModuleEvaluationUnsafe()
1080 // d. If module.[[PendingAsyncDependencies]] = 0, perform ExecuteAsyncModule(module). in InnerModuleEvaluationUnsafe()
1082 SourceTextModule::ExecuteAsyncModule(thread, module, buffer, size, executeType); in InnerModuleEvaluationUnsafe()
1086 // 13. Else, Perform ? module.ExecuteModule(). in InnerModuleEvaluationUnsafe()
1087 SourceTextModule::ModuleExecution(thread, module, buffer, size, executeType); in InnerModuleEvaluationUnsafe()
1090 // 14. Assert: module occurs exactly once in stack. in InnerModuleEvaluationUnsafe()
1091 // 15. Assert: module.[[DFSAncestorIndex]] ≤ module.[[DFSIndex]]. in InnerModuleEvaluationUnsafe()
1092 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleEvaluationUnsafe()
1093 int dfsIdx = module->GetDFSIndex(); in InnerModuleEvaluationUnsafe()
1095 // 16. If module.[[DFSAncestorIndex]] = module.[[DFSIndex]], then in InnerModuleEvaluationUnsafe()
1105 // iii. Assert: requiredModule is a Cyclic Module Record. in InnerModuleEvaluationUnsafe()
1113 // vi. If requiredModule and module are the same Module Record, set done to true. in InnerModuleEvaluationUnsafe()
1114 … if (JSTaggedValue::SameValue(thread, module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleEvaluationUnsafe()
1117 // vii. Set requiredModule.[[CycleRoot]] to module. in InnerModuleEvaluationUnsafe()
1119 requiredModule->SetCycleRoot(thread, module); in InnerModuleEvaluationUnsafe()
1127 const JSHandle<SourceTextModule> &module) in IsEvaluatedModule() argument
1130 return GetModuleEvaluatingType(thread, stateVisit, module) >= ModuleStatus::EVALUATED; in IsEvaluatedModule()
1134 const JSHandle<SourceTextModule> &module) in GetModuleEvaluatingType() argument
1137 return module->GetStatus(); in GetModuleEvaluatingType()
1140 int SourceTextModule::InnerModuleEvaluation(JSThread *thread, JSHandle<SourceTextModule> &module, in InnerModuleEvaluation() argument
1145 bool isShared = IsSharedModule(module); in InnerModuleEvaluation()
1148 thread, module, stack, errorStack, index, buffer, size, executeType); in InnerModuleEvaluation()
1151 StateVisit &stateVisit = sharedModuleManager->FindModuleMutexWithLock(thread, module); in InnerModuleEvaluation()
1152 ModuleStatus status = module->GetStatus(); in InnerModuleEvaluation()
1158 ModuleMessageHelper::PrintAndThrowError(thread, module); in InnerModuleEvaluation()
1163 module = sharedModuleManager-> in InnerModuleEvaluation()
1164 TransferFromLocalToSharedModuleMapAndGetInsertedSModule(thread, module); in InnerModuleEvaluation()
1165 if (module->GetStatus() == ModuleStatus::INSTANTIATED) { in InnerModuleEvaluation()
1168 thread, module, stack, errorStack, index, buffer, size, executeType); in InnerModuleEvaluation()
1177 …rceTextModule::HandleConcurrentEvaluateResult(JSThread *thread, JSHandle<SourceTextModule> &module, in HandleConcurrentEvaluateResult() argument
1185 // b. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is result. in HandleConcurrentEvaluateResult()
1191 // a. Assert: module.[[Status]] is either EVALUATING-ASYNC or EVALUATED. in HandleConcurrentEvaluateResult()
1192 status = module->GetStatus(); in HandleConcurrentEvaluateResult()
1196 // c. If module.[[AsyncEvaluation]] is false, then in HandleConcurrentEvaluateResult()
1197 // i. Assert: module.[[Status]] is EVALUATED || ERRORED. in HandleConcurrentEvaluateResult()
1198 if (!module->IsAsyncEvaluating()) { in HandleConcurrentEvaluateResult()
1205 int SourceTextModule::ModuleEvaluation(JSThread *thread, const JSHandle<SourceTextModule> &module, in ModuleEvaluation() argument
1208 if (!module->GetRequestedModules(thread).IsUndefined()) { in ModuleEvaluation()
1209 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in ModuleEvaluation()
1215 // skip the unused module in ModuleEvaluation()
1219 GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, idx); in ModuleEvaluation()
1239 …const JSHandle<SourceTextModule> &module, const void *buffer, size_t size, const ExecuteTypes &exe… in ModuleExecution() argument
1243 moduleFilenameStr = thread->GetEcmaVM()->GetQuickFixManager()->GetBaseFileName(module); in ModuleExecution()
1245 moduleFilenameStr = module->GetEcmaModuleFilenameString(); in ModuleExecution()
1248 CString moduleRecordName = module->GetEcmaModuleRecordNameString(); in ModuleExecution()
1270 void SourceTextModule::AddImportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddImportEntry() argument
1274 JSTaggedValue importEntries = module->GetImportEntries(thread); in AddImportEntry()
1278 module->SetImportEntries(thread, array); in AddImportEntry()
1284 module->SetImportEntries(thread, entries); in AddImportEntry()
1291 …d SourceTextModule::AddLocalExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddLocalExportEntry() argument
1295 JSTaggedValue localExportEntries = module->GetLocalExportEntries(thread); in AddLocalExportEntry()
1299 module->SetLocalExportEntries(thread, array); in AddLocalExportEntry()
1306 …ourceTextModule::AddIndirectExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddIndirectExportEntry() argument
1311 JSTaggedValue indirectExportEntries = module->GetIndirectExportEntries(thread); in AddIndirectExportEntry()
1315 module->SetIndirectExportEntries(thread, array); in AddIndirectExportEntry()
1322 …id SourceTextModule::AddStarExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddStarExportEntry() argument
1326 JSTaggedValue starExportEntries = module->GetStarExportEntries(thread); in AddStarExportEntry()
1330 module->SetStarExportEntries(thread, array); in AddStarExportEntry()
1341 // if module is Errored, throw origin jsError in GetModuleValue()
1362 // if module is Errored, throw origin jsError in GetModuleValue()
1441 void SourceTextModule::StoreModuleValue(JSThread *thread, const JSHandle<SourceTextModule> &module,… in StoreModuleValue() argument
1444 if (UNLIKELY(IsSharedModule(module)) && !value->IsSharedType()) { in StoreModuleValue()
1445 CString msg = "Export non-shared object from shared-module, module name is :" + in StoreModuleValue()
1446 module->GetEcmaModuleRecordNameString(); in StoreModuleValue()
1449 JSTaggedValue localExportEntries = module->GetLocalExportEntries(thread); in StoreModuleValue()
1452 JSHandle<JSTaggedValue> data(thread, module->GetNameDictionary(thread)); in StoreModuleValue()
1457 if (SourceTextModule::IsSharedModule(module)) { in StoreModuleValue()
1463 module->SetNameDictionary(thread, data); in StoreModuleValue()
1470 // discard instructions won't consider shared-module.
1471 void SourceTextModule::StoreModuleValue(JSThread *thread, const JSHandle<SourceTextModule> &module, in StoreModuleValue() argument
1474 if (UNLIKELY(IsSharedModule(module)) && !value->IsSharedType()) { in StoreModuleValue()
1475 CString msg = "Export non-shared object from shared-module, module name is :" + in StoreModuleValue()
1476 module->GetEcmaModuleRecordNameString(); in StoreModuleValue()
1479 JSMutableHandle<JSTaggedValue> data(thread, module->GetNameDictionary(thread)); in StoreModuleValue()
1486 module->SetNameDictionary(thread, data); in StoreModuleValue()
1543 … // 2. If resolution.[[Module]] and starResolution.[[Module]] are not the same Module Record or in GetStarResolution()
1579 // a. Assert: module provides the direct binding for this export. in AddExportName()
1590 … const JSHandle<SourceTextModule> &module) in ResolveElementOfObject() argument
1595 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, idx)); in ResolveElementOfObject()
1603 … const JSHandle<SourceTextModule> &module) in ResolveLocalExport() argument
1614 // if module is type of CommonJS or native, export first, check after execution. in ResolveLocalExport()
1615 auto moduleType = module->GetTypes(); in ResolveLocalExport()
1617 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, exportName)); in ResolveLocalExport()
1621 // Adapter new module in ResolveLocalExport()
1622 if (module->GetIsNewBcVersion()) { in ResolveLocalExport()
1623 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, in ResolveLocalExport()
1626 // i. Assert: module provides the direct binding for this export. in ResolveLocalExport()
1627 … // ii. Return ResolvedBinding Record { [[Module]]: module, [[BindingName]]: e.[[LocalName]] }. in ResolveLocalExport()
1629 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, localName)); in ResolveLocalExport()
1638 … const JSHandle<SourceTextModule> &module, in ResolveIndirectExport() argument
1645 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules(thread)); in ResolveIndirectExport()
1652 // i. Assert: module imports a specific binding for this export. in ResolveIndirectExport()
1653 // ii. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in ResolveIndirectExport()
1655 … GetModuleFromCacheOrResolveNewOne(thread, module, requestedModules, ee->GetModuleRequestIndex()); in ResolveIndirectExport()
1666 … SourceTextModule::CheckResolvedBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedBinding() argument
1669 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedBinding()
1670 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(thread); in CheckResolvedBinding()
1681 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedBinding()
1685 SourceTextModule::ResolveExport(thread, module, exportName, resolvedMap); in CheckResolvedBinding()
1689 …TaggedArray *requestArray = TaggedArray::Cast(module->GetModuleRequests(thread).GetTaggedObject()); in CheckResolvedBinding()
1692 … CString msg = "the requested module '" + requestMod + GetResolveErrorReason(resolution) + in CheckResolvedBinding()
1694 if (!module->GetEcmaModuleRecordNameString().empty()) { in CheckResolvedBinding()
1695 … CString recordStr = ModulePathHelper::ReformatPath(module->GetEcmaModuleRecordNameString()); in CheckResolvedBinding()
1698 msg += "' which exported by '" + module->GetEcmaModuleFilenameString() + "'"; in CheckResolvedBinding()
1707 …ceTextModule::CheckResolvedIndexBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedIndexBinding() argument
1710 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedIndexBinding()
1711 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(thread); in CheckResolvedIndexBinding()
1722 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedIndexBinding()
1726 SourceTextModule::ResolveExport(thread, module, exportName, resolvedMap); in CheckResolvedIndexBinding()
1730 …TaggedArray *requestArray = TaggedArray::Cast(module->GetModuleRequests(thread).GetTaggedObject()); in CheckResolvedIndexBinding()
1733 … CString msg = "the requested module '" + requestMod + GetResolveErrorReason(resolution) + in CheckResolvedIndexBinding()
1735 if (!module->GetEcmaModuleRecordNameString().empty()) { in CheckResolvedIndexBinding()
1736 … CString record = ModulePathHelper::ReformatPath(module->GetEcmaModuleRecordNameString()); in CheckResolvedIndexBinding()
1739 msg += "' which exported by '" + module->GetEcmaModuleFilenameString() + "'"; in CheckResolvedIndexBinding()
1748 SourceTextModule *module = SourceTextModule::Cast(currentModule.GetTaggedObject()); in GetModuleName() local
1749 CString recordName = module->GetEcmaModuleRecordNameString(); in GetModuleName()
1751 recordName = module->GetEcmaModuleFilenameString(); in GetModuleName()
1766 void SourceTextModule::AddAsyncParentModule(JSThread *thread, JSHandle<SourceTextModule> &module, in AddAsyncParentModule() argument
1770 JSTaggedValue asyncParentModules = module->GetAsyncParentModules(thread); in AddAsyncParentModule()
1774 module->SetAsyncParentModules(thread, array); in AddAsyncParentModule()
1780 module->SetAsyncParentModules(thread, array); in AddAsyncParentModule()
1784 …id SourceTextModule::ExecuteAsyncModule(JSThread *thread, const JSHandle<SourceTextModule> &module, in ExecuteAsyncModule() argument
1787 // 1. Assert: module.[[Status]] is either EVALUATING or EVALUATING-ASYNC. in ExecuteAsyncModule()
1788 …ASSERT(module->GetStatus() == ModuleStatus::EVALUATING || module->GetStatus() == ModuleStatus::EVA… in ExecuteAsyncModule()
1789 // 2. Assert: module.[[HasTLA]] is true. in ExecuteAsyncModule()
1790 ASSERT(module->GetHasTLA()); in ExecuteAsyncModule()
1791 CString moduleFilenameStr = module->GetEcmaModuleFilenameString(); in ExecuteAsyncModule()
1794 CString moduleRecordName = module->GetEcmaModuleRecordNameString(); in ExecuteAsyncModule()
1817 …// 4. Let fulfilledClosure be a new Abstract Closure with no parameters that captures module and p… in ExecuteAsyncModule()
1819 // a. Perform AsyncModuleExecutionFulfilled(module). in ExecuteAsyncModule()
1822 …rejectedClosure be a new Abstract Closure with parameters (error) that captures module and performs in ExecuteAsyncModule()
1824 // a. Perform AsyncModuleExecutionRejected(module, error). in ExecuteAsyncModule()
1833 onFulfilled->SetModule(thread, module); in ExecuteAsyncModule()
1837 onRejected->SetModule(thread, module); in ExecuteAsyncModule()
1846 …rceTextModule::GatherAvailableAncestors(JSThread *thread, const JSHandle<SourceTextModule> &module, in GatherAvailableAncestors() argument
1850 JSTaggedValue asyncParentModulesValue = module->GetAsyncParentModules(thread); in GatherAvailableAncestors()
1857 // 1. For each Cyclic Module Record m of module.[[AsyncParentModules]], do in GatherAvailableAncestors()
1886 …xtModule::AsyncModuleExecutionFulfilled(JSThread *thread, const JSHandle<SourceTextModule> &module) in AsyncModuleExecutionFulfilled() argument
1888 // 1. If module.[[Status]] is EVALUATED, then in AsyncModuleExecutionFulfilled()
1889 // a. Assert: module.[[EvaluationError]] is not EMPTY. in AsyncModuleExecutionFulfilled()
1891 if (module->GetStatus() == ModuleStatus::ERRORED) { in AsyncModuleExecutionFulfilled()
1892 ASSERT(!module->GetException(thread).IsHole()); in AsyncModuleExecutionFulfilled()
1895 // 2. Assert: module.[[Status]] is EVALUATING-ASYNC. in AsyncModuleExecutionFulfilled()
1896 ASSERT(module->GetStatus() == ModuleStatus::EVALUATING_ASYNC); in AsyncModuleExecutionFulfilled()
1897 // 3. Assert: module.[[AsyncEvaluation]] is true. in AsyncModuleExecutionFulfilled()
1898 ASSERT(module->IsAsyncEvaluating()); in AsyncModuleExecutionFulfilled()
1899 // 4. Assert: module.[[EvaluationError]] is EMPTY. in AsyncModuleExecutionFulfilled()
1900 // 5. Set module.[[AsyncEvaluation]] to false. in AsyncModuleExecutionFulfilled()
1901 module->SetAsyncEvaluatingOrdinal(ASYNC_EVALUATE_DID_FINISH); in AsyncModuleExecutionFulfilled()
1902 // 6. Set module.[[Status]] to EVALUATED. in AsyncModuleExecutionFulfilled()
1903 module->SetStatus(ModuleStatus::EVALUATED); in AsyncModuleExecutionFulfilled()
1904 // 7. If module.[[TopLevelCapability]] is not EMPTY, then in AsyncModuleExecutionFulfilled()
1905 // a. Assert: module.[[CycleRoot]] is module. in AsyncModuleExecutionFulfilled()
1906 // b. Perform ! Call(module.[[TopLevelCapability]].[[Resolve]], undefined, « undefined »). in AsyncModuleExecutionFulfilled()
1908 JSTaggedValue topLevelCapabilityValue = module->GetTopLevelCapability(thread); in AsyncModuleExecutionFulfilled()
1910 … ASSERT(JSTaggedValue::SameValue(thread, module->GetCycleRoot(thread), module.GetTaggedValue())); in AsyncModuleExecutionFulfilled()
1918 // 9. Perform GatherAvailableAncestors(module, execList). in AsyncModuleExecutionFulfilled()
1921 GatherAvailableAncestors(thread, module, execList); in AsyncModuleExecutionFulfilled()
1924 // 12. For each Cyclic Module Record m of sortedExecList, do in AsyncModuleExecutionFulfilled()
1929 ASSERT(module->GetStatus() == ModuleStatus::ERRORED); in AsyncModuleExecutionFulfilled()
1963 …extModule::AsyncModuleExecutionRejected(JSThread *thread, const JSHandle<SourceTextModule> &module, in AsyncModuleExecutionRejected() argument
1966 // 1. If module.[[Status]] is EVALUATED, then in AsyncModuleExecutionRejected()
1967 // a. Assert: module.[[EvaluationError]] is not EMPTY. in AsyncModuleExecutionRejected()
1969 if (module->GetStatus() == ModuleStatus::ERRORED) { in AsyncModuleExecutionRejected()
1970 ASSERT(!module->GetException(thread).IsHole()); in AsyncModuleExecutionRejected()
1973 // 2. Assert: module.[[Status]] is EVALUATING-ASYNC. in AsyncModuleExecutionRejected()
1974 ASSERT(module->GetStatus() == ModuleStatus::EVALUATING_ASYNC); in AsyncModuleExecutionRejected()
1975 // 3. Assert: module.[[AsyncEvaluation]] is true. in AsyncModuleExecutionRejected()
1976 ASSERT(module->IsAsyncEvaluating()); in AsyncModuleExecutionRejected()
1977 // 4. Assert: module.[[EvaluationError]] is EMPTY. in AsyncModuleExecutionRejected()
1978 ASSERT(module->GetException(thread).IsHole()); in AsyncModuleExecutionRejected()
1979 // 5. Set module.[[EvaluationError]] to ThrowCompletion(error). in AsyncModuleExecutionRejected()
1980 module->SetStatus(ModuleStatus::ERRORED); in AsyncModuleExecutionRejected()
1981 // 6. Set module.[[Status]] to EVALUATED. in AsyncModuleExecutionRejected()
1982 module->SetException(thread, error); in AsyncModuleExecutionRejected()
1983 // 7. For each Cyclic Module Record m of module.[[AsyncParentModules]], do in AsyncModuleExecutionRejected()
1986 JSTaggedValue asyncParentModulesValue = module->GetAsyncParentModules(thread); in AsyncModuleExecutionRejected()
1997 // 8. If module.[[TopLevelCapability]] is not EMPTY, then in AsyncModuleExecutionRejected()
1998 // a. Assert: module.[[CycleRoot]] is module. in AsyncModuleExecutionRejected()
1999 // b. Perform ! Call(module.[[TopLevelCapability]].[[Reject]], undefined, « error »). in AsyncModuleExecutionRejected()
2000 JSTaggedValue topLevelCapabilityValue = module->GetTopLevelCapability(thread); in AsyncModuleExecutionRejected()
2007 … ASSERT(JSTaggedValue::SameValue(thread, module->GetCycleRoot(thread), module.GetTaggedValue())); in AsyncModuleExecutionRejected()
2021 JSHandle<SourceTextModule> module(thread, fulfilledFunc->GetModule(thread)); in AsyncModuleFulfilledFunc() local
2022 AsyncModuleExecutionFulfilled(thread, module); in AsyncModuleFulfilledFunc()
2034 JSHandle<SourceTextModule> module(thread, rejectedFunc->GetModule(thread)); in AsyncModuleRejectedFunc() local
2036 AsyncModuleExecutionRejected(thread, module, value.GetTaggedValue()); in AsyncModuleRejectedFunc()
2058 const JSHandle<SourceTextModule> &module, in SearchCircularImport() argument
2062 if (module->GetModuleRequests(thread).IsUndefined()) { in SearchCircularImport()
2066 JSHandle<TaggedArray> moduleRequests(thread, module->GetModuleRequests(thread)); in SearchCircularImport()
2073 ModuleResolver::HostResolveImportedModule(thread, module, required))); in SearchCircularImport()
2115 // This function for module which execution doesn't through SourceTextModule::Evaluate
2116 void SourceTextModule::RecordEvaluatedOrError(JSThread *thread, JSHandle<SourceTextModule> module) in RecordEvaluatedOrError() argument
2119 module->SetStatus(ModuleStatus::ERRORED); in RecordEvaluatedOrError()
2122 LOG_FULL(INFO) << "Error module: " << module->GetEcmaModuleRecordNameString(); in RecordEvaluatedOrError()
2124 return SetExceptionToModule(thread, module, thread->GetException()); in RecordEvaluatedOrError()
2126 module->SetStatus(ModuleStatus::EVALUATED); in RecordEvaluatedOrError()
2129 void SourceTextModule::SetExceptionToModule(JSThread *thread, JSHandle<SourceTextModule> module, in SetExceptionToModule() argument
2132 if (!IsSharedModule(module)) { in SetExceptionToModule()
2133 module->SetException(thread, exception); in SetExceptionToModule()
2142 // process error message for share module in SetExceptionToModule()
2150 …CString errMsg = "Error store in module " + module->GetEcmaModuleRecordNameString() + ":\n" + msg + in SetExceptionToModule()
2160 module->SetException(thread, ecmaErrMsg.GetTaggedValue()); in SetExceptionToModule()
2168 LOG_FULL(ERROR) << "Error found in module:" << GetEcmaModuleRecordNameString(); in CheckAndThrowModuleError()
2186 // a. For each module m in stack, do in HandleEvaluateException()
2197 LOG_FULL(INFO) << "Error module: " << mm->GetEcmaModuleRecordNameString(); in HandleEvaluateException()
2212 LOG_FULL(INFO) << "Error module: " << mm->GetEcmaModuleRecordNameString(); in HandleErrorStack()
2218 …const JSHandle<SourceTextModule> module, const JSHandle<TaggedArray> requestedModules, uint32_t id… in GetModuleFromCacheOrResolveNewOne() argument
2224 // current is normal module: directly get require SourceTextModule. in GetModuleFromCacheOrResolveNewOne()
2227 // current is shared module: resolve or find request module by request string. in GetModuleFromCacheOrResolveNewOne()
2245 * In this case, we need to add resolve new module process. in GetModuleFromCacheOrResolveNewOne()
2247 JSHandle<TaggedArray> moduleRequests(thread, module->GetModuleRequests(thread)); in GetModuleFromCacheOrResolveNewOne()
2249 …STaggedValue> requiredModule = ModuleResolver::HostResolveImportedModule(thread, module, required); in GetModuleFromCacheOrResolveNewOne()
2251 …edModules(thread, requestedModules, idx, requiredModule, SourceTextModule::IsSharedModule(module)); in GetModuleFromCacheOrResolveNewOne()
2256 …const JSHandle<SourceTextModule> module, uint32_t idx, const JSHandle<TaggedArray> requestedModule… in GetRequestedModuleMayThrowError() argument
2261 // requestModule is hole, means module resolve already have exception. in GetRequestedModuleMayThrowError()
2263 LOG_ECMA(ERROR) << "GetRequestedModuleMayThrowError request module is hole"; in GetRequestedModuleMayThrowError()
2267 …return JSHandle<JSTaggedValue>::Cast(GetModuleFromCacheOrResolveNewOne(thread, module, requestedMo… in GetRequestedModuleMayThrowError()
2273 * In this case, current thread's B may not be the final shared module in sharedModuleMap,
2295 …d SourceTextModule::StoreAndResetMutableFields(JSThread* thread, JSHandle<SourceTextModule> module, in StoreAndResetMutableFields() argument
2299 fields.TopLevelCapability = module->GetTopLevelCapability(thread); in StoreAndResetMutableFields()
2300 fields.NameDictionary = module->GetNameDictionary(thread); in StoreAndResetMutableFields()
2301 fields.CycleRoot = module->GetCycleRoot(thread); in StoreAndResetMutableFields()
2302 fields.AsyncParentModules = module->GetAsyncParentModules(thread); in StoreAndResetMutableFields()
2303 fields.SendableEnv = module->GetSendableEnv(thread); in StoreAndResetMutableFields()
2304 fields.Exception = module->GetException(thread); in StoreAndResetMutableFields()
2305 fields.Namespace = module->GetNamespace(thread); in StoreAndResetMutableFields()
2306 module->SetTopLevelCapability(thread, undefinedValue); in StoreAndResetMutableFields()
2307 module->SetNameDictionary(thread, undefinedValue); in StoreAndResetMutableFields()
2308 module->SetCycleRoot(thread, undefinedValue); in StoreAndResetMutableFields()
2309 module->SetAsyncParentModules(thread, undefinedValue); in StoreAndResetMutableFields()
2310 module->SetSendableEnv(thread, undefinedValue); in StoreAndResetMutableFields()
2311 module->SetException(thread, undefinedValue); in StoreAndResetMutableFields()
2312 module->SetNamespace(thread, undefinedValue); in StoreAndResetMutableFields()
2315 void SourceTextModule::RestoreMutableFields(JSThread* thread, JSHandle<SourceTextModule> module, Mu… in RestoreMutableFields() argument
2317 module->SetTopLevelCapability(thread, fields.TopLevelCapability); in RestoreMutableFields()
2318 module->SetNameDictionary(thread, fields.NameDictionary); in RestoreMutableFields()
2319 module->SetCycleRoot(thread, fields.CycleRoot); in RestoreMutableFields()
2320 module->SetAsyncParentModules(thread, fields.AsyncParentModules); in RestoreMutableFields()
2321 module->SetSendableEnv(thread, fields.SendableEnv); in RestoreMutableFields()
2322 module->SetException(thread, fields.Exception); in RestoreMutableFields()
2323 module->SetNamespace(thread, fields.Namespace); in RestoreMutableFields()
2353 auto module = moduleManager->HostGetImportedModule(referencing); in FindFuncInModuleForHook() local
2364 if (module->GetIsNewBcVersion()) { in FindFuncInModuleForHook()
2365 …int index = ecmascript::ModuleManager::GetExportObjectIndex(thread->GetEcmaVM(), module, keyStr.c_… in FindFuncInModuleForHook()
2366 result = module->GetModuleValue(thread, index, false); in FindFuncInModuleForHook()
2369 result = module->GetModuleValue(thread, keyHandle.GetTaggedValue(), false); in FindFuncInModuleForHook()