Lines Matching full:panda
36 namespace panda::ts2abc { namespace
38 constexpr const auto LANG_EXT = panda::pandasm::extensions::Language::ECMASCRIPT;
66 std::unordered_map<int, panda::pandasm::Opcode> g_opcodeMap = {
67 #define OPLIST(opcode, name, optype, width, flags, def_idx, use_idxs) {g_opCodeIndex++, panda::pand…
70 {-1, panda::pandasm::Opcode::INVALID},
74 static panda::pandasm::Record MakeRecordDefinition(const std::string &name) in MakeRecordDefinition()
76 auto record = panda::pandasm::Record(name, LANG_EXT); in MakeRecordDefinition()
80 static panda::pandasm::Function MakeFuncDefintion(const std::string &name, const std::string &retur… in MakeFuncDefintion()
82 auto function = panda::pandasm::Function( in MakeFuncDefintion()
91 function.return_type = panda::pandasm::Type(returnType.c_str(), 0); in MakeFuncDefintion()
95 static panda::pandasm::Label MakeLabel(const std::string &name) in MakeLabel()
97 auto label = panda::pandasm::Label( in MakeLabel()
161 size_t mutf8DataLen = panda::utf::Utf16ToMUtf8Size(u16Data, u16DataSize); in ConvertUtf16ToMUtf8()
164 …panda::utf::ConvertRegionUtf16ToMUtf8(u16Data, mutf8Data.data(), u16DataSize, mutf8DataLen - 1, 0); in ConvertUtf16ToMUtf8()
237 static void ParseLiteral(const Json::Value &literal, std::vector<panda::pandasm::LiteralArray::Lite… in ParseLiteral()
239 panda::pandasm::LiteralArray::Literal tagLiteral; in ParseLiteral()
240 panda::pandasm::LiteralArray::Literal valueLiteral; in ParseLiteral()
244 tagLiteral.tag_ = panda::panda_file::LiteralTag::TAGVALUE; in ParseLiteral()
249 case static_cast<uint8_t>(panda::panda_file::LiteralTag::BOOL): { in ParseLiteral()
250 valueLiteral.tag_ = panda::panda_file::LiteralTag::BOOL; in ParseLiteral()
254 case static_cast<uint8_t>(panda::panda_file::LiteralTag::INTEGER): { in ParseLiteral()
255 valueLiteral.tag_ = panda::panda_file::LiteralTag::INTEGER; in ParseLiteral()
259 case static_cast<uint8_t>(panda::panda_file::LiteralTag::DOUBLE): { in ParseLiteral()
260 valueLiteral.tag_ = panda::panda_file::LiteralTag::DOUBLE; in ParseLiteral()
264 case static_cast<uint8_t>(panda::panda_file::LiteralTag::STRING): { in ParseLiteral()
265 valueLiteral.tag_ = panda::panda_file::LiteralTag::STRING; in ParseLiteral()
269 case static_cast<uint8_t>(panda::panda_file::LiteralTag::METHOD): { in ParseLiteral()
270 valueLiteral.tag_ = panda::panda_file::LiteralTag::METHOD; in ParseLiteral()
274 case static_cast<uint8_t>(panda::panda_file::LiteralTag::GENERATORMETHOD): { in ParseLiteral()
275 valueLiteral.tag_ = panda::panda_file::LiteralTag::GENERATORMETHOD; in ParseLiteral()
279 case static_cast<uint8_t>(panda::panda_file::LiteralTag::ACCESSOR): { in ParseLiteral()
280 valueLiteral.tag_ = panda::panda_file::LiteralTag::ACCESSOR; in ParseLiteral()
284 case static_cast<uint8_t>(panda::panda_file::LiteralTag::METHODAFFILIATE): { in ParseLiteral()
285 valueLiteral.tag_ = panda::panda_file::LiteralTag::METHODAFFILIATE; in ParseLiteral()
289 case static_cast<uint8_t>(panda::panda_file::LiteralTag::LITERALBUFFERINDEX): { in ParseLiteral()
292 case static_cast<uint8_t>(panda::panda_file::LiteralTag::LITERALARRAY): { in ParseLiteral()
293 valueLiteral.tag_ = panda::panda_file::LiteralTag::LITERALARRAY; in ParseLiteral()
297 case static_cast<uint8_t>(panda::panda_file::LiteralTag::BUILTINTYPEINDEX): { in ParseLiteral()
298 valueLiteral.tag_ = panda::panda_file::LiteralTag::BUILTINTYPEINDEX; in ParseLiteral()
302 case static_cast<uint8_t>(panda::panda_file::LiteralTag::NULLVALUE): { in ParseLiteral()
303 valueLiteral.tag_ = panda::panda_file::LiteralTag::NULLVALUE; in ParseLiteral()
314 static panda::pandasm::Record ParseRecord(const Json::Value &record) in ParseRecord()
336 static void ParseInstructionOpCode(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionOpCode()
346 static void ParseInstructionRegs(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionRegs()
356 static void ParseInstructionIds(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionIds()
368 static void ParseInstructionImms(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionImms()
385 static void ParseInstructionLabel(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionLabel()
398 static void ParseInstructionDebugInfo(const Json::Value &ins, panda::pandasm::Ins &pandaIns) in ParseInstructionDebugInfo()
400 panda::pandasm::debuginfo::Ins insDebug; in ParseInstructionDebugInfo()
432 static panda::pandasm::Ins ParseInstruction(const Json::Value &ins) in ParseInstruction()
434 panda::pandasm::Ins pandaIns; in ParseInstruction()
444 static int ParseVariablesDebugInfo(const Json::Value &function, panda::pandasm::Function &pandaFunc) in ParseVariablesDebugInfo()
456 panda::pandasm::debuginfo::LocalVariable variableDebug; in ParseVariablesDebugInfo()
489 static int ParseSourceFileInfo(const Json::Value &function, panda::pandasm::Function &pandaFunc) in ParseSourceFileInfo()
502 static panda::pandasm::Function::CatchBlock ParsecatchBlock(const Json::Value &catch_block) in ParsecatchBlock()
504 panda::pandasm::Function::CatchBlock pandaCatchBlock; in ParsecatchBlock()
522 panda::pandasm::Function GetFunctionDefintion(const Json::Value &function) in GetFunctionDefintion()
530 auto params = std::vector<panda::pandasm::Function::Parameter>(); in GetFunctionDefintion()
544 params.emplace_back(panda::pandasm::Type("any", 0), LANG_EXT); in GetFunctionDefintion()
561 static void ParseFunctionInstructions(const Json::Value &function, panda::pandasm::Function &pandaF… in ParseFunctionInstructions()
577 static void ParseFunctionLabels(const Json::Value &function, panda::pandasm::Function &pandaFunc) in ParseFunctionLabels()
591 static void ParseFunctionCatchTables(const Json::Value &function, panda::pandasm::Function &pandaFu… in ParseFunctionCatchTables()
608 panda::pandasm::Function &pandaFunc) in GetInstTypeMap()
635 if (pandaFunc.ins[start].opcode == panda::pandasm::Opcode::INVALID) { in GetInstTypeMap()
654 static void ParseFunctionTypeInfo(const Json::Value &function, panda::pandasm::Function &pandaFunc, in ParseFunctionTypeInfo()
655 panda::pandasm::Program &prog) in ParseFunctionTypeInfo()
659 std::vector<panda::pandasm::LiteralArray::Literal> literalArray; in ParseFunctionTypeInfo()
661 panda::pandasm::LiteralArray::Literal instTagLiteral; in ParseFunctionTypeInfo()
662 panda::pandasm::LiteralArray::Literal instValueLiteral; in ParseFunctionTypeInfo()
663 instTagLiteral.tag_ = panda::panda_file::LiteralTag::TAGVALUE; in ParseFunctionTypeInfo()
664 ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::INTEGER) <= MAX_UINT8); in ParseFunctionTypeInfo()
665 instTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::INTEGER); in ParseFunctionTypeInfo()
667 instValueLiteral.tag_ = panda::panda_file::LiteralTag::INTEGER; in ParseFunctionTypeInfo()
671 panda::pandasm::LiteralArray::Literal typeTagLiteral; in ParseFunctionTypeInfo()
672 panda::pandasm::LiteralArray::Literal typeValueLiteral; in ParseFunctionTypeInfo()
673 typeTagLiteral.tag_ = panda::panda_file::LiteralTag::TAGVALUE; in ParseFunctionTypeInfo()
676 … ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::BUILTINTYPEINDEX) <= MAX_UINT8); in ParseFunctionTypeInfo()
677 … typeTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::BUILTINTYPEINDEX); in ParseFunctionTypeInfo()
678 typeValueLiteral.tag_ = panda::panda_file::LiteralTag::BUILTINTYPEINDEX; in ParseFunctionTypeInfo()
682 … ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::LITERALARRAY) <= MAX_UINT8); in ParseFunctionTypeInfo()
683 … typeTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::LITERALARRAY); in ParseFunctionTypeInfo()
684 typeValueLiteral.tag_ = panda::panda_file::LiteralTag::LITERALARRAY; in ParseFunctionTypeInfo()
693 auto literalarrayInstance = panda::pandasm::LiteralArray(literalArray); in ParseFunctionTypeInfo()
696 panda::pandasm::AnnotationData funcAnnotation(TSTYPE_ANNO_RECORD_NAME); in ParseFunctionTypeInfo()
697 panda::pandasm::AnnotationElement typeOfVregElement( in ParseFunctionTypeInfo()
698 TSTYPE_ANNO_ELEMENT_NAME, std::make_unique<panda::pandasm::ScalarValue>( in ParseFunctionTypeInfo()
699 panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(litId))); in ParseFunctionTypeInfo()
701 …const_cast<std::vector<panda::pandasm::AnnotationData>&>(pandaFunc.metadata->GetAnnotations()).pus… in ParseFunctionTypeInfo()
706 static std::string CreateLiteralArrayForType(const Json::Value &types, panda::pandasm::Program &pro… in CreateLiteralArrayForType()
708 std::vector<panda::pandasm::LiteralArray::Literal> literalArray; in CreateLiteralArrayForType()
715 panda::pandasm::LiteralArray::Literal symbolTagLiteral; in CreateLiteralArrayForType()
716 panda::pandasm::LiteralArray::Literal symbolValueLiteral; in CreateLiteralArrayForType()
721 symbolTagLiteral.tag_ = panda::panda_file::LiteralTag::TAGVALUE; in CreateLiteralArrayForType()
722 ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::STRING) <= MAX_UINT8); in CreateLiteralArrayForType()
723 symbolTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::STRING); in CreateLiteralArrayForType()
724 symbolValueLiteral.tag_ = panda::panda_file::LiteralTag::STRING; in CreateLiteralArrayForType()
729 panda::pandasm::LiteralArray::Literal typeTagLiteral; in CreateLiteralArrayForType()
730 panda::pandasm::LiteralArray::Literal typeValueLiteral; in CreateLiteralArrayForType()
735 typeTagLiteral.tag_ = panda::panda_file::LiteralTag::TAGVALUE; in CreateLiteralArrayForType()
737 … ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::BUILTINTYPEINDEX) <= MAX_UINT8); in CreateLiteralArrayForType()
738 … typeTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::BUILTINTYPEINDEX); in CreateLiteralArrayForType()
739 typeValueLiteral.tag_ = panda::panda_file::LiteralTag::BUILTINTYPEINDEX; in CreateLiteralArrayForType()
743 ASSERT(static_cast<uint32_t>(panda::panda_file::LiteralTag::LITERALARRAY) <= MAX_UINT8); in CreateLiteralArrayForType()
744 … typeTagLiteral.value_ = static_cast<uint8_t>(panda::panda_file::LiteralTag::LITERALARRAY); in CreateLiteralArrayForType()
745 typeValueLiteral.tag_ = panda::panda_file::LiteralTag::LITERALARRAY; in CreateLiteralArrayForType()
755 auto literalarrayInstance = panda::pandasm::LiteralArray(literalArray); in CreateLiteralArrayForType()
760 static void ParseFunctionExportedType(const Json::Value &function, panda::pandasm::Function &pandaF… in ParseFunctionExportedType()
761 panda::pandasm::Program &prog) in ParseFunctionExportedType()
773 panda::pandasm::AnnotationData funcAnnotation(TSTYPE_ANNO_RECORD_NAME); in ParseFunctionExportedType()
777 panda::pandasm::AnnotationElement exportedSymbolTypesElement(symbolTypeAnnotationName, in ParseFunctionExportedType()
778 std::make_unique<panda::pandasm::ScalarValue>( in ParseFunctionExportedType()
779 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(litId))); in ParseFunctionExportedType()
782 const_cast<std::vector<panda::pandasm::AnnotationData>&>( in ParseFunctionExportedType()
787 static void ParseFunctionDeclaredType(const Json::Value &function, panda::pandasm::Function &pandaF… in ParseFunctionDeclaredType()
788 panda::pandasm::Program &prog) in ParseFunctionDeclaredType()
800 panda::pandasm::AnnotationData funcAnnotation(TSTYPE_ANNO_RECORD_NAME); in ParseFunctionDeclaredType()
804 panda::pandasm::AnnotationElement declaredSymbolTypesElement(symbolTypeAnnotationName, in ParseFunctionDeclaredType()
805 std::make_unique<panda::pandasm::ScalarValue>( in ParseFunctionDeclaredType()
806 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(litId))); in ParseFunctionDeclaredType()
809 …const_cast<std::vector<panda::pandasm::AnnotationData>&>(pandaFunc.metadata->GetAnnotations()).pus… in ParseFunctionDeclaredType()
814 static void ParseFunctionKind(const Json::Value &function, panda::pandasm::Function &pandaFunc) { in ParseFunctionKind()
815 panda::panda_file::FunctionKind funcKind {}; in ParseFunctionKind()
817 funcKind = static_cast<panda::panda_file::FunctionKind>(function["kind"].asUInt()); in ParseFunctionKind()
822 static void ParseFunctionIcSize(const Json::Value &function, panda::pandasm::Function &pandaFunc) { in ParseFunctionIcSize()
829 static panda::pandasm::Function ParseFunction(const Json::Value &function, panda::pandasm::Program … in ParseFunction()
850 static void GenerateESCallTypeAnnotationRecord(panda::pandasm::Program &prog) in GenerateESCallTypeAnnotationRecord()
852 auto callTypeAnnotationRecord = panda::pandasm::Record("_ESCallTypeAnnotation", LANG_EXT); in GenerateESCallTypeAnnotationRecord()
854 callTypeAnnotationRecord.metadata->SetAccessFlags(panda::ACC_ANNOTATION); in GenerateESCallTypeAnnotationRecord()
857 static void GenerateESTypeAnnotationRecord(panda::pandasm::Program &prog) in GenerateESTypeAnnotationRecord()
859 auto tsTypeAnnotationRecord = panda::pandasm::Record(TSTYPE_ANNO_RECORD_NAME, LANG_EXT); in GenerateESTypeAnnotationRecord()
861 tsTypeAnnotationRecord.metadata->SetAccessFlags(panda::ACC_ANNOTATION); in GenerateESTypeAnnotationRecord()
865 static void GenerateESModuleRecord(panda::pandasm::Program &prog) in GenerateESModuleRecord()
867 auto ecmaModuleRecord = panda::pandasm::Record("_ESModuleRecord", LANG_EXT); in GenerateESModuleRecord()
868 ecmaModuleRecord.metadata->SetAccessFlags(panda::ACC_PUBLIC); in GenerateESModuleRecord()
872 static void GenerateCommonJsRecord(panda::pandasm::Program &prog, bool isCommonJs) in GenerateCommonJsRecord()
875 auto commonjsRecord = panda::pandasm::Record("_CommonJsRecord", LANG_EXT); in GenerateCommonJsRecord()
876 commonjsRecord.metadata->SetAccessFlags(panda::ACC_PUBLIC); in GenerateCommonJsRecord()
877 auto isCommonJsField = panda::pandasm::Field(LANG_EXT); in GenerateCommonJsRecord()
879 isCommonJsField.type = panda::pandasm::Type("u8", 0); in GenerateCommonJsRecord()
880 …isCommonJsField.metadata->SetValue(panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type… in GenerateCommonJsRecord()
887 static void SetCommonjsField(panda::pandasm::Program &prog, bool isCommonjs) in SetCommonjsField()
892 auto isCommonJsField = panda::pandasm::Field(LANG_EXT); in SetCommonjsField()
894 isCommonJsField.type = panda::pandasm::Type("u8", 0); in SetCommonjsField()
896 …panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U8>(static_cast<uint8_t>(isCommon… in SetCommonjsField()
901 static void AddModuleRecord(panda::pandasm::Program &prog, const std::string &moduleName) in AddModuleRecord()
908 auto moduleIdxField = panda::pandasm::Field(LANG_EXT); in AddModuleRecord()
910 moduleIdxField.type = panda::pandasm::Type("u32", 0); in AddModuleRecord()
913 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(moduleId)); in AddModuleRecord()
947 static void ParseModuleMode(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseModuleMode()
957 static void ParseCommonJsModuleMode(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseCommonJsModuleMode()
1048 static void ParseOptions(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseOptions()
1065 static void ParseSingleFunc(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseSingleFunc()
1071 static void ParseRec(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseRec()
1078 static void SetPackageName(const std::string &packageName, panda::pandasm::Program &prog) in SetPackageName()
1083 auto pkgNameField = panda::pandasm::Field(LANG_EXT); in SetPackageName()
1085 pkgNameField.type = panda::pandasm::Type("u8", 0); in SetPackageName()
1087 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U8>(static_cast<uint8_t>(0))); in SetPackageName()
1093 static void ParseInputJsonFileContent(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseInputJsonFileContent()
1099 auto inputJsonFileContentField = panda::pandasm::Field(LANG_EXT); in ParseInputJsonFileContent()
1101 inputJsonFileContentField.type = panda::pandasm::Type("u32", 0); in ParseInputJsonFileContent()
1103 panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::STRING>( in ParseInputJsonFileContent()
1109 static void ParseSingleStr(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseSingleStr()
1117 static void ParseSingleLiteralBuf(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseSingleLiteralBuf()
1119 std::vector<panda::pandasm::LiteralArray::Literal> literalArray; in ParseSingleLiteralBuf()
1126 auto literalarrayInstance = panda::pandasm::LiteralArray(literalArray); in ParseSingleLiteralBuf()
1132 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseModuleRequests()
1134 panda::pandasm::LiteralArray::Literal moduleSize = { in ParseModuleRequests()
1135 ….tag_ = panda::panda_file::LiteralTag::INTEGER, .value_ = static_cast<uint32_t>(moduleRequests.siz… in ParseModuleRequests()
1138 panda::pandasm::LiteralArray::Literal moduleRequest = { in ParseModuleRequests()
1139 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(moduleRequests[i].asString())… in ParseModuleRequests()
1145 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseRegularImportEntries()
1147 panda::pandasm::LiteralArray::Literal entrySize = { in ParseRegularImportEntries()
1148 ….tag_ = panda::panda_file::LiteralTag::INTEGER, .value_ = static_cast<uint32_t>(regularImportEntri… in ParseRegularImportEntries()
1152 panda::pandasm::LiteralArray::Literal localName = { in ParseRegularImportEntries()
1153 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["localName"].asString()… in ParseRegularImportEntries()
1155 panda::pandasm::LiteralArray::Literal importName = { in ParseRegularImportEntries()
1156 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["importName"].asString(… in ParseRegularImportEntries()
1158 panda::pandasm::LiteralArray::Literal moduleRequest = { in ParseRegularImportEntries()
1159 .tag_ = panda::panda_file::LiteralTag::METHODAFFILIATE, in ParseRegularImportEntries()
1166 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseNamespaceImportEntries()
1168 panda::pandasm::LiteralArray::Literal entrySize = { in ParseNamespaceImportEntries()
1169 .tag_ = panda::panda_file::LiteralTag::INTEGER, in ParseNamespaceImportEntries()
1174 panda::pandasm::LiteralArray::Literal localName = { in ParseNamespaceImportEntries()
1175 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["localName"].asString()… in ParseNamespaceImportEntries()
1177 panda::pandasm::LiteralArray::Literal moduleRequest = { in ParseNamespaceImportEntries()
1178 .tag_ = panda::panda_file::LiteralTag::METHODAFFILIATE, in ParseNamespaceImportEntries()
1185 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseLocalExportEntries()
1187 panda::pandasm::LiteralArray::Literal entrySize = { in ParseLocalExportEntries()
1188 ….tag_ = panda::panda_file::LiteralTag::INTEGER, .value_ = static_cast<uint32_t>(localExportEntries… in ParseLocalExportEntries()
1192 panda::pandasm::LiteralArray::Literal localName = { in ParseLocalExportEntries()
1193 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["localName"].asString()… in ParseLocalExportEntries()
1195 panda::pandasm::LiteralArray::Literal exportName = { in ParseLocalExportEntries()
1196 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["exportName"].asString(… in ParseLocalExportEntries()
1202 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseIndirectExportEntries()
1204 panda::pandasm::LiteralArray::Literal entrySize = { in ParseIndirectExportEntries()
1205 ….tag_ = panda::panda_file::LiteralTag::INTEGER, .value_ = static_cast<uint32_t>(indirectExportEntr… in ParseIndirectExportEntries()
1209 panda::pandasm::LiteralArray::Literal exportName = { in ParseIndirectExportEntries()
1210 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["exportName"].asString(… in ParseIndirectExportEntries()
1212 panda::pandasm::LiteralArray::Literal importName = { in ParseIndirectExportEntries()
1213 ….tag_ = panda::panda_file::LiteralTag::STRING, .value_ = ParseString(entry["importName"].asString(… in ParseIndirectExportEntries()
1215 panda::pandasm::LiteralArray::Literal moduleRequest = { in ParseIndirectExportEntries()
1216 .tag_ = panda::panda_file::LiteralTag::METHODAFFILIATE, in ParseIndirectExportEntries()
1223 … std::vector<panda::pandasm::LiteralArray::Literal> &moduleLiteralArray) in ParseStarExportEntries()
1225 panda::pandasm::LiteralArray::Literal entrySize = { in ParseStarExportEntries()
1226 ….tag_ = panda::panda_file::LiteralTag::INTEGER, .value_ = static_cast<uint32_t>(starExportEntries.… in ParseStarExportEntries()
1229 panda::pandasm::LiteralArray::Literal moduleRequest = { in ParseStarExportEntries()
1230 .tag_ = panda::panda_file::LiteralTag::METHODAFFILIATE, in ParseStarExportEntries()
1236 static void ParseSingleModule(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseSingleModule()
1238 std::vector<panda::pandasm::LiteralArray::Literal> moduleLiteralArray; in ParseSingleModule()
1252 auto moduleLiteralarrayInstance = panda::pandasm::LiteralArray(moduleLiteralArray); in ParseSingleModule()
1256 static void ParseSingleTypeInfo(const Json::Value &rootValue, panda::pandasm::Program &prog) in ParseSingleTypeInfo()
1267 auto typeFlagField = panda::pandasm::Field(LANG_EXT); in ParseSingleTypeInfo()
1269 typeFlagField.type = panda::pandasm::Type("u8", 0); in ParseSingleTypeInfo()
1270 …typeFlagField.metadata->SetValue(panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::… in ParseSingleTypeInfo()
1275 auto typeSummaryIndexField = panda::pandasm::Field(LANG_EXT); in ParseSingleTypeInfo()
1277 typeSummaryIndexField.type = panda::pandasm::Type("u32", 0); in ParseSingleTypeInfo()
1279 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(typeSummaryIndex)); in ParseSingleTypeInfo()
1285 auto ecmaTypeInfoRecord = panda::pandasm::Record("_ESTypeInfoRecord", LANG_EXT); in ParseSingleTypeInfo()
1286 ecmaTypeInfoRecord.metadata->SetAccessFlags(panda::ACC_PUBLIC); in ParseSingleTypeInfo()
1288 auto typeFlagField = panda::pandasm::Field(LANG_EXT); in ParseSingleTypeInfo()
1290 typeFlagField.type = panda::pandasm::Type("u8", 0); in ParseSingleTypeInfo()
1291 …typeFlagField.metadata->SetValue(panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::… in ParseSingleTypeInfo()
1296 auto typeSummaryIndexField = panda::pandasm::Field(LANG_EXT); in ParseSingleTypeInfo()
1298 typeSummaryIndexField.type = panda::pandasm::Type("u32", 0); in ParseSingleTypeInfo()
1300 … panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(typeSummaryIndex)); in ParseSingleTypeInfo()
1307 static int ParseSmallPieceJson(const std::string &subJson, panda::pandasm::Program &prog) in ParseSmallPieceJson()
1389 static bool ParseData(const std::string &data, panda::pandasm::Program &prog) in ParseData()
1437 static bool EmitProgram(const std::string &output, int optLevel, std::string optLogLevel, panda::pa… in EmitProgram()
1442 std::string convertedFilePath = panda::os::file::File::GetExtendedFilePath(output); in EmitProgram()
1449 panda::Logger::ComponentMask mask; in EmitProgram()
1450 mask.set(panda::Logger::Component::ASSEMBLER); in EmitProgram()
1451 mask.set(panda::Logger::Component::BYTECODE_OPTIMIZER); in EmitProgram()
1452 mask.set(panda::Logger::Component::COMPILER); in EmitProgram()
1453 panda::Logger::InitializeStdLogging(panda::Logger::LevelFromString(optLogLevel), mask); in EmitProgram()
1459 panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps maps {}; in EmitProgram()
1460 panda::pandasm::AsmEmitter::PandaFileToPandaAsmMaps* mapsp = &maps; in EmitProgram()
1462 … if (!panda::pandasm::AsmEmitter::Emit(convertedFilePath, prog, statp, mapsp, emitDebugInfo)) { in EmitProgram()
1463 …std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::… in EmitProgram()
1467 panda::bytecodeopt::OptimizeBytecode(&prog, mapsp, convertedFilePath, true); in EmitProgram()
1470 panda::proto::ProtobufSnapshotGenerator::GenerateSnapshot(prog, g_compilerOutputProto); in EmitProgram()
1474 … if (!panda::pandasm::AsmEmitter::Emit(convertedFilePath, prog, statp, mapsp, emitDebugInfo)) { in EmitProgram()
1475 …std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::… in EmitProgram()
1482 panda::proto::ProtobufSnapshotGenerator::GenerateSnapshot(prog, g_compilerOutputProto); in EmitProgram()
1486 if (!panda::pandasm::AsmEmitter::Emit(convertedFilePath, prog, nullptr)) { in EmitProgram()
1487 …std::cerr << "Failed to emit binary data: " << panda::pandasm::AsmEmitter::GetLastError() << std::… in EmitProgram()
1495 static bool EmitAndRestoreProgram(panda::pandasm::Program &prog, panda::ts2abc::Options options) in EmitAndRestoreProgram()
1501 prog = panda::pandasm::Program(); in EmitAndRestoreProgram()
1502 prog.lang = panda::pandasm::extensions::Language::ECMASCRIPT; in EmitAndRestoreProgram()
1507 static bool HandleBuffer(const int &ret, char *buff, std::string &data, panda::pandasm::Program &pr… in HandleBuffer()
1508 panda::ts2abc::Options options) in HandleBuffer()
1555 static bool ReadFromPipe(panda::pandasm::Program &prog, panda::ts2abc::Options options) in ReadFromPipe()
1582 bool GenerateProgramsFromPipe(panda::ts2abc::Options options) in GenerateProgramsFromPipe()
1584 panda::pandasm::Program prog = panda::pandasm::Program(); in GenerateProgramsFromPipe()
1585 prog.lang = panda::pandasm::extensions::Language::ECMASCRIPT; in GenerateProgramsFromPipe()
1596 panda::ts2abc::Options options) in GenerateProgram()
1601 panda::pandasm::Program prog = panda::pandasm::Program(); in GenerateProgram()
1602 prog.lang = panda::pandasm::extensions::Language::ECMASCRIPT; in GenerateProgram()
1623 auto inputAbs = panda::os::file::File::GetAbsolutePath(input); in CompileNpmEntries()
1629 if (panda::os::file::File::IsRegularFile(fpath) == false) { in CompileNpmEntries()
1635 std::ifstream inputStream(panda::os::file::File::GetExtendedFilePath(input)); in CompileNpmEntries()
1642 panda::pandasm::Program prog = panda::pandasm::Program(); in CompileNpmEntries()
1652 auto entryNameField = panda::pandasm::Field(langExt); in CompileNpmEntries()
1654 entryNameField.type = panda::pandasm::Type("u8", 0); in CompileNpmEntries()
1655 …entryNameField.metadata->SetValue(panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type:… in CompileNpmEntries()
1658 panda::pandasm::Record entryRecord = panda::pandasm::Record(recordName, langExt); in CompileNpmEntries()
1663 panda::proto::ProtobufSnapshotGenerator::GenerateSnapshot(prog, output); in CompileNpmEntries()
1669 auto inputAbs = panda::os::file::File::GetAbsolutePath(input); in HandleJsonFile()
1675 if (panda::os::file::File::IsRegularFile(fpath) == false) { in HandleJsonFile()
1681 file.open(panda::os::file::File::GetExtendedFilePath(fpath)); in HandleJsonFile()
1703 } // namespace panda::ts2abc