Lines Matching full:module
16 #include "ecmascript/module/js_module_source_text.h"
25 #include "ecmascript/module/js_module_manager.h"
26 #include "ecmascript/module/js_module_namespace.h"
32 …ing> SourceTextModule::GetExportedNames(JSThread *thread, const JSHandle<SourceTextModule> &module, in GetExportedNames() argument
36 // 1. Let module be this Source Text Module Record. in GetExportedNames()
37 // 2. If exportStarSet contains module, then in GetExportedNames()
38 if (exportStarSet->GetIdx(module.GetTaggedValue()) != TaggedArray::MAX_ARRAY_INDEX) { in GetExportedNames()
43 // 3. Append module to exportStarSet. in GetExportedNames()
46 newExportStarSet->Set(thread, len, module.GetTaggedValue()); in GetExportedNames()
48 JSTaggedValue entryValue = module->GetLocalExportEntries(); in GetExportedNames()
49 // 5. For each ExportEntry Record e in module.[[LocalExportEntries]], do in GetExportedNames()
52 // 6. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in GetExportedNames()
53 entryValue = module->GetIndirectExportEntries(); in GetExportedNames()
56 entryValue = module->GetStarExportEntries(); in GetExportedNames()
62 // 7. For each ExportEntry Record e in module.[[StarExportEntries]], do in GetExportedNames()
67 // a. Let requestedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetExportedNames()
69 SetExportName(thread, moduleRequest, module, exportedNames, newExportStarSet); in GetExportedNames()
76 // new way with module
78 …JSThread *thread, const JSHandle<SourceTextModule> &module, const JSHandle<JSTaggedValue> &moduleR… in HostResolveImportedModuleWithMerge() argument
92 ASSERT(module->GetEcmaModuleFilename().IsHeapObject()); in HostResolveImportedModuleWithMerge()
93 CString baseFilename = ConvertToString(module->GetEcmaModuleFilename()); in HostResolveImportedModuleWithMerge()
94 ASSERT(module->GetEcmaModuleRecordName().IsHeapObject()); in HostResolveImportedModuleWithMerge()
95 CString moduleRecordName = ConvertToString(module->GetEcmaModuleRecordName()); in HostResolveImportedModuleWithMerge()
117 … const JSHandle<SourceTextModule> &module, in HostResolveImportedModule() argument
126 JSHandle<JSTaggedValue>(thread, module->GetEcmaModuleFilename())); in HostResolveImportedModule()
134 bool SourceTextModule::CheckCircularImport(const JSHandle<SourceTextModule> &module, in CheckCircularImport() argument
139 // a. If module and r.[[Module]] are the same Module Record and in CheckCircularImport()
141 if (JSTaggedValue::SameValue(rr.first.GetTaggedValue(), module.GetTaggedValue()) && in CheckCircularImport()
152 const JSHandle<SourceTextModule> &module, const JSHandle<JSTaggedValue> &exportObject, in ResolveExportObject() argument
155 // Let module be this Source Text Module Record. in ResolveExportObject()
157 // For CJS, if exportObject is not JSObject, means the CJS module use default output in ResolveExportObject()
162 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, -1)); in ResolveExportObject()
169 … JSHandle<JSTaggedValue> resolution = ResolveElementOfObject(thread, jsHclass, exportName, module); in ResolveExportObject()
178 …dValue> SourceTextModule::ResolveExport(JSThread *thread, const JSHandle<SourceTextModule> &module, in ResolveExport() argument
182 // 1. Let module be this Source Text Module Record. in ResolveExport()
185 // 2.For each Record { [[Module]], [[ExportName]] } r in resolveVector, do in ResolveExport()
186 if (CheckCircularImport(module, exportName, resolveVector)) { in ResolveExport()
189 // 3. Append the Record { [[Module]]: module, [[ExportName]]: exportName } to resolveVector. in ResolveExport()
190 resolveVector.emplace_back(std::make_pair(module, exportName)); in ResolveExport()
191 // 4. For each ExportEntry Record e in module.[[LocalExportEntries]], do in ResolveExport()
192 JSHandle<JSTaggedValue> localExportEntriesTv(thread, module->GetLocalExportEntries()); in ResolveExport()
194 …e<JSTaggedValue> resolution = ResolveLocalExport(thread, localExportEntriesTv, exportName, module); in ResolveExport()
199 // 5. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in ResolveExport()
200 JSHandle<JSTaggedValue> indirectExportEntriesTv(thread, module->GetIndirectExportEntries()); in ResolveExport()
203 … exportName, module, resolveVector); in ResolveExport()
211 // a. Assert: A default export was not explicitly defined by this module. in ResolveExport()
218 // 8. For each ExportEntry Record e in module.[[StarExportEntries]], do in ResolveExport()
219 JSTaggedValue starExportEntriesTv = module->GetStarExportEntries(); in ResolveExport()
231 module, starResolution, resolveVector); in ResolveExport()
246 // Get exported cjs module in InstantiateCJS()
290 // update required module in InitializeEnvironment()
304 // if not the same module, then don't have to update in InitializeEnvironment()
315 CString msg = "the requested module '" + in InitializeEnvironment()
324 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in InitializeEnvironment()
343 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleHdl); in Instantiate() local
344 // 1. Let module be this Source Text Module Record. in Instantiate()
345 // 2. Assert: module.[[Status]] is not "instantiating" or "evaluating". in Instantiate()
346 …ASSERT(module->GetStatus() != ModuleStatus::INSTANTIATING && module->GetStatus() != ModuleStatus::… in Instantiate()
349 // 4. Let result be InnerModuleInstantiation(module, stack, 0). in Instantiate()
350 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Instantiate()
354 // a. For each module m in stack, do in Instantiate()
366 // b. Assert: module.[[Status]] is "uninstantiated". in Instantiate()
367 ASSERT(module->GetStatus() == ModuleStatus::UNINSTANTIATED); in Instantiate()
371 // 6. Assert: module.[[Status]] is "instantiated" or "evaluated". in Instantiate()
372 …ASSERT(module->GetStatus() == ModuleStatus::INSTANTIATED || module->GetStatus() == ModuleStatus::E… in Instantiate()
382 // 1. If module is not a Source Text Module Record, then in InnerModuleInstantiation()
384 // a. Perform ? module.Instantiate(). in InnerModuleInstantiation()
390 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleInstantiation() local
391 … // 2. If module.[[Status]] is "instantiating", "instantiated", or "evaluated", then Return index. in InnerModuleInstantiation()
392 ModuleStatus status = module->GetStatus(); in InnerModuleInstantiation()
398 // 3. Assert: module.[[Status]] is "uninstantiated". in InnerModuleInstantiation()
400 // 4. Set module.[[Status]] to "instantiating". in InnerModuleInstantiation()
401 module->SetStatus(ModuleStatus::INSTANTIATING); in InnerModuleInstantiation()
402 // 5. Set module.[[DFSIndex]] to index. in InnerModuleInstantiation()
403 module->SetDFSIndex(index); in InnerModuleInstantiation()
404 // 6. Set module.[[DFSAncestorIndex]] to index. in InnerModuleInstantiation()
405 module->SetDFSAncestorIndex(index); in InnerModuleInstantiation()
408 // 8. Append module to stack. in InnerModuleInstantiation()
409 stack.emplace_back(module); in InnerModuleInstantiation()
410 // 9. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleInstantiation()
411 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleInstantiation()
412 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleInstantiation()
417 // a. Let requiredModule be ? HostResolveImportedModule(module, required). in InnerModuleInstantiation()
419 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleInstantiation()
422 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleInstantiation()
429 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleInstantiation()
448 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleInstantiation()
449 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleInstantiation()
450 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleInstantiation()
451 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleInstantiation()
452 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleInstantiation()
458 // 10. Perform ? ModuleDeclarationEnvironmentSetup(module). in InnerModuleInstantiation()
459 if (module->GetIsNewBcVersion()) { in InnerModuleInstantiation()
460 SourceTextModule::ModuleDeclarationArrayEnvironmentSetup(thread, module); in InnerModuleInstantiation()
462 SourceTextModule::ModuleDeclarationEnvironmentSetup(thread, module); in InnerModuleInstantiation()
465 // 11. Assert: module occurs exactly once in stack. in InnerModuleInstantiation()
466 // 12. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleInstantiation()
467 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleInstantiation()
468 int dfsIdx = module->GetDFSIndex(); in InnerModuleInstantiation()
470 // 13. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleInstantiation()
482 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleInstantiation()
483 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleInstantiation()
492 const JSHandle<SourceTextModule> &module) in ModuleDeclarationEnvironmentSetup() argument
494 CheckResolvedBinding(thread, module); in ModuleDeclarationEnvironmentSetup()
495 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
499 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationEnvironmentSetup()
500 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationEnvironmentSetup()
503 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationEnvironmentSetup()
507 // 6. Set module.[[Environment]] to env. in ModuleDeclarationEnvironmentSetup()
508 module->SetEnvironment(thread, map); in ModuleDeclarationEnvironmentSetup()
510 JSMutableHandle<JSTaggedValue> envRec(thread, module->GetEnvironment()); in ModuleDeclarationEnvironmentSetup()
512 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationEnvironmentSetup()
523 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationEnvironmentSetup()
525 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationEnvironmentSetup()
528 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
534 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
556 CString msg = "the requested module '" + in ModuleDeclarationEnvironmentSetup()
560 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
561 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationEnvironmentSetup()
563 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationEnvironmentSetup()
568 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationEnvironmentSetup()
576 module->SetEnvironment(thread, envRec); in ModuleDeclarationEnvironmentSetup()
580 … const JSHandle<SourceTextModule> &module) in ModuleDeclarationArrayEnvironmentSetup() argument
582 CheckResolvedIndexBinding(thread, module); in ModuleDeclarationArrayEnvironmentSetup()
583 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
588 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationArrayEnvironmentSetup()
589 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationArrayEnvironmentSetup()
592 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationArrayEnvironmentSetup()
595 // 6. Set module.[[Environment]] to env. in ModuleDeclarationArrayEnvironmentSetup()
596 module->SetEnvironment(thread, arr); in ModuleDeclarationArrayEnvironmentSetup()
599 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationArrayEnvironmentSetup()
608 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationArrayEnvironmentSetup()
610 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationArrayEnvironmentSetup()
613 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
619 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
635 CString msg = "the requested module '" + in ModuleDeclarationArrayEnvironmentSetup()
639 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
640 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
642 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
647 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationArrayEnvironmentSetup()
651 module->SetEnvironment(thread, envRec); in ModuleDeclarationArrayEnvironmentSetup()
655 … const JSHandle<SourceTextModule> &module) in GetModuleNamespace() argument
658 // 1. Assert: module is an instance of a concrete subclass of Module Record. in GetModuleNamespace()
659 // 2. Assert: module.[[Status]] is not "uninstantiated". in GetModuleNamespace()
660 ModuleStatus status = module->GetStatus(); in GetModuleNamespace()
662 // 3. Assert: If module.[[Status]] is "evaluated", module.[[EvaluationError]] is undefined. in GetModuleNamespace()
664 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in GetModuleNamespace()
666 // 4. Let namespace be module.[[Namespace]]. in GetModuleNamespace()
667 JSMutableHandle<JSTaggedValue> moduleNamespace(thread, module->GetNamespace()); in GetModuleNamespace()
670 // a. Let exportedNames be ? module.GetExportedNames(« »). in GetModuleNamespace()
672 …CVector<std::string> exportedNames = SourceTextModule::GetExportedNames(thread, module, exportStar… in GetModuleNamespace()
678 // i. Let resolution be ? module.ResolveExport(name, « »). in GetModuleNamespace()
682 SourceTextModule::ResolveExport(thread, module, nameHandle, resolveVector); in GetModuleNamespace()
690 JSHandle<JSTaggedValue> moduleTagged = JSHandle<JSTaggedValue>::Cast(module); in GetModuleNamespace()
698 int SourceTextModule::Evaluate(JSThread *thread, const JSHandle<SourceTextModule> &module, in Evaluate() argument
701 // 1. Let module be this Source Text Module Record. in Evaluate()
702 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in Evaluate()
703 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in Evaluate()
707 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in Evaluate()
708 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Evaluate()
712 // a. For each module m in stack, do in Evaluate()
721 // b. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is result. in Evaluate()
722 status = module->GetStatus(); in Evaluate()
723 ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == result); in Evaluate()
727 // 6. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is undefined. in Evaluate()
728 status = module->GetStatus(); in Evaluate()
729 …ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == SourceTextModule::UNDE… in Evaluate()
736 …SourceTextModule::EvaluateForConcurrent(JSThread *thread, const JSHandle<SourceTextModule> &module) in EvaluateForConcurrent() argument
738 // 1. Let module be this Source Text Module Record. in EvaluateForConcurrent()
739 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in EvaluateForConcurrent()
740 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in EvaluateForConcurrent()
744 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in EvaluateForConcurrent()
745 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in EvaluateForConcurrent()
749 // a. For each module m in stack, do in EvaluateForConcurrent()
758 // b. Assert: module.[[EvaluationError]] is result. in EvaluateForConcurrent()
759 ASSERT(module->GetEvaluationError() == result); in EvaluateForConcurrent()
763 // 6. Assert: module.[[EvaluationError]] is undefined. in EvaluateForConcurrent()
764 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in EvaluateForConcurrent()
775 // 1. If module is not a Source Text Module Record, then in InnerModuleEvaluation()
777 // a. Perform ? module.Instantiate(). in InnerModuleEvaluation()
783 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleEvaluation() local
784 // 2.If module.[[Status]] is "evaluated", then in InnerModuleEvaluation()
785 ModuleStatus status = module->GetStatus(); in InnerModuleEvaluation()
787 // a. If module.[[EvaluationError]] is undefined, return index in InnerModuleEvaluation()
788 if (module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX) { in InnerModuleEvaluation()
791 // Otherwise return module.[[EvaluationError]]. in InnerModuleEvaluation()
792 return module->GetEvaluationError(); in InnerModuleEvaluation()
794 // 3. If module.[[Status]] is "evaluating", return index. in InnerModuleEvaluation()
798 // 4. Assert: module.[[Status]] is "instantiated". in InnerModuleEvaluation()
800 // 5. Set module.[[Status]] to "evaluating". in InnerModuleEvaluation()
801 module->SetStatus(ModuleStatus::EVALUATING); in InnerModuleEvaluation()
802 // 6. Set module.[[DFSIndex]] to index. in InnerModuleEvaluation()
803 module->SetDFSIndex(index); in InnerModuleEvaluation()
804 // 7. Set module.[[DFSAncestorIndex]] to index. in InnerModuleEvaluation()
805 module->SetDFSAncestorIndex(index); in InnerModuleEvaluation()
808 // 9. Append module to stack. in InnerModuleEvaluation()
809 stack.emplace_back(module); in InnerModuleEvaluation()
810 // 10. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleEvaluation()
811 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleEvaluation()
812 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleEvaluation()
817 // a. Let requiredModule be ! HostResolveImportedModule(module, required). in InnerModuleEvaluation()
819 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleEvaluation()
822 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleEvaluation()
828 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleEvaluation()
834 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in InnerModuleEvaluation()
857 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleEvaluation()
858 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleEvaluation()
859 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleEvaluation()
860 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleEvaluation()
861 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleEvaluation()
863 // if requiredModule is CommonJS Module, instantiate here (after CommonJS execution). in InnerModuleEvaluation()
865 InstantiateCJS(thread, module, requiredModule); in InnerModuleEvaluation()
870 // 11. Perform ? ModuleExecution(module). in InnerModuleEvaluation()
871 SourceTextModule::ModuleExecution(thread, module, buffer, size, excuteFromJob); in InnerModuleEvaluation()
873 // 12. Assert: module occurs exactly once in stack. in InnerModuleEvaluation()
874 // 13. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleEvaluation()
875 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleEvaluation()
876 int dfsIdx = module->GetDFSIndex(); in InnerModuleEvaluation()
878 // 14. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleEvaluation()
890 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleEvaluation()
891 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleEvaluation()
902 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in ModuleEvaluation() local
903 if (!module->GetRequestedModules().IsUndefined()) { in ModuleEvaluation()
904 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in ModuleEvaluation()
910 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleEvaluation()
912 … requiredModule.Update(SourceTextModule::HostResolveImportedModule(thread, module, required)); in ModuleEvaluation()
915 …uiredModule.Update(SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required)); in ModuleEvaluation()
919 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in ModuleEvaluation()
933 InstantiateCJS(thread, module, requiredModule); in ModuleEvaluation()
940 void SourceTextModule::ModuleExecution(JSThread *thread, const JSHandle<SourceTextModule> &module, in ModuleExecution() argument
943 JSTaggedValue moduleFileName = module->GetEcmaModuleFilename(); in ModuleExecution()
948 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleExecution()
973 void SourceTextModule::AddImportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddImportEntry() argument
977 JSTaggedValue importEntries = module->GetImportEntries(); in AddImportEntry()
981 module->SetImportEntries(thread, array); in AddImportEntry()
987 module->SetImportEntries(thread, entries); in AddImportEntry()
994 …d SourceTextModule::AddLocalExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddLocalExportEntry() argument
998 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in AddLocalExportEntry()
1002 module->SetLocalExportEntries(thread, array); in AddLocalExportEntry()
1009 …ourceTextModule::AddIndirectExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddIndirectExportEntry() argument
1014 JSTaggedValue indirectExportEntries = module->GetIndirectExportEntries(); in AddIndirectExportEntry()
1018 module->SetIndirectExportEntries(thread, array); in AddIndirectExportEntry()
1025 …id SourceTextModule::AddStarExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddStarExportEntry() argument
1029 JSTaggedValue starExportEntries = module->GetStarExportEntries(); in AddStarExportEntry()
1033 module->SetStarExportEntries(thread, array); in AddStarExportEntry()
1046 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1061 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1108 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1109 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in StoreModuleValue()
1112 JSHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1118 module->SetNameDictionary(thread, data); in StoreModuleValue()
1127 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1128 JSMutableHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1136 module->SetNameDictionary(thread, data); in StoreModuleValue()
1140 const JSHandle<SourceTextModule> &module, in SetExportName() argument
1145 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in SetExportName()
1148 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in SetExportName()
1154 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in SetExportName()
1175 … const JSHandle<SourceTextModule> &module, in GetStarResolution() argument
1181 // a. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetStarResolution()
1183 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in GetStarResolution()
1186 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in GetStarResolution()
1192 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in GetStarResolution()
1215 … // 2. If resolution.[[Module]] and starResolution.[[Module]] are not the same Module Record or in GetStarResolution()
1249 // a. Assert: module provides the direct binding for this export. in AddExportName()
1260 … const JSHandle<SourceTextModule> &module) in ResolveElementOfObject() argument
1268 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, idx)); in ResolveElementOfObject()
1276 … const JSHandle<SourceTextModule> &module) in ResolveLocalExport() argument
1287 // if module is type of CommonJS or native, export first, check after execution. in ResolveLocalExport()
1288 auto moduleType = module->GetTypes(); in ResolveLocalExport()
1290 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, exportName)); in ResolveLocalExport()
1295 // Adapter new module in ResolveLocalExport()
1296 if (module->GetIsNewBcVersion()) { in ResolveLocalExport()
1297 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, idx)); in ResolveLocalExport()
1299 // i. Assert: module provides the direct binding for this export. in ResolveLocalExport()
1300 … // ii. Return ResolvedBinding Record { [[Module]]: module, [[BindingName]]: e.[[LocalName]] }. in ResolveLocalExport()
1302 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, localName)); in ResolveLocalExport()
1311 … const JSHandle<SourceTextModule> &module, in ResolveIndirectExport() argument
1325 // i. Assert: module imports a specific binding for this export. in ResolveIndirectExport()
1326 // ii. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in ResolveIndirectExport()
1329 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ResolveIndirectExport()
1331 …requestedModule.Update(SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest)); in ResolveIndirectExport()
1335 … SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest)); in ResolveIndirectExport()
1346 … SourceTextModule::CheckResolvedBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedBinding() argument
1349 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedBinding()
1350 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(); in CheckResolvedBinding()
1361 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedBinding()
1365 SourceTextModule::ResolveExport(thread, module, exportName, resolveVector); in CheckResolvedBinding()
1368 CString msg = "the requested module '" + in CheckResolvedBinding()
1372 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in CheckResolvedBinding()
1373 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in CheckResolvedBinding()
1375 … msg += "' which exported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in CheckResolvedBinding()
1384 …ceTextModule::CheckResolvedIndexBinding(JSThread *thread, const JSHandle<SourceTextModule> &module) in CheckResolvedIndexBinding() argument
1387 // 1. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in CheckResolvedIndexBinding()
1388 JSTaggedValue indirectExportEntriesTv = module->GetIndirectExportEntries(); in CheckResolvedIndexBinding()
1399 // a. Let resolution be ? module.ResolveExport(e.[[ExportName]], « »). in CheckResolvedIndexBinding()
1403 SourceTextModule::ResolveExport(thread, module, exportName, resolveVector); in CheckResolvedIndexBinding()
1406 CString msg = "the requested module '" + in CheckResolvedIndexBinding()
1411 ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in CheckResolvedIndexBinding()