mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-10-08 00:24:00 +00:00
!3031 Support importing a specific file of the shared library
Merge pull request !3031 from 常佳兴/master
This commit is contained in:
commit
a67b34361f
@ -153,14 +153,12 @@ JSTaggedValue BuiltinsPromiseJob::DynamicImportJob(EcmaRuntimeCallInfo *argv)
|
||||
specifierString.GetTaggedValue());
|
||||
fileNameStr = ConvertToString(moduleName.GetTaggedValue());
|
||||
} else {
|
||||
bool npm;
|
||||
CString npmKey = "";
|
||||
CString recordNameStr = ConvertToString(recordName.GetTaggedValue());
|
||||
CString requestModule = ConvertToString(specifierString.GetTaggedValue());
|
||||
const JSPandaFile *jsPandaFile = JSPandaFileManager::GetInstance()->LoadJSPandaFile(thread, baseFilename,
|
||||
recordNameStr.c_str());
|
||||
std::tie(entryPoint, npm) = ModuleManager::ConcatFileNameWithMerge(
|
||||
jsPandaFile, baseFilename, recordNameStr, requestModule, npmKey);
|
||||
entryPoint =
|
||||
ModuleManager::ConcatFileNameWithMerge(jsPandaFile, baseFilename, recordNameStr, requestModule);
|
||||
fileNameStr = baseFilename;
|
||||
moduleName = factory->NewFromUtf8(entryPoint);
|
||||
}
|
||||
|
@ -3213,9 +3213,6 @@ void SourceTextModule::Dump(std::ostream &os) const
|
||||
os << " - EcmaModuleRecordName: ";
|
||||
GetEcmaModuleRecordName().Dump(os);
|
||||
os << "\n";
|
||||
os << " - NpmKey: ";
|
||||
GetNpmKey().Dump(os);
|
||||
os << "\n";
|
||||
os << " - RequestedModules: ";
|
||||
GetRequestedModules().Dump(os);
|
||||
os << "\n";
|
||||
@ -4998,7 +4995,6 @@ void SourceTextModule::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedVa
|
||||
vec.push_back(std::make_pair(CString("Namespace"), GetNamespace()));
|
||||
vec.push_back(std::make_pair(CString("EcmaModuleFilename"), GetEcmaModuleFilename()));
|
||||
vec.push_back(std::make_pair(CString("EcmaModuleRecordName"), GetEcmaModuleRecordName()));
|
||||
vec.push_back(std::make_pair(CString("NpmKey"), GetNpmKey()));
|
||||
vec.push_back(std::make_pair(CString("RequestedModules"), GetRequestedModules()));
|
||||
vec.push_back(std::make_pair(CString("ImportEntries"), GetImportEntries()));
|
||||
vec.push_back(std::make_pair(CString("LocalExportEntries"), GetLocalExportEntries()));
|
||||
|
@ -154,6 +154,9 @@ void JSPandaFile::InitializeMergedPF()
|
||||
info.hasTSTypes = fieldAccessor.GetValue<uint8_t>().value() != 0;
|
||||
} else if (std::strcmp(TYPE_SUMMARY_OFFSET, fieldName) == 0) {
|
||||
info.typeSummaryOffset = fieldAccessor.GetValue<uint32_t>().value();
|
||||
} else if (std::strlen(fieldName) > PACKAGE_NAME_LEN &&
|
||||
std::strncmp(fieldName, PACKAGE_NAME, PACKAGE_NAME_LEN) == 0) {
|
||||
info.npmPackageName = fieldName + PACKAGE_NAME_LEN;
|
||||
}
|
||||
});
|
||||
if (hasCjsFiled) {
|
||||
@ -201,6 +204,9 @@ bool JSPandaFile::IsCjs(const CString &recordName) const
|
||||
|
||||
CString JSPandaFile::FindEntryPoint(const CString &recordName) const
|
||||
{
|
||||
if (HasRecord(recordName)) {
|
||||
return recordName;
|
||||
}
|
||||
Span<const uint32_t> classIndexes = pf_->GetClasses();
|
||||
CString entryPoint;
|
||||
for (const uint32_t index : classIndexes) {
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
CUnorderedMap<uint32_t, uint64_t> constpoolMap;
|
||||
bool hasTSTypes {false};
|
||||
uint32_t typeSummaryOffset {0};
|
||||
|
||||
CString npmPackageName;
|
||||
bool HasTSTypes() const
|
||||
{
|
||||
return hasTSTypes;
|
||||
@ -80,6 +80,10 @@ public:
|
||||
static constexpr char NODE_MODULES_ZERO[] = "node_modules/0/";
|
||||
static constexpr char NODE_MODULES_ONE[] = "node_modules/1/";
|
||||
static constexpr char MERGE_ABC_NAME[] = "modules.abc";
|
||||
static constexpr char MERGE_ABC_ETS_MODULES[] = "/ets/modules.abc";
|
||||
static constexpr char PACKAGE_NAME[] = "pkgName@";
|
||||
static constexpr int PACKAGE_NAME_LEN = 8;
|
||||
static constexpr int MODULE_PREFIX_LENGTH = 8;
|
||||
|
||||
JSPandaFile(const panda_file::File *pf, const CString &descriptor);
|
||||
~JSPandaFile();
|
||||
|
@ -1,2 +1,2 @@
|
||||
index.js;index;module;index.js
|
||||
module.js;module;module;module.js
|
||||
index.js;index;esm;index.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -268,7 +268,6 @@ JSHandle<SourceTextModule> ModuleManager::HostResolveImportedModuleWithMerge(con
|
||||
if (entry != -1) {
|
||||
return JSHandle<SourceTextModule>(thread, dict->GetValue(entry));
|
||||
}
|
||||
|
||||
const JSPandaFile *jsPandaFile =
|
||||
JSPandaFileManager::GetInstance()->LoadJSPandaFile(thread, moduleFileName, recordName.c_str());
|
||||
if (jsPandaFile == nullptr) {
|
||||
@ -569,18 +568,23 @@ void ModuleManager::Iterate(const RootVisitor &v)
|
||||
v(Root::ROOT_VM, ObjectSlot(reinterpret_cast<uintptr_t>(&resolvedModules_)));
|
||||
}
|
||||
|
||||
std::tuple<CString, bool> ModuleManager::ConcatFileNameWithMerge(const JSPandaFile *jsPandaFile, CString &baseFilename,
|
||||
CString &moduleRecordName, CString &moduleRequestName,
|
||||
CString &npmKey)
|
||||
CString ModuleManager::ConcatFileNameWithMerge(const JSPandaFile *jsPandaFile, CString &baseFilename,
|
||||
CString moduleRecordName, CString moduleRequestName)
|
||||
{
|
||||
CString entryPoint;
|
||||
size_t pos = 0;
|
||||
bool npm = false;
|
||||
if (moduleRequestName.find("@bundle:") != CString::npos) {
|
||||
pos = moduleRequestName.find('/');
|
||||
pos = moduleRequestName.find('/', pos + 1);
|
||||
ASSERT(pos != CString::npos);
|
||||
entryPoint = moduleRequestName.substr(pos + 1);
|
||||
} else if (moduleRequestName.find("@module:") != CString::npos) {
|
||||
moduleRequestName = moduleRequestName.substr(JSPandaFile::MODULE_PREFIX_LENGTH);
|
||||
pos = moduleRequestName.find('/');
|
||||
ASSERT(pos != CString::npos);
|
||||
baseFilename =
|
||||
JSPandaFile::BUNDLE_INSTALL_PATH + moduleRequestName.substr(0, pos) + JSPandaFile::MERGE_ABC_ETS_MODULES;
|
||||
entryPoint = moduleRequestName.substr(pos + 1);
|
||||
} else if (moduleRequestName.rfind(".js") != CString::npos || moduleRequestName.find("./") == 0 ||
|
||||
moduleRequestName.find("../") == 0) {
|
||||
pos = moduleRequestName.rfind(".js");
|
||||
@ -620,11 +624,11 @@ std::tuple<CString, bool> ModuleManager::ConcatFileNameWithMerge(const JSPandaFi
|
||||
}
|
||||
}
|
||||
} else {
|
||||
npm = true;
|
||||
pos = moduleRecordName.find(JSPandaFile::NODE_MODULES);
|
||||
CString key = "";
|
||||
if (pos != CString::npos) {
|
||||
key = npmKey + "/" + JSPandaFile::NODE_MODULES + "/" + moduleRequestName;
|
||||
auto info = const_cast<JSPandaFile *>(jsPandaFile)->FindRecordInfo(moduleRecordName);
|
||||
key = info.npmPackageName + "/" + JSPandaFile::NODE_MODULES + "/" + moduleRequestName;
|
||||
entryPoint = jsPandaFile->FindEntryPoint(key);
|
||||
}
|
||||
|
||||
@ -641,12 +645,10 @@ std::tuple<CString, bool> ModuleManager::ConcatFileNameWithMerge(const JSPandaFi
|
||||
if (entryPoint.empty()) {
|
||||
LOG_ECMA(ERROR) << "find entryPoint failed\n"
|
||||
<< "moduleRequestName : " << moduleRequestName << "\n"
|
||||
<< "moduleRecordName : " << moduleRecordName << "\n"
|
||||
<< "npmKey : " << npmKey;
|
||||
<< "moduleRecordName : " << moduleRecordName << "\n";
|
||||
}
|
||||
npmKey = key;
|
||||
}
|
||||
return std::make_tuple(entryPoint, npm);
|
||||
return entryPoint;
|
||||
}
|
||||
|
||||
CString ModuleManager::GetRecordName(JSTaggedValue module)
|
||||
|
@ -71,9 +71,8 @@ public:
|
||||
isExecuteBuffer_ = mode;
|
||||
}
|
||||
void ConcatFileName(std::string &dirPath, std::string &requestPath, std::string &fileName);
|
||||
static std::tuple<CString, bool> ConcatFileNameWithMerge(const JSPandaFile *jsPandaFile, CString &baseFilename,
|
||||
CString &moduleRecordName, CString &moduleRequestName,
|
||||
CString &npmKey);
|
||||
static CString ConcatFileNameWithMerge(const JSPandaFile *jsPandaFile, CString &baseFilename,
|
||||
CString moduleRecordName, CString moduleRequestName);
|
||||
static CString GetRecordName(JSTaggedValue module);
|
||||
static int GetExportObjectIndex(EcmaVM *vm, JSHandle<SourceTextModule> ecmaModule, const std::string &key);
|
||||
private:
|
||||
|
@ -88,24 +88,10 @@ JSHandle<SourceTextModule> SourceTextModule::HostResolveImportedModuleWithMerge(
|
||||
const JSPandaFile *jsPandaFile =
|
||||
JSPandaFileManager::GetInstance()->LoadJSPandaFile(thread, baseFilename, moduleRecordName);
|
||||
|
||||
JSTaggedValue npmKey = module->GetNpmKey();
|
||||
CString npmKeyStr = "";
|
||||
if (!npmKey.IsUndefined()) {
|
||||
npmKeyStr = ConvertToString(EcmaString::Cast(npmKey.GetTaggedObject()));
|
||||
}
|
||||
CString moduleRequestName = ConvertToString(EcmaString::Cast(moduleRequest->GetTaggedObject()));
|
||||
CString entryPoint = "";
|
||||
bool npm = false;
|
||||
std::tie(entryPoint, npm) = ModuleManager::ConcatFileNameWithMerge(
|
||||
jsPandaFile, baseFilename, moduleRecordName, moduleRequestName, npmKeyStr);
|
||||
JSHandle<SourceTextModule> newModule = moduleManager->HostResolveImportedModuleWithMerge(baseFilename, entryPoint);
|
||||
if (npm) {
|
||||
JSHandle<EcmaString> newNpmkey = thread->GetEcmaVM()->GetFactory()->NewFromUtf8(npmKeyStr.c_str());
|
||||
newModule->SetNpmKey(thread, newNpmkey);
|
||||
} else {
|
||||
newModule->SetNpmKey(thread, module->GetNpmKey());
|
||||
}
|
||||
return newModule;
|
||||
CString entryPoint =
|
||||
ModuleManager::ConcatFileNameWithMerge(jsPandaFile, baseFilename, moduleRecordName, moduleRequestName);
|
||||
return moduleManager->HostResolveImportedModuleWithMerge(baseFilename, entryPoint);
|
||||
}
|
||||
|
||||
// old way with bundle
|
||||
@ -481,7 +467,8 @@ void SourceTextModule::ModuleDeclarationEnvironmentSetup(JSThread *thread,
|
||||
SourceTextModule::ResolveExport(thread, importedModule, importName, resolveVector);
|
||||
// ii. If resolution is null or "ambiguous", throw a SyntaxError exception.
|
||||
if (resolution->IsNull() || resolution->IsString()) {
|
||||
CString msg = "find importName " + ConvertToString(importName.GetTaggedValue()) + " failed";
|
||||
CString msg = "find importName " + ConvertToString(importName.GetTaggedValue()) + " failed ";
|
||||
msg += "RecordName : " + ConvertToString(module->GetEcmaModuleRecordName());
|
||||
THROW_ERROR(thread, ErrorType::SYNTAX_ERROR, msg.c_str());
|
||||
}
|
||||
// iii. Call envRec.CreateImportBinding(
|
||||
@ -546,7 +533,8 @@ void SourceTextModule::ModuleDeclarationArrayEnvironmentSetup(JSThread *thread,
|
||||
SourceTextModule::ResolveExport(thread, importedModule, importName, resolveVector);
|
||||
// ii. If resolution is null or "ambiguous", throw a SyntaxError exception.
|
||||
if (resolution->IsNull() || resolution->IsString()) {
|
||||
CString msg = "find importName " + ConvertToString(importName.GetTaggedValue()) + " failed";
|
||||
CString msg = "find importName " + ConvertToString(importName.GetTaggedValue()) + " failed ";
|
||||
msg += "RecordName : " + ConvertToString(module->GetEcmaModuleRecordName());
|
||||
THROW_ERROR(thread, ErrorType::SYNTAX_ERROR, msg.c_str());
|
||||
}
|
||||
// iii. Call envRec.CreateImportBinding(
|
||||
@ -1159,7 +1147,8 @@ void SourceTextModule::CheckResolvedBinding(JSThread *thread, const JSHandle<Sou
|
||||
SourceTextModule::ResolveExport(thread, module, exportName, resolveVector);
|
||||
// b. If resolution is null or "ambiguous", throw a SyntaxError exception.
|
||||
if (resolution->IsNull() || resolution->IsString()) {
|
||||
CString msg = "find exportName " + ConvertToString(exportName.GetTaggedValue()) + " failed";
|
||||
CString msg = "find exportName " + ConvertToString(exportName.GetTaggedValue()) + " failed ";
|
||||
msg += "RecordName : " + ConvertToString(module->GetEcmaModuleRecordName());
|
||||
THROW_ERROR(thread, ErrorType::SYNTAX_ERROR, msg.c_str());
|
||||
}
|
||||
// c. Assert: resolution is a ResolvedBinding Record.
|
||||
@ -1189,7 +1178,8 @@ void SourceTextModule::CheckResolvedIndexBinding(JSThread *thread, const JSHandl
|
||||
SourceTextModule::ResolveExport(thread, module, exportName, resolveVector);
|
||||
// b. If resolution is null or "ambiguous", throw a SyntaxError exception.
|
||||
if (resolution->IsNull() || resolution->IsString()) {
|
||||
CString msg = "find exportName " + ConvertToString(exportName.GetTaggedValue()) + " failed";
|
||||
CString msg = "find exportName " + ConvertToString(exportName.GetTaggedValue()) + " failed ";
|
||||
msg += "RecordName : " + ConvertToString(module->GetEcmaModuleRecordName());
|
||||
THROW_ERROR(thread, ErrorType::SYNTAX_ERROR, msg.c_str());
|
||||
}
|
||||
// c. Assert: resolution is a ResolvedBinding Record.
|
||||
|
@ -83,8 +83,7 @@ public:
|
||||
ACCESSORS(Namespace, NAMESPACE_OFFSET, ECMA_MODULE_FILENAME);
|
||||
ACCESSORS(EcmaModuleFilename, ECMA_MODULE_FILENAME, ECMA_MODULE_RECORDNAME);
|
||||
ACCESSORS(EcmaModuleRecordName, ECMA_MODULE_RECORDNAME, REQUESTED_MODULES_OFFSET);
|
||||
ACCESSORS(NpmKey, REQUESTED_MODULES_OFFSET, NPM_KEY_OFFSET);
|
||||
ACCESSORS(RequestedModules, NPM_KEY_OFFSET, IMPORT_ENTRIES_OFFSET);
|
||||
ACCESSORS(RequestedModules, REQUESTED_MODULES_OFFSET, IMPORT_ENTRIES_OFFSET);
|
||||
ACCESSORS(ImportEntries, IMPORT_ENTRIES_OFFSET, LOCAL_EXPORT_ENTTRIES_OFFSET);
|
||||
ACCESSORS(LocalExportEntries, LOCAL_EXPORT_ENTTRIES_OFFSET, INDIRECT_EXPORT_ENTTRIES_OFFSET);
|
||||
ACCESSORS(IndirectExportEntries, INDIRECT_EXPORT_ENTTRIES_OFFSET, START_EXPORT_ENTTRIES_OFFSET);
|
||||
|
@ -218,12 +218,7 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge1)
|
||||
CString moduleRecordName = "moduleTest1";
|
||||
CString moduleRequestName = "@bundle:com.bundleName.test/moduleName/requestModuleName1";
|
||||
CString result = "requestModuleName1";
|
||||
CString npmKey = "";
|
||||
bool npm = false;
|
||||
CString entryPoint = "";
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_FALSE(npm);
|
||||
CString entryPoint = ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
}
|
||||
|
||||
@ -248,12 +243,7 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge2)
|
||||
CString moduleRequestName = "./requestModule.js";
|
||||
CString result = "requestModule";
|
||||
pf->InsertJSRecordInfo(result);
|
||||
CString entryPoint = "";
|
||||
CString npmKey = "";
|
||||
bool npm = false;
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_FALSE(npm);
|
||||
CString entryPoint = ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
|
||||
// Test moduleRecordName with "/"
|
||||
@ -261,9 +251,7 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge2)
|
||||
moduleRequestName = "./requestModule.js";
|
||||
result = "moduleName/requestModule";
|
||||
pf->InsertJSRecordInfo(result);
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_FALSE(npm);
|
||||
entryPoint = ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
}
|
||||
|
||||
@ -288,12 +276,8 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge3)
|
||||
CString moduleRequestName = "./secord.js";
|
||||
CString result = "secord";
|
||||
CString requestFileName = "secord.abc";
|
||||
CString entryPoint = "";
|
||||
CString npmKey = "";
|
||||
bool npm = false;
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_FALSE(npm);
|
||||
CString entryPoint =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(baseFilename, requestFileName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
|
||||
@ -306,9 +290,7 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge3)
|
||||
moduleRequestName = "./test/secord.js";
|
||||
result = "secord";
|
||||
requestFileName = "test/test/secord.abc";
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf2, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_FALSE(npm);
|
||||
entryPoint = ModuleManager::ConcatFileNameWithMerge(pf2, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(baseFilename, requestFileName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
}
|
||||
@ -328,17 +310,16 @@ HWTEST_F_L0(EcmaModuleTest, ConcatFileNameWithMerge4)
|
||||
auto res = parser.Parse(data);
|
||||
std::unique_ptr<const File> pfPtr = pandasm::AsmEmitter::Emit(res.Value());
|
||||
JSPandaFile *pf = pfManager->NewJSPandaFile(pfPtr.release(), baseFilename);
|
||||
|
||||
const CUnorderedMap<CString, JSPandaFile::JSRecordInfo> &recordInfo = pf->GetJSRecordInfo();
|
||||
// Test moduleRequestName is npm package
|
||||
CString moduleRecordName = "node_modules/moduleTest4";
|
||||
CString moduleRequestName = "json";
|
||||
CString result = "";
|
||||
CString entryPoint = "";
|
||||
CString npmKey = "";
|
||||
bool npm = false;
|
||||
std::tie(entryPoint, npm) =
|
||||
ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName, npmKey);
|
||||
EXPECT_TRUE(npm);
|
||||
CString moduleRecordName = "node_modules/0/moduleTest4/index";
|
||||
CString moduleRequestName = "json/index";
|
||||
CString result = "node_modules/0/moduleTest4/node_modules/json/index";
|
||||
JSPandaFile::JSRecordInfo info;
|
||||
info.npmPackageName = "node_modules/0/moduleTest4";
|
||||
const_cast<CUnorderedMap<CString, JSPandaFile::JSRecordInfo> &>(recordInfo).insert({moduleRecordName, info});
|
||||
const_cast<CUnorderedMap<CString, JSPandaFile::JSRecordInfo> &>(recordInfo).insert({result, info});
|
||||
CString entryPoint = ModuleManager::ConcatFileNameWithMerge(pf, baseFilename, moduleRecordName, moduleRequestName);
|
||||
EXPECT_EQ(result, entryPoint);
|
||||
}
|
||||
|
||||
|
@ -3830,7 +3830,6 @@ JSHandle<SourceTextModule> ObjectFactory::NewSourceTextModule()
|
||||
obj->SetNamespace(thread_, undefinedValue);
|
||||
obj->SetEcmaModuleFilename(thread_, undefinedValue);
|
||||
obj->SetEcmaModuleRecordName(thread_, undefinedValue);
|
||||
obj->SetNpmKey(thread_, undefinedValue);
|
||||
obj->SetRequestedModules(thread_, undefinedValue);
|
||||
obj->SetImportEntries(thread_, undefinedValue);
|
||||
obj->SetLocalExportEntries(thread_, undefinedValue);
|
||||
|
@ -1219,7 +1219,7 @@ HWTEST_F_L0(EcmaDumpTest, HeapProfileDump)
|
||||
break;
|
||||
}
|
||||
case JSType::SOURCE_TEXT_MODULE_RECORD: {
|
||||
CHECK_DUMP_FIELDS(ModuleRecord::SIZE, SourceTextModule::SIZE, 13U);
|
||||
CHECK_DUMP_FIELDS(ModuleRecord::SIZE, SourceTextModule::SIZE, 12U);
|
||||
JSHandle<SourceTextModule> moduleSourceRecord = factory->NewSourceTextModule();
|
||||
DUMP_FOR_HANDLE(moduleSourceRecord);
|
||||
break;
|
||||
|
@ -82,17 +82,12 @@ GlobalTSTypeRef TSTypeParser::ResolveImportType(const JSPandaFile *jsPandaFile,
|
||||
JSHandle<EcmaString> importVarNamePath(thread_, literal->Get(IMPORT_PATH_OFFSET_IN_LITERAL)); // #A#./A
|
||||
JSHandle<EcmaString> relativePath = GenerateImportRelativePath(importVarNamePath);
|
||||
CString cstringRelativePath = ConvertToString(*relativePath);
|
||||
CString entryPoint = "";
|
||||
CString npmKeyStr = "";
|
||||
bool npm = false;
|
||||
CString name = recordName;
|
||||
CString baseFileName = jsPandaFile->GetJSPandaFileDesc();
|
||||
std::tie(entryPoint, npm) =
|
||||
CString entryPoint =
|
||||
ModuleManager::ConcatFileNameWithMerge(jsPandaFile,
|
||||
baseFileName,
|
||||
name,
|
||||
cstringRelativePath,
|
||||
npmKeyStr);
|
||||
recordName,
|
||||
cstringRelativePath);
|
||||
JSHandle<EcmaString> targetVarName = GenerateImportVar(importVarNamePath);
|
||||
JSHandle<TaggedArray> arrayWithGT = GenerateExportTableFromRecord(jsPandaFile, entryPoint);
|
||||
GlobalTSTypeRef importedGT = GetExportGTByName(targetVarName, arrayWithGT);
|
||||
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;module;base.js;entry
|
||||
module.js;module;module;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;module;base.js;entry
|
||||
module_modify.js;module;module;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;module;base.js;entry
|
||||
module.js;module;module;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify1.js;base;module;base.js
|
||||
module_modify1.js;module;module;module.js
|
||||
base_modify1.js;base;esm;base.js;entry
|
||||
module_modify1.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify2.js;base;module;base.js
|
||||
module_modify2.js;module;module;module.js
|
||||
base_modify2.js;base;esm;base.js;entry
|
||||
module_modify2.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base_modify.js;base;module;base.js
|
||||
module_modify.js;module;module;module.js
|
||||
base_modify.js;base;esm;base.js;entry
|
||||
module_modify.js;module;esm;module.js;entry
|
@ -1,2 +1,2 @@
|
||||
base.js;base;module;base.js
|
||||
module.js;module;module;module.js
|
||||
base.js;base;esm;base.js;entry
|
||||
module.js;module;esm;module.js;entry
|
@ -1 +1 @@
|
||||
base_modify.js;base;module;base.js
|
||||
base_modify.js;base;esm;base.js;entry
|
@ -1 +1 @@
|
||||
test.js;retest;module;test.js
|
||||
test.js;retest;esm;test.js;entry
|
@ -1 +1 @@
|
||||
test.js;test;module;test.js
|
||||
test.js;test;esm;test.js;entry
|
Loading…
Reference in New Issue
Block a user