• Home
  • Raw
  • Download

Lines Matching full:module

16 #include "ecmascript/module/js_module_source_text.h"
24 #include "ecmascript/module/js_module_deregister.h"
25 #include "ecmascript/module/js_module_manager.h"
26 #include "ecmascript/module/js_module_namespace.h"
27 #include "ecmascript/module/module_data_extractor.h"
28 #include "ecmascript/module/module_path_helper.h"
36 …ing> SourceTextModule::GetExportedNames(JSThread *thread, const JSHandle<SourceTextModule> &module, in GetExportedNames() argument
40 // 1. Let module be this Source Text Module Record. in GetExportedNames()
41 // 2. If exportStarSet contains module, then in GetExportedNames()
42 if (exportStarSet->GetIdx(module.GetTaggedValue()) != TaggedArray::MAX_ARRAY_INDEX) { in GetExportedNames()
47 // 3. Append module to exportStarSet. in GetExportedNames()
50 newExportStarSet->Set(thread, len, module.GetTaggedValue()); in GetExportedNames()
52 JSTaggedValue entryValue = module->GetLocalExportEntries(); in GetExportedNames()
53 // 5. For each ExportEntry Record e in module.[[LocalExportEntries]], do in GetExportedNames()
56 // 6. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in GetExportedNames()
57 entryValue = module->GetIndirectExportEntries(); in GetExportedNames()
60 entryValue = module->GetStarExportEntries(); in GetExportedNames()
66 // 7. For each ExportEntry Record e in module.[[StarExportEntries]], do in GetExportedNames()
71 // a. Let requestedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetExportedNames()
73 SetExportName(thread, moduleRequest, module, exportedNames, newExportStarSet); in GetExportedNames()
80 // new way with module
82 …JSThread *thread, const JSHandle<SourceTextModule> &module, const JSHandle<JSTaggedValue> &moduleR… in HostResolveImportedModuleWithMerge() argument
96 ASSERT(module->GetEcmaModuleFilename().IsHeapObject()); in HostResolveImportedModuleWithMerge()
97 CString baseFilename = ConvertToString(module->GetEcmaModuleFilename()); in HostResolveImportedModuleWithMerge()
98 ASSERT(module->GetEcmaModuleRecordName().IsHeapObject()); in HostResolveImportedModuleWithMerge()
99 CString moduleRecordName = ConvertToString(module->GetEcmaModuleRecordName()); in HostResolveImportedModuleWithMerge()
123 … const JSHandle<SourceTextModule> &module, in HostResolveImportedModule() argument
132 ConvertToString(module->GetEcmaModuleFilename())); in HostResolveImportedModule()
140 bool SourceTextModule::CheckCircularImport(const JSHandle<SourceTextModule> &module, in CheckCircularImport() argument
145 // a. If module and r.[[Module]] are the same Module Record and in CheckCircularImport()
147 if (JSTaggedValue::SameValue(rr.first.GetTaggedValue(), module.GetTaggedValue()) && in CheckCircularImport()
158 … const JSHandle<SourceTextModule> &module, in ResolveExportObject() argument
162 // Let module be this Source Text Module Record. in ResolveExportObject()
165 // For CJS, if exports is not JSObject, means the CJS module use default output in ResolveExportObject()
169 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, -1)); in ResolveExportObject()
180 resolution = ResolveElementOfObject(thread, jsHclass, exportName, module); in ResolveExportObject()
186 … resolution = JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, entry)); in ResolveExportObject()
196 …dValue> SourceTextModule::ResolveExport(JSThread *thread, const JSHandle<SourceTextModule> &module, in ResolveExport() argument
200 // 1. Let module be this Source Text Module Record. in ResolveExport()
203 // 2.For each Record { [[Module]], [[ExportName]] } r in resolveVector, do in ResolveExport()
204 if (CheckCircularImport(module, exportName, resolveVector)) { in ResolveExport()
207 // 3. Append the Record { [[Module]]: module, [[ExportName]]: exportName } to resolveVector. in ResolveExport()
208 resolveVector.emplace_back(std::make_pair(module, exportName)); in ResolveExport()
209 // 4. For each ExportEntry Record e in module.[[LocalExportEntries]], do in ResolveExport()
210 JSHandle<JSTaggedValue> localExportEntriesTv(thread, module->GetLocalExportEntries()); in ResolveExport()
212 …e<JSTaggedValue> resolution = ResolveLocalExport(thread, localExportEntriesTv, exportName, module); in ResolveExport()
217 // 5. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in ResolveExport()
218 JSHandle<JSTaggedValue> indirectExportEntriesTv(thread, module->GetIndirectExportEntries()); in ResolveExport()
221 … exportName, module, resolveVector); in ResolveExport()
228 …// In Aot static parse phase, some importModule maybe empty aot module, all elements will be undef… in ResolveExport()
232 // a. Assert: A default export was not explicitly defined by this module. in ResolveExport()
239 // 8. For each ExportEntry Record e in module.[[StarExportEntries]], do in ResolveExport()
240 JSTaggedValue starExportEntriesTv = module->GetStarExportEntries(); in ResolveExport()
256 module, starResolution, resolveVector); in ResolveExport()
271 // Get exported cjs module in InstantiateCJS()
320 LOG_FULL(FATAL) << "Invalid native module " << moduleName; in MakeAppArgs()
325 // use module name as so name in MakeAppArgs()
349 LOG_FULL(DEBUG) << "Request module is " << moduleRequestName; in LoadNativeModule()
406 // update required module in InitializeEnvironment()
420 // if not the same module, then don't have to update in InitializeEnvironment()
431 CString msg = "the requested module '" + in InitializeEnvironment()
440 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in InitializeEnvironment()
460 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleHdl); in Instantiate() local
461 // 1. Let module be this Source Text Module Record. in Instantiate()
462 // 2. Assert: module.[[Status]] is not "instantiating" or "evaluating". in Instantiate()
463 …ASSERT(module->GetStatus() != ModuleStatus::INSTANTIATING && module->GetStatus() != ModuleStatus::… in Instantiate()
466 // 4. Let result be InnerModuleInstantiation(module, stack, 0). in Instantiate()
467 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Instantiate()
471 // a. For each module m in stack, do in Instantiate()
483 // b. Assert: module.[[Status]] is "uninstantiated". in Instantiate()
484 ASSERT(module->GetStatus() == ModuleStatus::UNINSTANTIATED); in Instantiate()
488 // 6. Assert: module.[[Status]] is "instantiated" or "evaluated". in Instantiate()
489 …ASSERT(module->GetStatus() == ModuleStatus::INSTANTIATED || module->GetStatus() == ModuleStatus::E… in Instantiate()
499 // 1. If module is not a Source Text Module Record, then in InnerModuleInstantiation()
501 // a. Perform ? module.Instantiate(). in InnerModuleInstantiation()
507 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleInstantiation() local
508 … // 2. If module.[[Status]] is "instantiating", "instantiated", or "evaluated", then Return index. in InnerModuleInstantiation()
509 ModuleStatus status = module->GetStatus(); in InnerModuleInstantiation()
515 // 3. Assert: module.[[Status]] is "uninstantiated". in InnerModuleInstantiation()
517 // 4. Set module.[[Status]] to "instantiating". in InnerModuleInstantiation()
518 module->SetStatus(ModuleStatus::INSTANTIATING); in InnerModuleInstantiation()
519 // 5. Set module.[[DFSIndex]] to index. in InnerModuleInstantiation()
520 module->SetDFSIndex(index); in InnerModuleInstantiation()
521 // 6. Set module.[[DFSAncestorIndex]] to index. in InnerModuleInstantiation()
522 module->SetDFSAncestorIndex(index); in InnerModuleInstantiation()
525 // 8. Append module to stack. in InnerModuleInstantiation()
526 stack.emplace_back(module); in InnerModuleInstantiation()
527 // 9. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleInstantiation()
528 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleInstantiation()
529 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleInstantiation()
534 // a. Let requiredModule be ? HostResolveImportedModule(module, required). in InnerModuleInstantiation()
536 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleInstantiation()
539 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleInstantiation()
546 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleInstantiation()
566 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleInstantiation()
567 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleInstantiation()
568 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleInstantiation()
569 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleInstantiation()
570 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleInstantiation()
575 // 10. Perform ? ModuleDeclarationEnvironmentSetup(module). in InnerModuleInstantiation()
576 if (module->GetIsNewBcVersion()) { in InnerModuleInstantiation()
577 SourceTextModule::ModuleDeclarationArrayEnvironmentSetup(thread, module); in InnerModuleInstantiation()
579 SourceTextModule::ModuleDeclarationEnvironmentSetup(thread, module); in InnerModuleInstantiation()
582 // 11. Assert: module occurs exactly once in stack. in InnerModuleInstantiation()
583 // 12. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleInstantiation()
584 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleInstantiation()
585 int dfsIdx = module->GetDFSIndex(); in InnerModuleInstantiation()
587 // 13. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleInstantiation()
599 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleInstantiation()
600 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleInstantiation()
609 const JSHandle<SourceTextModule> &module) in ModuleDeclarationEnvironmentSetup() argument
611 CheckResolvedBinding(thread, module); in ModuleDeclarationEnvironmentSetup()
612 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
616 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationEnvironmentSetup()
617 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationEnvironmentSetup()
620 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationEnvironmentSetup()
624 // 6. Set module.[[Environment]] to env. in ModuleDeclarationEnvironmentSetup()
625 module->SetEnvironment(thread, map); in ModuleDeclarationEnvironmentSetup()
627 JSMutableHandle<JSTaggedValue> envRec(thread, module->GetEnvironment()); in ModuleDeclarationEnvironmentSetup()
629 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationEnvironmentSetup()
640 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationEnvironmentSetup()
642 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationEnvironmentSetup()
645 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
651 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
673 CString msg = "the requested module '" + in ModuleDeclarationEnvironmentSetup()
677 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
678 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationEnvironmentSetup()
680 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationEnvironmentSetup()
685 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationEnvironmentSetup()
693 module->SetEnvironment(thread, envRec); in ModuleDeclarationEnvironmentSetup()
697 … const JSHandle<SourceTextModule> &module) in ModuleDeclarationArrayEnvironmentSetup() argument
699 CheckResolvedIndexBinding(thread, module); in ModuleDeclarationArrayEnvironmentSetup()
700 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
705 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationArrayEnvironmentSetup()
706 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationArrayEnvironmentSetup()
709 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationArrayEnvironmentSetup()
712 // 6. Set module.[[Environment]] to env. in ModuleDeclarationArrayEnvironmentSetup()
713 module->SetEnvironment(thread, arr); in ModuleDeclarationArrayEnvironmentSetup()
716 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationArrayEnvironmentSetup()
725 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationArrayEnvironmentSetup()
727 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationArrayEnvironmentSetup()
730 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
736 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
753 CString msg = "the requested module '" + in ModuleDeclarationArrayEnvironmentSetup()
757 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
758 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
760 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
770 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationArrayEnvironmentSetup()
774 module->SetEnvironment(thread, envRec); in ModuleDeclarationArrayEnvironmentSetup()
778 … const JSHandle<SourceTextModule> &module) in GetModuleNamespace() argument
781 // 1. Assert: module is an instance of a concrete subclass of Module Record. in GetModuleNamespace()
782 // 2. Assert: module.[[Status]] is not "uninstantiated". in GetModuleNamespace()
783 ModuleStatus status = module->GetStatus(); in GetModuleNamespace()
785 // 3. Assert: If module.[[Status]] is "evaluated", module.[[EvaluationError]] is undefined. in GetModuleNamespace()
787 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in GetModuleNamespace()
789 // 4. Let namespace be module.[[Namespace]]. in GetModuleNamespace()
790 JSMutableHandle<JSTaggedValue> moduleNamespace(thread, module->GetNamespace()); in GetModuleNamespace()
793 // a. Let exportedNames be ? module.GetExportedNames(« »). in GetModuleNamespace()
795 …CVector<std::string> exportedNames = SourceTextModule::GetExportedNames(thread, module, exportStar… in GetModuleNamespace()
801 // i. Let resolution be ? module.ResolveExport(name, « »). in GetModuleNamespace()
805 SourceTextModule::ResolveExport(thread, module, nameHandle, resolveVector); in GetModuleNamespace()
813 JSHandle<JSTaggedValue> moduleTagged = JSHandle<JSTaggedValue>::Cast(module); in GetModuleNamespace()
821 int SourceTextModule::Evaluate(JSThread *thread, const JSHandle<SourceTextModule> &module, in Evaluate() argument
824 // 1. Let module be this Source Text Module Record. in Evaluate()
825 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in Evaluate()
826 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in Evaluate()
830 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in Evaluate()
831 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Evaluate()
835 // a. For each module m in stack, do in Evaluate()
844 // b. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is result. in Evaluate()
845 status = module->GetStatus(); in Evaluate()
846 ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == result); in Evaluate()
850 // 6. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is undefined. in Evaluate()
851 status = module->GetStatus(); in Evaluate()
852 …ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == SourceTextModule::UNDE… in Evaluate()
859 …SourceTextModule::EvaluateForConcurrent(JSThread *thread, const JSHandle<SourceTextModule> &module) in EvaluateForConcurrent() argument
861 // 1. Let module be this Source Text Module Record. in EvaluateForConcurrent()
862 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in EvaluateForConcurrent()
863 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in EvaluateForConcurrent()
867 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in EvaluateForConcurrent()
868 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in EvaluateForConcurrent()
872 // a. For each module m in stack, do in EvaluateForConcurrent()
881 // b. Assert: module.[[EvaluationError]] is result. in EvaluateForConcurrent()
882 ASSERT(module->GetEvaluationError() == result); in EvaluateForConcurrent()
886 // 6. Assert: module.[[EvaluationError]] is undefined. in EvaluateForConcurrent()
887 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in EvaluateForConcurrent()
898 // 1. If module is not a Source Text Module Record, then in InnerModuleEvaluation()
900 // a. Perform ? module.Instantiate(). in InnerModuleEvaluation()
906 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleEvaluation() local
907 // 2.If module.[[Status]] is "evaluated", then in InnerModuleEvaluation()
908 ModuleStatus status = module->GetStatus(); in InnerModuleEvaluation()
910 // a. If module.[[EvaluationError]] is undefined, return index in InnerModuleEvaluation()
911 if (module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX) { in InnerModuleEvaluation()
914 // Otherwise return module.[[EvaluationError]]. in InnerModuleEvaluation()
915 return module->GetEvaluationError(); in InnerModuleEvaluation()
917 // 3. If module.[[Status]] is "evaluating", return index. in InnerModuleEvaluation()
921 // 4. Assert: module.[[Status]] is "instantiated". in InnerModuleEvaluation()
923 // 5. Set module.[[Status]] to "evaluating". in InnerModuleEvaluation()
924 module->SetStatus(ModuleStatus::EVALUATING); in InnerModuleEvaluation()
925 // 6. Set module.[[DFSIndex]] to index. in InnerModuleEvaluation()
926 module->SetDFSIndex(index); in InnerModuleEvaluation()
927 // 7. Set module.[[DFSAncestorIndex]] to index. in InnerModuleEvaluation()
928 module->SetDFSAncestorIndex(index); in InnerModuleEvaluation()
931 // 9. Append module to stack. in InnerModuleEvaluation()
932 stack.emplace_back(module); in InnerModuleEvaluation()
933 // 10. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleEvaluation()
934 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleEvaluation()
935 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleEvaluation()
940 // a. Let requiredModule be ! HostResolveImportedModule(module, required). in InnerModuleEvaluation()
942 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleEvaluation()
945 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleEvaluation()
951 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleEvaluation()
957 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in InnerModuleEvaluation()
980 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleEvaluation()
981 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleEvaluation()
982 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleEvaluation()
983 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleEvaluation()
984 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleEvaluation()
986 // if requiredModule is CommonJS Module, instantiate here (after CommonJS execution). in InnerModuleEvaluation()
988 InstantiateCJS(thread, module, requiredModule); in InnerModuleEvaluation()
993 // 11. Perform ? ModuleExecution(module). in InnerModuleEvaluation()
994 SourceTextModule::ModuleExecution(thread, module, buffer, size, excuteFromJob); in InnerModuleEvaluation()
996 // 12. Assert: module occurs exactly once in stack. in InnerModuleEvaluation()
997 // 13. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleEvaluation()
998 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleEvaluation()
999 int dfsIdx = module->GetDFSIndex(); in InnerModuleEvaluation()
1001 // 14. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleEvaluation()
1013 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleEvaluation()
1014 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleEvaluation()
1025 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in ModuleEvaluation() local
1026 if (!module->GetRequestedModules().IsUndefined()) { in ModuleEvaluation()
1027 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in ModuleEvaluation()
1033 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleEvaluation()
1035 … requiredModule.Update(SourceTextModule::HostResolveImportedModule(thread, module, required)); in ModuleEvaluation()
1038 …uiredModule.Update(SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required)); in ModuleEvaluation()
1043 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in ModuleEvaluation()
1057 InstantiateCJS(thread, module, requiredModule); in ModuleEvaluation()
1064 void SourceTextModule::ModuleExecution(JSThread *thread, const JSHandle<SourceTextModule> &module, in ModuleExecution() argument
1067 JSTaggedValue moduleFileName = module->GetEcmaModuleFilename(); in ModuleExecution()
1072 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleExecution()
1097 void SourceTextModule::AddImportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddImportEntry() argument
1101 JSTaggedValue importEntries = module->GetImportEntries(); in AddImportEntry()
1105 module->SetImportEntries(thread, array); in AddImportEntry()
1111 module->SetImportEntries(thread, entries); in AddImportEntry()
1118 …d SourceTextModule::AddLocalExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddLocalExportEntry() argument
1122 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in AddLocalExportEntry()
1126 module->SetLocalExportEntries(thread, array); in AddLocalExportEntry()
1133 …ourceTextModule::AddIndirectExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddIndirectExportEntry() argument
1138 JSTaggedValue indirectExportEntries = module->GetIndirectExportEntries(); in AddIndirectExportEntry()
1142 module->SetIndirectExportEntries(thread, array); in AddIndirectExportEntry()
1149 …id SourceTextModule::AddStarExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddStarExportEntry() argument
1153 JSTaggedValue starExportEntries = module->GetStarExportEntries(); in AddStarExportEntry()
1157 module->SetStarExportEntries(thread, array); in AddStarExportEntry()
1170 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1185 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1232 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1233 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in StoreModuleValue()
1236 JSHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1242 module->SetNameDictionary(thread, data); in StoreModuleValue()
1251 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1252 JSMutableHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1259 module->SetNameDictionary(thread, data); in StoreModuleValue()
1263 const JSHandle<SourceTextModule> &module, in SetExportName() argument
1268 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in SetExportName()
1271 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in SetExportName()
1277 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in SetExportName()
1298 … const JSHandle<SourceTextModule> &module, in GetStarResolution() argument
1304 // a. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetStarResolution()
1306 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in GetStarResolution()
1309 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in GetStarResolution()
1315 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in GetStarResolution()
1323 …// if step into GetStarResolution in aot phase, the module must be a normal SourceTextModule not a… in GetStarResolution()
1324 …// aot module. Sometimes for normal module, if indirectExportEntries, localExportEntries, starExpo… in GetStarResolution()
1325 // all don't have right exportName which means the export element is not from this module, in GetStarResolution()
1345 … // 2. If resolution.[[Module]] and starResolution.[[Module]] are not the same Module Record or in GetStarResolution()
1379 // a. Assert: module provides the direct binding for this export. in AddExportName()
1390 … const JSHandle<SourceTextModule> &module) in ResolveElementOfObject() argument
1395 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, idx)); in ResolveElementOfObject()
1403 … const JSHandle<SourceTextModule> &module) in ResolveLocalExport() argument
1414 // if module is type of CommonJS or native, export first, check after execution. in ResolveLocalExport()
1415 auto moduleType = module->GetTypes(); in ResolveLocalExport()
1417 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, exportName)); in ResolveLocalExport()
1422 // Adapter new module in ResolveLocalExport()
1423 if (module->GetIsNewBcVersion()) { in ResolveLocalExport()
1424 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, in ResolveLocalExport()
1427 // i. Assert: module provides the direct binding for this export. in ResolveLocalExport()
1428 … // ii. Return ResolvedBinding Record { [[Module]]: module, [[BindingName]]: e.[[LocalName]] }. in ResolveLocalExport()
1430 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, localName)); in ResolveLocalExport()
1439 … const JSHandle<SourceTextModule> &module, in ResolveIndirectExport() argument
1453 // i. Assert: module imports a specific binding for this export. in ResolveIndirectExport()
1454 // ii. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in ResolveIndirectExport()
1457 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ResolveIndirectExport()
1459 …requestedModule.Update(SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest)); in ResolveIndirectExport()
1463 … SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest)); in ResolveIndirectExport()
1474 … SourceTextModule::CheckResolvedBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedBinding() argument
1477 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedBinding()
1478 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(); in CheckResolvedBinding()
1489 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedBinding()
1493 SourceTextModule::ResolveExport(thread, module, exportName, resolveVector); in CheckResolvedBinding()
1496 CString msg = "the requested module '" + in CheckResolvedBinding()
1500 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in CheckResolvedBinding()
1501 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in CheckResolvedBinding()
1503 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in CheckResolvedBinding()
1512 …ceTextModule::CheckResolvedIndexBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedIndexBinding() argument
1515 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedIndexBinding()
1516 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(); in CheckResolvedIndexBinding()
1527 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedIndexBinding()
1531 SourceTextModule::ResolveExport(thread, module, exportName, resolveVector); in CheckResolvedIndexBinding()
1534 CString msg = "the requested module '" + in CheckResolvedIndexBinding()
1538 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in CheckResolvedIndexBinding()
1539 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in CheckResolvedIndexBinding()
1541 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in CheckResolvedIndexBinding()
1550 SourceTextModule *module = SourceTextModule::Cast(currentModule.GetTaggedObject()); in GetModuleName() local
1551 JSTaggedValue recordName = module->GetEcmaModuleRecordName(); in GetModuleName()
1553 return module->GetEcmaModuleFilename(); in GetModuleName()