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, const JSHandle<JSTaggedValue> &moduleRequest) in HostResolveImportedModule() argument
125 JSHandle<JSTaggedValue>(thread, module->GetEcmaModuleFilename())); in HostResolveImportedModule()
133 bool SourceTextModule::CheckCircularImport(const JSHandle<SourceTextModule> &module, in CheckCircularImport() argument
138 // a. If module and r.[[Module]] are the same Module Record and in CheckCircularImport()
140 if (JSTaggedValue::SameValue(rr.first.GetTaggedValue(), module.GetTaggedValue()) && in CheckCircularImport()
151 const JSHandle<SourceTextModule> &module, const JSHandle<JSTaggedValue> &exportObject, in ResolveExportObject() argument
154 // Let module be this Source Text Module Record. in ResolveExportObject()
156 // For CJS, if exportObject is not JSObject, means the CJS module use default output in ResolveExportObject()
161 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, -1)); in ResolveExportObject()
168 … JSHandle<JSTaggedValue> resolution = ResolveElementOfObject(thread, jsHclass, exportName, module); in ResolveExportObject()
177 …dValue> SourceTextModule::ResolveExport(JSThread *thread, const JSHandle<SourceTextModule> &module, in ResolveExport() argument
181 // 1. Let module be this Source Text Module Record. in ResolveExport()
184 // 2.For each Record { [[Module]], [[ExportName]] } r in resolveVector, do in ResolveExport()
185 if (CheckCircularImport(module, exportName, resolveVector)) { in ResolveExport()
188 // 3. Append the Record { [[Module]]: module, [[ExportName]]: exportName } to resolveVector. in ResolveExport()
189 resolveVector.emplace_back(std::make_pair(module, exportName)); in ResolveExport()
190 // 4. For each ExportEntry Record e in module.[[LocalExportEntries]], do in ResolveExport()
191 JSHandle<JSTaggedValue> localExportEntriesTv(thread, module->GetLocalExportEntries()); in ResolveExport()
193 …e<JSTaggedValue> resolution = ResolveLocalExport(thread, localExportEntriesTv, exportName, module); in ResolveExport()
198 // 5. For each ExportEntry Record e in module.[[IndirectExportEntries]], do in ResolveExport()
199 JSHandle<JSTaggedValue> indirectExportEntriesTv(thread, module->GetIndirectExportEntries()); in ResolveExport()
202 … exportName, module, resolveVector); in ResolveExport()
210 // a. Assert: A default export was not explicitly defined by this module. in ResolveExport()
217 // 8. For each ExportEntry Record e in module.[[StarExportEntries]], do in ResolveExport()
218 JSTaggedValue starExportEntriesTv = module->GetStarExportEntries(); in ResolveExport()
230 module, starResolution, resolveVector); in ResolveExport()
245 // Get exported cjs module in InstantiateCJS()
289 // update required module in InitializeEnvironment()
303 // if not the same module, then don't have to update in InitializeEnvironment()
314 CString msg = "the requested module '" + in InitializeEnvironment()
323 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in InitializeEnvironment()
342 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleHdl); in Instantiate() local
343 // 1. Let module be this Source Text Module Record. in Instantiate()
344 // 2. Assert: module.[[Status]] is not "instantiating" or "evaluating". in Instantiate()
345 …ASSERT(module->GetStatus() != ModuleStatus::INSTANTIATING && module->GetStatus() != ModuleStatus::… in Instantiate()
348 // 4. Let result be InnerModuleInstantiation(module, stack, 0). in Instantiate()
349 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Instantiate()
353 // a. For each module m in stack, do in Instantiate()
365 // b. Assert: module.[[Status]] is "uninstantiated". in Instantiate()
366 ASSERT(module->GetStatus() == ModuleStatus::UNINSTANTIATED); in Instantiate()
370 // 6. Assert: module.[[Status]] is "instantiated" or "evaluated". in Instantiate()
371 …ASSERT(module->GetStatus() == ModuleStatus::INSTANTIATED || module->GetStatus() == ModuleStatus::E… in Instantiate()
381 // 1. If module is not a Source Text Module Record, then in InnerModuleInstantiation()
383 // a. Perform ? module.Instantiate(). in InnerModuleInstantiation()
389 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleInstantiation() local
390 … // 2. If module.[[Status]] is "instantiating", "instantiated", or "evaluated", then Return index. in InnerModuleInstantiation()
391 ModuleStatus status = module->GetStatus(); in InnerModuleInstantiation()
397 // 3. Assert: module.[[Status]] is "uninstantiated". in InnerModuleInstantiation()
399 // 4. Set module.[[Status]] to "instantiating". in InnerModuleInstantiation()
400 module->SetStatus(ModuleStatus::INSTANTIATING); in InnerModuleInstantiation()
401 // 5. Set module.[[DFSIndex]] to index. in InnerModuleInstantiation()
402 module->SetDFSIndex(index); in InnerModuleInstantiation()
403 // 6. Set module.[[DFSAncestorIndex]] to index. in InnerModuleInstantiation()
404 module->SetDFSAncestorIndex(index); in InnerModuleInstantiation()
407 // 8. Append module to stack. in InnerModuleInstantiation()
408 stack.emplace_back(module); in InnerModuleInstantiation()
409 // 9. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleInstantiation()
410 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleInstantiation()
411 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleInstantiation()
416 // a. Let requiredModule be ? HostResolveImportedModule(module, required). in InnerModuleInstantiation()
418 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleInstantiation()
421 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleInstantiation()
428 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleInstantiation()
447 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleInstantiation()
448 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleInstantiation()
449 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleInstantiation()
450 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleInstantiation()
451 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleInstantiation()
457 // 10. Perform ? ModuleDeclarationEnvironmentSetup(module). in InnerModuleInstantiation()
458 if (module->GetIsNewBcVersion()) { in InnerModuleInstantiation()
459 SourceTextModule::ModuleDeclarationArrayEnvironmentSetup(thread, module); in InnerModuleInstantiation()
461 SourceTextModule::ModuleDeclarationEnvironmentSetup(thread, module); in InnerModuleInstantiation()
464 // 11. Assert: module occurs exactly once in stack. in InnerModuleInstantiation()
465 // 12. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleInstantiation()
466 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleInstantiation()
467 int dfsIdx = module->GetDFSIndex(); in InnerModuleInstantiation()
469 // 13. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleInstantiation()
481 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleInstantiation()
482 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleInstantiation()
491 const JSHandle<SourceTextModule> &module) in ModuleDeclarationEnvironmentSetup() argument
493 CheckResolvedBinding(thread, module); in ModuleDeclarationEnvironmentSetup()
494 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
498 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationEnvironmentSetup()
499 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationEnvironmentSetup()
502 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationEnvironmentSetup()
506 // 6. Set module.[[Environment]] to env. in ModuleDeclarationEnvironmentSetup()
507 module->SetEnvironment(thread, map); in ModuleDeclarationEnvironmentSetup()
509 JSMutableHandle<JSTaggedValue> envRec(thread, module->GetEnvironment()); in ModuleDeclarationEnvironmentSetup()
511 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationEnvironmentSetup()
522 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationEnvironmentSetup()
524 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationEnvironmentSetup()
527 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
533 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationEnvironmentSetup()
555 CString msg = "the requested module '" + in ModuleDeclarationEnvironmentSetup()
559 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationEnvironmentSetup()
560 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationEnvironmentSetup()
562 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationEnvironmentSetup()
567 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationEnvironmentSetup()
575 module->SetEnvironment(thread, envRec); in ModuleDeclarationEnvironmentSetup()
579 … const JSHandle<SourceTextModule> &module) in ModuleDeclarationArrayEnvironmentSetup() argument
581 CheckResolvedIndexBinding(thread, module); in ModuleDeclarationArrayEnvironmentSetup()
582 if (module->GetImportEntries().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
587 // 2. Assert: All named exports from module are resolvable. in ModuleDeclarationArrayEnvironmentSetup()
588 // 3. Let realm be module.[[Realm]]. in ModuleDeclarationArrayEnvironmentSetup()
591 JSHandle<TaggedArray> importEntries(thread, module->GetImportEntries()); in ModuleDeclarationArrayEnvironmentSetup()
594 // 6. Set module.[[Environment]] to env. in ModuleDeclarationArrayEnvironmentSetup()
595 module->SetEnvironment(thread, arr); in ModuleDeclarationArrayEnvironmentSetup()
598 // 8. For each ImportEntry Record in in module.[[ImportEntries]], do in ModuleDeclarationArrayEnvironmentSetup()
607 // a. Let importedModule be ! HostResolveImportedModule(module, in.[[ModuleRequest]]). in ModuleDeclarationArrayEnvironmentSetup()
609 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleDeclarationArrayEnvironmentSetup()
612 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
618 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in ModuleDeclarationArrayEnvironmentSetup()
634 CString msg = "the requested module '" + in ModuleDeclarationArrayEnvironmentSetup()
638 if (!module->GetEcmaModuleRecordName().IsUndefined()) { in ModuleDeclarationArrayEnvironmentSetup()
639 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleRecordName()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
641 … msg += "' which imported by '" + ConvertToString(module->GetEcmaModuleFilename()) + "'"; in ModuleDeclarationArrayEnvironmentSetup()
646 // in.[[LocalName]], resolution.[[Module]], resolution.[[BindingName]]). in ModuleDeclarationArrayEnvironmentSetup()
650 module->SetEnvironment(thread, envRec); in ModuleDeclarationArrayEnvironmentSetup()
654 … const JSHandle<SourceTextModule> &module) in GetModuleNamespace() argument
657 // 1. Assert: module is an instance of a concrete subclass of Module Record. in GetModuleNamespace()
658 // 2. Assert: module.[[Status]] is not "uninstantiated". in GetModuleNamespace()
659 ModuleStatus status = module->GetStatus(); in GetModuleNamespace()
661 // 3. Assert: If module.[[Status]] is "evaluated", module.[[EvaluationError]] is undefined. in GetModuleNamespace()
663 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in GetModuleNamespace()
665 // 4. Let namespace be module.[[Namespace]]. in GetModuleNamespace()
666 JSMutableHandle<JSTaggedValue> moduleNamespace(thread, module->GetNamespace()); in GetModuleNamespace()
669 // a. Let exportedNames be ? module.GetExportedNames(« »). in GetModuleNamespace()
671 …CVector<std::string> exportedNames = SourceTextModule::GetExportedNames(thread, module, exportStar… in GetModuleNamespace()
677 // i. Let resolution be ? module.ResolveExport(name, « »). in GetModuleNamespace()
681 SourceTextModule::ResolveExport(thread, module, nameHandle, resolveVector); in GetModuleNamespace()
689 JSHandle<JSTaggedValue> moduleTagged = JSHandle<JSTaggedValue>::Cast(module); in GetModuleNamespace()
697 int SourceTextModule::Evaluate(JSThread *thread, const JSHandle<SourceTextModule> &module, in Evaluate() argument
700 // 1. Let module be this Source Text Module Record. in Evaluate()
701 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in Evaluate()
702 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in Evaluate()
706 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in Evaluate()
707 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in Evaluate()
711 // a. For each module m in stack, do in Evaluate()
720 // b. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is result. in Evaluate()
721 status = module->GetStatus(); in Evaluate()
722 ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == result); in Evaluate()
726 // 6. Assert: module.[[Status]] is "evaluated" and module.[[EvaluationError]] is undefined. in Evaluate()
727 status = module->GetStatus(); in Evaluate()
728 …ASSERT(status == ModuleStatus::EVALUATED && module->GetEvaluationError() == SourceTextModule::UNDE… in Evaluate()
735 …SourceTextModule::EvaluateForConcurrent(JSThread *thread, const JSHandle<SourceTextModule> &module) in EvaluateForConcurrent() argument
737 // 1. Let module be this Source Text Module Record. in EvaluateForConcurrent()
738 // 2. Assert: module.[[Status]] is "instantiated" or "evaluated". in EvaluateForConcurrent()
739 [[maybe_unused]] ModuleStatus status = module->GetStatus(); in EvaluateForConcurrent()
743 // 4. Let result be InnerModuleEvaluation(module, stack, 0) in EvaluateForConcurrent()
744 JSHandle<ModuleRecord> moduleRecord = JSHandle<ModuleRecord>::Cast(module); in EvaluateForConcurrent()
748 // a. For each module m in stack, do in EvaluateForConcurrent()
757 // b. Assert: module.[[EvaluationError]] is result. in EvaluateForConcurrent()
758 ASSERT(module->GetEvaluationError() == result); in EvaluateForConcurrent()
762 // 6. Assert: module.[[EvaluationError]] is undefined. in EvaluateForConcurrent()
763 ASSERT(module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX); in EvaluateForConcurrent()
774 // 1. If module is not a Source Text Module Record, then in InnerModuleEvaluation()
776 // a. Perform ? module.Instantiate(). in InnerModuleEvaluation()
782 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in InnerModuleEvaluation() local
783 // 2.If module.[[Status]] is "evaluated", then in InnerModuleEvaluation()
784 ModuleStatus status = module->GetStatus(); in InnerModuleEvaluation()
786 // a. If module.[[EvaluationError]] is undefined, return index in InnerModuleEvaluation()
787 if (module->GetEvaluationError() == SourceTextModule::UNDEFINED_INDEX) { in InnerModuleEvaluation()
790 // Otherwise return module.[[EvaluationError]]. in InnerModuleEvaluation()
791 return module->GetEvaluationError(); in InnerModuleEvaluation()
793 // 3. If module.[[Status]] is "evaluating", return index. in InnerModuleEvaluation()
797 // 4. Assert: module.[[Status]] is "instantiated". in InnerModuleEvaluation()
799 // 5. Set module.[[Status]] to "evaluating". in InnerModuleEvaluation()
800 module->SetStatus(ModuleStatus::EVALUATING); in InnerModuleEvaluation()
801 // 6. Set module.[[DFSIndex]] to index. in InnerModuleEvaluation()
802 module->SetDFSIndex(index); in InnerModuleEvaluation()
803 // 7. Set module.[[DFSAncestorIndex]] to index. in InnerModuleEvaluation()
804 module->SetDFSAncestorIndex(index); in InnerModuleEvaluation()
807 // 9. Append module to stack. in InnerModuleEvaluation()
808 stack.emplace_back(module); in InnerModuleEvaluation()
809 // 10. For each String required that is an element of module.[[RequestedModules]], do in InnerModuleEvaluation()
810 if (!module->GetRequestedModules().IsUndefined()) { in InnerModuleEvaluation()
811 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in InnerModuleEvaluation()
816 // a. Let requiredModule be ! HostResolveImportedModule(module, required). in InnerModuleEvaluation()
818 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in InnerModuleEvaluation()
821 SourceTextModule::HostResolveImportedModule(thread, module, required); in InnerModuleEvaluation()
827 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required); in InnerModuleEvaluation()
833 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in InnerModuleEvaluation()
856 // i. Assert: requiredModule is a Source Text Module Record. in InnerModuleEvaluation()
857 // ii. Set module.[[DFSAncestorIndex]] to min( in InnerModuleEvaluation()
858 // module.[[DFSAncestorIndex]], requiredModule.[[DFSAncestorIndex]]). in InnerModuleEvaluation()
859 … int dfsAncIdx = std::min(module->GetDFSAncestorIndex(), requiredModule->GetDFSAncestorIndex()); in InnerModuleEvaluation()
860 module->SetDFSAncestorIndex(dfsAncIdx); in InnerModuleEvaluation()
862 // if requiredModule is CommonJS Module, instantiate here (after CommonJS execution). in InnerModuleEvaluation()
864 InstantiateCJS(thread, module, requiredModule); in InnerModuleEvaluation()
869 // 11. Perform ? ModuleExecution(module). in InnerModuleEvaluation()
870 SourceTextModule::ModuleExecution(thread, module, buffer, size, excuteFromJob); in InnerModuleEvaluation()
872 // 12. Assert: module occurs exactly once in stack. in InnerModuleEvaluation()
873 // 13. Assert: module.[[DFSAncestorIndex]] is less than or equal to module.[[DFSIndex]]. in InnerModuleEvaluation()
874 int dfsAncIdx = module->GetDFSAncestorIndex(); in InnerModuleEvaluation()
875 int dfsIdx = module->GetDFSIndex(); in InnerModuleEvaluation()
877 // 14. If module.[[DFSAncestorIndex]] equals module.[[DFSIndex]], then in InnerModuleEvaluation()
889 // iv. If requiredModule and module are the same Module Record, set done to true. in InnerModuleEvaluation()
890 … if (JSTaggedValue::SameValue(module.GetTaggedValue(), requiredModule.GetTaggedValue())) { in InnerModuleEvaluation()
901 JSHandle<SourceTextModule> module = JSHandle<SourceTextModule>::Cast(moduleRecord); in ModuleEvaluation() local
902 if (!module->GetRequestedModules().IsUndefined()) { in ModuleEvaluation()
903 JSHandle<TaggedArray> requestedModules(thread, module->GetRequestedModules()); in ModuleEvaluation()
909 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleEvaluation()
911 … requiredModule.Update(SourceTextModule::HostResolveImportedModule(thread, module, required)); in ModuleEvaluation()
914 …uiredModule.Update(SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, required)); in ModuleEvaluation()
918 InstantiateNativeModule(thread, module, requiredModule, required, moduleType); in ModuleEvaluation()
932 InstantiateCJS(thread, module, requiredModule); in ModuleEvaluation()
939 void SourceTextModule::ModuleExecution(JSThread *thread, const JSHandle<SourceTextModule> &module, in ModuleExecution() argument
942 JSTaggedValue moduleFileName = module->GetEcmaModuleFilename(); in ModuleExecution()
947 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in ModuleExecution()
972 void SourceTextModule::AddImportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddImportEntry() argument
976 JSTaggedValue importEntries = module->GetImportEntries(); in AddImportEntry()
980 module->SetImportEntries(thread, array); in AddImportEntry()
986 module->SetImportEntries(thread, entries); in AddImportEntry()
993 …d SourceTextModule::AddLocalExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddLocalExportEntry() argument
997 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in AddLocalExportEntry()
1001 module->SetLocalExportEntries(thread, array); in AddLocalExportEntry()
1008 …ourceTextModule::AddIndirectExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddIndirectExportEntry() argument
1013 JSTaggedValue indirectExportEntries = module->GetIndirectExportEntries(); in AddIndirectExportEntry()
1017 module->SetIndirectExportEntries(thread, array); in AddIndirectExportEntry()
1024 …id SourceTextModule::AddStarExportEntry(JSThread *thread, const JSHandle<SourceTextModule> &module, in AddStarExportEntry() argument
1028 JSTaggedValue starExportEntries = module->GetStarExportEntries(); in AddStarExportEntry()
1032 module->SetStarExportEntries(thread, array); in AddStarExportEntry()
1045 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1060 …THROW_REFERENCE_ERROR_AND_RETURN(thread, "module environment is undefined", JSTaggedValue::Excepti… in GetModuleValue()
1107 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1108 JSTaggedValue localExportEntries = module->GetLocalExportEntries(); in StoreModuleValue()
1111 JSHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1117 module->SetNameDictionary(thread, data); in StoreModuleValue()
1126 JSHandle<SourceTextModule> module(thread, this); in StoreModuleValue() local
1127 JSMutableHandle<JSTaggedValue> data(thread, module->GetNameDictionary()); in StoreModuleValue()
1135 module->SetNameDictionary(thread, data); in StoreModuleValue()
1139 const JSHandle<SourceTextModule> &module, in SetExportName() argument
1144 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in SetExportName()
1147 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in SetExportName()
1153 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in SetExportName()
1174 … const JSHandle<SourceTextModule> &module, in GetStarResolution() argument
1180 // a. Let importedModule be ? HostResolveImportedModule(module, e.[[ModuleRequest]]). in GetStarResolution()
1182 JSTaggedValue moduleRecordName = module->GetEcmaModuleRecordName(); in GetStarResolution()
1185 SourceTextModule::HostResolveImportedModule(thread, module, moduleRequest); in GetStarResolution()
1191 SourceTextModule::HostResolveImportedModuleWithMerge(thread, module, moduleRequest); in GetStarResolution()
1214 … // 2. If resolution.[[Module]] and starResolution.[[Module]] are not the same Module Record or in GetStarResolution()
1248 // a. Assert: module provides the direct binding for this export. in AddExportName()
1259 … const JSHandle<SourceTextModule> &module) in ResolveElementOfObject() argument
1267 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, idx)); in ResolveElementOfObject()
1275 … const JSHandle<SourceTextModule> &module) in ResolveLocalExport() argument
1286 // if module is type of CommonJS or native, export first, check after execution. in ResolveLocalExport()
1287 auto moduleType = module->GetTypes(); in ResolveLocalExport()
1289 … return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedBindingRecord(module, exportName)); in ResolveLocalExport()
1294 // Adapter new module in ResolveLocalExport()
1295 if (module->GetIsNewBcVersion()) { in ResolveLocalExport()
1296 return JSHandle<JSTaggedValue>::Cast(factory->NewResolvedIndexBindingRecord(module, 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()