• Home
  • Raw
  • Download

Lines Matching refs:ir

92 ir::AstNode *Transformer::VisitTSNodes(ir::AstNode *parent)  in VisitTSNodes()
129 void Transformer::PushVariablesToNearestStatements(ir::BlockStatement *ast) in PushVariablesToNearestStatements()
195 ir::UpdateNodes Transformer::VisitTSNode(ir::AstNode *childNode) in VisitTSNode()
199 case ir::AstNodeType::IDENTIFIER: { in VisitTSNode()
221 case ir::AstNodeType::TS_MODULE_DECLARATION: { in VisitTSNode()
230 case ir::AstNodeType::TS_ENUM_DECLARATION: { in VisitTSNode()
239 case ir::AstNodeType::EXPORT_NAMED_DECLARATION: { in VisitTSNode()
272 return VisitExportClassDeclaration<ir::ExportNamedDeclaration>(node); in VisitTSNode()
277 case ir::AstNodeType::EXPORT_DEFAULT_DECLARATION: { in VisitTSNode()
282 return VisitExportClassDeclaration<ir::ExportDefaultDeclaration>(node); in VisitTSNode()
292 case ir::AstNodeType::TS_IMPORT_EQUALS_DECLARATION: { in VisitTSNode()
302 case ir::AstNodeType::CLASS_DECLARATION: { in VisitTSNode()
313 case ir::AstNodeType::CLASS_EXPRESSION: { in VisitTSNode()
321 case ir::AstNodeType::CLASS_DEFINITION: { in VisitTSNode()
329 case ir::AstNodeType::TS_PRIVATE_IDENTIFIER: { in VisitTSNode()
343 ir::UpdateNodes Transformer::VisitExportClassDeclaration(T *node) in VisitExportClassDeclaration()
347 if (std::holds_alternative<ir::AstNode *>(newDecl)) { in VisitExportClassDeclaration()
348 auto statement = std::get<ir::AstNode *>(newDecl); in VisitExportClassDeclaration()
353 auto statements = std::get<std::vector<ir::AstNode *>>(newDecl); in VisitExportClassDeclaration()
354 std::vector<ir::AstNode *> res; in VisitExportClassDeclaration()
408 ir::UpdateNodes Transformer::VisitClassExpression(ir::ClassExpression *node) in VisitClassExpression()
433 auto assignment = AllocNode<ir::AssignmentExpression>(CreateReferenceIdentifier(varName), in VisitClassExpression()
435 ArenaVector<ir::Expression *> sequence(Allocator()->Adapter()); in VisitClassExpression()
446 return AllocNode<ir::SequenceExpression>(std::move(sequence)); in VisitClassExpression()
449 void Transformer::VisitComputedProperty(ir::ClassDefinition *node) in VisitComputedProperty()
481 auto *newKey = AllocNode<ir::AssignmentExpression>(CreateReferenceIdentifier(name), in VisitComputedProperty()
493 auto *newKey = AllocNode<ir::AssignmentExpression>(CreateReferenceIdentifier(name), in VisitComputedProperty()
501 void Transformer::VisitPrivateProperty(ir::ClassDefinition *node) in VisitPrivateProperty()
554 size_t Transformer::GetInsertPosForConstructor(ir::ClassDefinition *node) in GetInsertPosForConstructor()
557 ir::BlockStatement *blockStat = node->Ctor()->Function()->Body()->AsBlockStatement(); in GetInsertPosForConstructor()
571 std::vector<ir::ExpressionStatement *> Transformer::VisitInstanceProperty(ir::ClassDefinition *node) in VisitInstanceProperty()
587 std::vector<ir::ClassProperty *> addToCtor; in VisitInstanceProperty()
589 std::vector<ir::ExpressionStatement *> computedProps; in VisitInstanceProperty()
601 ir::BlockStatement *blockStat = node->Ctor()->Function()->Body()->AsBlockStatement(); in VisitInstanceProperty()
605 computedProps.push_back(AllocNode<ir::ExpressionStatement>(it->Key())); in VisitInstanceProperty()
608 ir::MemberExpression *left = nullptr; in VisitInstanceProperty()
611 left = AllocNode<ir::MemberExpression>(AllocNode<ir::ThisExpression>(), member, in VisitInstanceProperty()
612ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, in VisitInstanceProperty()
615 left = AllocNode<ir::MemberExpression>(AllocNode<ir::ThisExpression>(), member, in VisitInstanceProperty()
616ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in VisitInstanceProperty()
619 auto assignment = AllocNode<ir::AssignmentExpression>(left, it->Value(), in VisitInstanceProperty()
623 blockStat->AddStatementAtPos(insertPos, AllocNode<ir::ExpressionStatement>(assignment)); in VisitInstanceProperty()
629 void Transformer::VisitTSParameterProperty(ir::ClassDefinition *node) in VisitTSParameterProperty()
667 auto left = AllocNode<ir::MemberExpression>(AllocNode<ir::ThisExpression>(), in VisitTSParameterProperty()
668 AllocNode<ir::Identifier>(name), in VisitTSParameterProperty()
669 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in VisitTSParameterProperty()
671 auto assignment = AllocNode<ir::AssignmentExpression>(left, right, in VisitTSParameterProperty()
673 … blockStatement->AddStatementAtPos(insertPos, AllocNode<ir::ExpressionStatement>(assignment)); in VisitTSParameterProperty()
678 std::vector<ir::ExpressionStatement *> Transformer::VisitStaticProperty(ir::ClassDefinition *node, in VisitStaticProperty()
701 std::vector<ir::ExpressionStatement *> res; in VisitStaticProperty()
712 res.push_back(AllocNode<ir::ExpressionStatement>(classProperty->Key())); in VisitStaticProperty()
719 ir::MemberExpression *left = nullptr; in VisitStaticProperty()
722 left = AllocNode<ir::MemberExpression>(CreateReferenceIdentifier(name), member, in VisitStaticProperty()
723ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, in VisitStaticProperty()
726 left = AllocNode<ir::MemberExpression>(CreateReferenceIdentifier(name), member, in VisitStaticProperty()
727ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in VisitStaticProperty()
730 …auto assignment = AllocNode<ir::AssignmentExpression>(left, right, lexer::TokenType::PUNCTUATOR_SU… in VisitStaticProperty()
731 res.push_back(AllocNode<ir::ExpressionStatement>(assignment)); in VisitStaticProperty()
736 ir::UpdateNodes Transformer::VisitClassDeclaration(ir::ClassDeclaration *node) in VisitClassDeclaration()
740 std::vector<ir::AstNode *> res; in VisitClassDeclaration()
744 auto *clsExpression = AllocNode<ir::ClassExpression>(definiton); in VisitClassDeclaration()
766 std::vector<ir::AstNode *> staticMemberDecorators; in VisitClassDeclaration()
805 res.push_back(AllocNode<ir::ExpressionStatement>(classProperty->Key())); in VisitClassDeclaration()
849 std::vector<ir::AstNode *> Transformer::CreateVariableDeclarationForDecorators(ir::AstNode *node) in CreateVariableDeclarationForDecorators()
851 std::vector<ir::AstNode *> res; in CreateVariableDeclarationForDecorators()
854 case ir::AstNodeType::METHOD_DEFINITION: { in CreateVariableDeclarationForDecorators()
873 case ir::AstNodeType::CLASS_PROPERTY: { in CreateVariableDeclarationForDecorators()
882 case ir::AstNodeType::CLASS_DECLARATION: { in CreateVariableDeclarationForDecorators()
907 std::vector<ir::AstNode *> Transformer::CreateParamDecorators(util::StringView className, in CreateParamDecorators()
908 ir::MethodDefinition *node, in CreateParamDecorators()
909 … const std::vector<ir::AstNode *> &variableDeclarations, in CreateParamDecorators()
928 std::vector<ir::AstNode *> res; in CreateParamDecorators()
935 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateParamDecorators()
940 arguments.push_back(AllocNode<ir::NumberLiteral>(paramIndex)); in CreateParamDecorators()
941 auto *callExpr = AllocNode<ir::CallExpression>( in CreateParamDecorators()
944 res.push_back(AllocNode<ir::ExpressionStatement>(callExpr)); in CreateParamDecorators()
950 std::vector<ir::AstNode *> Transformer::CreatePropertyDecorators(util::StringView className, in CreatePropertyDecorators()
951 ir::ClassProperty *node, in CreatePropertyDecorators()
952 … const std::vector<ir::AstNode *> &variableDeclarations, in CreatePropertyDecorators()
970 std::vector<ir::AstNode *> res; in CreatePropertyDecorators()
973 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreatePropertyDecorators()
976 auto *callExpr = AllocNode<ir::CallExpression>( in CreatePropertyDecorators()
980 res.push_back(AllocNode<ir::ExpressionStatement>(callExpr)); in CreatePropertyDecorators()
985 std::vector<ir::AstNode *> Transformer::CreateMethodDecorators(util::StringView className, in CreateMethodDecorators()
986 ir::MethodDefinition *node, in CreateMethodDecorators()
987 … const std::vector<ir::AstNode *> &variableDeclarations, in CreateMethodDecorators()
1009 std::vector<ir::AstNode *> res; in CreateMethodDecorators()
1013 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateMethodDecorators()
1021 arguments.push_back(AllocNode<ir::Identifier>(varName)); in CreateMethodDecorators()
1022 auto *callExpr = AllocNode<ir::CallExpression>( in CreateMethodDecorators()
1026 … auto newValue = AllocNode<ir::BinaryExpression>(callExpr, AllocNode<ir::Identifier>(varName), in CreateMethodDecorators()
1032 res.push_back(AllocNode<ir::ExpressionStatement>(defineProperty)); in CreateMethodDecorators()
1037 ir::Expression *Transformer::CreateDecoratorTarget(util::StringView className, bool isStatic) in CreateDecoratorTarget()
1045 ir::MemberExpression *Transformer::CreateClassPrototype(util::StringView className) in CreateClassPrototype()
1048 return AllocNode<ir::MemberExpression>(cls, AllocNode<ir::Identifier>(CLASS_PROTOTYPE), in CreateClassPrototype()
1049 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateClassPrototype()
1052 ir::CallExpression *Transformer::CreateDefinePropertyCall(ir::Expression *target, in CreateDefinePropertyCall()
1053 ir::Expression *key, in CreateDefinePropertyCall()
1054 ir::Expression *value) in CreateDefinePropertyCall()
1057 …auto *caller = AllocNode<ir::MemberExpression>(id, AllocNode<ir::Identifier>(FUNC_NAME_OF_DEFINE_P… in CreateDefinePropertyCall()
1058 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateDefinePropertyCall()
1059 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateDefinePropertyCall()
1063 return AllocNode<ir::CallExpression>(caller, std::move(arguments), nullptr, false); in CreateDefinePropertyCall()
1066 ir::CallExpression *Transformer::CreateGetOwnPropertyDescriptorCall(ir::Expression *target, ir::Exp… in CreateGetOwnPropertyDescriptorCall()
1069 auto *caller = AllocNode<ir::MemberExpression>(id, in CreateGetOwnPropertyDescriptorCall()
1070 AllocNode<ir::Identifier>(FUNC_NAME_OF_GET_OWN_PROPERTY_DESCRIPTOR), in CreateGetOwnPropertyDescriptorCall()
1071 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateGetOwnPropertyDescriptorCall()
1072 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateGetOwnPropertyDescriptorCall()
1075 return AllocNode<ir::CallExpression>(caller, std::move(arguments), nullptr, false); in CreateGetOwnPropertyDescriptorCall()
1078 ir::Expression *Transformer::GetClassMemberName(ir::Expression *key, bool isComputed, in GetClassMemberName()
1079 ir::Statement *node, bool inDecorator) in GetClassMemberName()
1083 return AllocNode<ir::Identifier>(name); in GetClassMemberName()
1087 return AllocNode<ir::StringLiteral>(key->AsIdentifier()->Name()); in GetClassMemberName()
1089 return AllocNode<ir::Identifier>(key->AsIdentifier()->Name()); in GetClassMemberName()
1092 return AllocNode<ir::StringLiteral>(key->AsStringLiteral()->Str()); in GetClassMemberName()
1094 …return AllocNode<ir::NumberLiteral>(key->AsNumberLiteral()->Number(), key->AsNumberLiteral()->Str(… in GetClassMemberName()
1096 return AllocNode<ir::BigIntLiteral>(key->AsBigIntLiteral()->Str()); in GetClassMemberName()
1102 std::vector<ir::AstNode *> Transformer::CreateClassDecorators(ir::ClassDeclaration *node, in CreateClassDecorators()
1103 … const std::vector<ir::AstNode *> &variableDeclarations) in CreateClassDecorators()
1123 std::vector<ir::AstNode *> res; in CreateClassDecorators()
1125 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateClassDecorators()
1127 auto *callExpr = AllocNode<ir::CallExpression>( in CreateClassDecorators()
1133 …auto right = AllocNode<ir::BinaryExpression>(callExpr, id, lexer::TokenType::PUNCTUATOR_LOGICAL_OR… in CreateClassDecorators()
1134 auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, in CreateClassDecorators()
1137 res.push_back(AllocNode<ir::ExpressionStatement>(assignExpr)); in CreateClassDecorators()
1142 ir::AstNode *Transformer::VisitTsImportEqualsDeclaration(ir::TSImportEqualsDeclaration *node) in VisitTsImportEqualsDeclaration()
1152 auto *left = AllocNode<ir::MemberExpression>(id, AllocNode<ir::Identifier>(name), in VisitTsImportEqualsDeclaration()
1153 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in VisitTsImportEqualsDeclaration()
1154 ir::Expression *right = CreateMemberExpressionFromQualified(express); in VisitTsImportEqualsDeclaration()
1155 auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, in VisitTsImportEqualsDeclaration()
1157 auto *res = AllocNode<ir::ExpressionStatement>(assignExpr); in VisitTsImportEqualsDeclaration()
1161 ir::Expression *init = CreateMemberExpressionFromQualified(express); in VisitTsImportEqualsDeclaration()
1162ir::Statement *res = CreateVariableDeclarationWithIdentify(name, VariableParsingFlags::VAR, node, in VisitTsImportEqualsDeclaration()
1165 ArenaVector<ir::ExportSpecifier *> specifiers(Allocator()->Adapter()); in VisitTsImportEqualsDeclaration()
1166 res = AllocNode<ir::ExportNamedDeclaration>(res, std::move(specifiers)); in VisitTsImportEqualsDeclaration()
1172 bool Transformer::IsInstantiatedImportEquals(const ir::TSImportEqualsDeclaration *node, binder::Sco… in IsInstantiatedImportEquals()
1188 binder::Variable *Transformer::FindTSModuleVariable(const ir::Expression *node, in FindTSModuleVariable()
1271 std::vector<ir::AstNode *> Transformer::VisitExportNamedVariable(ir::Statement *decl) in VisitExportNamedVariable()
1273 std::vector<ir::AstNode *> res; in VisitExportNamedVariable()
1278 auto *left = std::get<ir::AstNode *>(VisitTSNode(it->Id()))->AsExpression(); in VisitExportNamedVariable()
1279 auto *right = std::get<ir::AstNode *>(VisitTSNode(it->Init()))->AsExpression(); in VisitExportNamedVariable()
1280 auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, in VisitExportNamedVariable()
1282 res.push_back(AllocNode<ir::ExpressionStatement>(assignExpr)); in VisitExportNamedVariable()
1287 if (std::holds_alternative<ir::AstNode *>(newDecl)) { in VisitExportNamedVariable()
1288 res.push_back(std::get<ir::AstNode *>(newDecl)); in VisitExportNamedVariable()
1290 auto statements = std::get<std::vector<ir::AstNode *>>(newDecl); in VisitExportNamedVariable()
1303 ir::Expression *Transformer::CreateMemberExpressionFromQualified(ir::Expression *node) in CreateMemberExpressionFromQualified()
1308 auto *right = AllocNode<ir::Identifier>(tsQualifiedName->Right()->Name()); in CreateMemberExpressionFromQualified()
1309 return AllocNode<ir::MemberExpression>(left, right, in CreateMemberExpressionFromQualified()
1310 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateMemberExpressionFromQualified()
1317 void Transformer::SetOriginalNode(ir::UpdateNodes res, ir::AstNode *originalNode) const in SetOriginalNode()
1319 if (std::holds_alternative<ir::AstNode *>(res)) { in SetOriginalNode()
1320 auto *node = std::get<ir::AstNode *>(res); in SetOriginalNode()
1327 auto nodes = std::get<std::vector<ir::AstNode *>>(res); in SetOriginalNode()
1335 ir::ExpressionStatement *Transformer::CreateTsModuleAssignment(util::StringView name) in CreateTsModuleAssignment()
1339 auto *left = AllocNode<ir::MemberExpression>(id, AllocNode<ir::Identifier>(name), in CreateTsModuleAssignment()
1340 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateTsModuleAssignment()
1342 …auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, lexer::TokenType::PUNCTUATOR_S… in CreateTsModuleAssignment()
1343 return AllocNode<ir::ExpressionStatement>(assignExpr); in CreateTsModuleAssignment()
1346 util::StringView Transformer::GetNameFromModuleDeclaration(ir::TSModuleDeclaration *node) const in GetNameFromModuleDeclaration()
1351 ir::VariableDeclaration *Transformer::CreateVariableDeclarationWithIdentify(util::StringView name, in CreateVariableDeclarationWithIdentify()
1353 ir::AstNode *node, in CreateVariableDeclarationWithIdentify()
1355 ir::Expression *init, in CreateVariableDeclarationWithIdentify()
1359 auto *declarator = AllocNode<ir::VariableDeclarator>(ident, init); in CreateVariableDeclarationWithIdentify()
1360 ArenaVector<ir::VariableDeclarator *> declarators(Allocator()->Adapter()); in CreateVariableDeclarationWithIdentify()
1363 auto varKind = ir::VariableDeclaration::VariableDeclarationKind::VAR; in CreateVariableDeclarationWithIdentify()
1366 varKind = ir::VariableDeclaration::VariableDeclarationKind::LET; in CreateVariableDeclarationWithIdentify()
1368 varKind = ir::VariableDeclaration::VariableDeclarationKind::CONST; in CreateVariableDeclarationWithIdentify()
1370 auto *declaration = AllocNode<ir::VariableDeclaration>(varKind, std::move(declarators), false); in CreateVariableDeclarationWithIdentify()
1394 util::StringView Transformer::GetParamName(ir::AstNode *node, util::StringView name) const in GetParamName()
1413 ir::CallExpression *Transformer::CreateCallExpressionForTsModule(ir::TSModuleDeclaration *node, in CreateCallExpressionForTsModule()
1417 ir::ScriptFunction *funcNode = nullptr; in CreateCallExpressionForTsModule()
1425 ArenaVector<ir::Expression *> params(Allocator()->Adapter()); in CreateCallExpressionForTsModule()
1430 ir::BlockStatement *blockNode = nullptr; in CreateCallExpressionForTsModule()
1436 … auto body = std::get<std::vector<ir::AstNode *>>(VisitTsModuleDeclaration(tsModule, true)); in CreateCallExpressionForTsModule()
1437 ArenaVector<ir::Statement *> statements(Allocator()->Adapter()); in CreateCallExpressionForTsModule()
1439 statements.push_back(static_cast<ir::Statement *>(it)); in CreateCallExpressionForTsModule()
1441 blockNode = AllocNode<ir::BlockStatement>(funcScope, std::move(statements)); in CreateCallExpressionForTsModule()
1444 blockNode = AllocNode<ir::BlockStatement>(funcScope, in CreateCallExpressionForTsModule()
1451 …funcNode = AllocNode<ir::ScriptFunction>(funcScope, std::move(params), nullptr, blockNode, nullptr, in CreateCallExpressionForTsModule()
1452 ir::ScriptFunctionFlags::NONE, false, Extension() == ScriptExtension::TS); in CreateCallExpressionForTsModule()
1458 auto *funcExpr = AllocNode<ir::FunctionExpression>(funcNode); in CreateCallExpressionForTsModule()
1460 ArenaVector<ir::Expression *> arguments = CreateCallExpressionArguments(name, isExport); in CreateCallExpressionForTsModule()
1461 auto *callExpr = AllocNode<ir::CallExpression>(funcExpr, std::move(arguments), nullptr, false); in CreateCallExpressionForTsModule()
1466 ir::Expression *Transformer::CreateTsModuleParam(util::StringView paramName, bool isExport) in CreateTsModuleParam()
1471 return AllocNode<ir::MemberExpression>(id, AllocNode<ir::Identifier>(paramName), in CreateTsModuleParam()
1472 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateTsModuleParam()
1479 void Transformer::AddExportLocalEntryItem(util::StringView name, const ir::Identifier *identifier) in AddExportLocalEntryItem()
1487 ir::UpdateNodes Transformer::VisitTsModuleDeclaration(ir::TSModuleDeclaration *node, bool isExport) in VisitTsModuleDeclaration()
1489 std::vector<ir::AstNode *> res; in VisitTsModuleDeclaration()
1499 auto *exprStatementNode = AllocNode<ir::ExpressionStatement>(callExpr); in VisitTsModuleDeclaration()
1505 ir::Identifier *Transformer::CreateReferenceIdentifier(util::StringView name) in CreateReferenceIdentifier()
1507 auto *node = AllocNode<ir::Identifier>(name); in CreateReferenceIdentifier()
1512 ir::UpdateNodes Transformer::VisitTsEnumDeclaration(ir::TSEnumDeclaration *node, bool isExport) in VisitTsEnumDeclaration()
1514 std::vector<ir::AstNode *> res; in VisitTsEnumDeclaration()
1524 auto *exprStatementNode = AllocNode<ir::ExpressionStatement>(callExpr); in VisitTsEnumDeclaration()
1530 ir::AstNode *Transformer::CreateVariableDeclarationForTSEnumOrTSModule(util::StringView name, in CreateVariableDeclarationForTSEnumOrTSModule()
1531ir::AstNode *node, bool isExport) in CreateVariableDeclarationForTSEnumOrTSModule()
1537 ArenaVector<ir::ExportSpecifier *> specifiers(Allocator()->Adapter()); in CreateVariableDeclarationForTSEnumOrTSModule()
1538 …auto *exportDeclaration = AllocNode<ir::ExportNamedDeclaration>(variableDeclaration, std::move(spe… in CreateVariableDeclarationForTSEnumOrTSModule()
1547 util::StringView Transformer::GetNameFromTsEnumDeclaration(const ir::TSEnumDeclaration *node) const in GetNameFromTsEnumDeclaration()
1553 ir::CallExpression *Transformer::CreateCallExpressionForTsEnum(ir::TSEnumDeclaration *node, util::S… in CreateCallExpressionForTsEnum()
1556 ir::ScriptFunction *funcNode = nullptr; in CreateCallExpressionForTsEnum()
1564 ArenaVector<ir::Expression *> params(Allocator()->Adapter()); in CreateCallExpressionForTsEnum()
1569 ir::BlockStatement *blockNode = nullptr; in CreateCallExpressionForTsEnum()
1574 ArenaVector<ir::TSEnumMember *> members = node->Members(); in CreateCallExpressionForTsEnum()
1575 ArenaVector<ir::Statement *> statements(Allocator()->Adapter()); in CreateCallExpressionForTsEnum()
1576 ir::TSEnumMember *preTsEnumMember = nullptr; in CreateCallExpressionForTsEnum()
1584 blockNode = AllocNode<ir::BlockStatement>(funcScope, std::move(statements)); in CreateCallExpressionForTsEnum()
1588 …funcNode = AllocNode<ir::ScriptFunction>(funcScope, std::move(params), nullptr, blockNode, nullptr, in CreateCallExpressionForTsEnum()
1589 ir::ScriptFunctionFlags::NONE, false, Extension() == ScriptExtension::TS); in CreateCallExpressionForTsEnum()
1594 auto *funcExpr = AllocNode<ir::FunctionExpression>(funcNode); in CreateCallExpressionForTsEnum()
1596 ArenaVector<ir::Expression *> arguments = CreateCallExpressionArguments(name, isExport); in CreateCallExpressionForTsEnum()
1597 auto *callExpr = AllocNode<ir::CallExpression>(funcExpr, std::move(arguments), nullptr, false); in CreateCallExpressionForTsEnum()
1602 ArenaVector<ir::Expression *> Transformer::CreateCallExpressionArguments(util::StringView name, boo… in CreateCallExpressionArguments()
1604 ArenaVector<ir::Expression *> arguments(Allocator()->Adapter()); in CreateCallExpressionArguments()
1605 ArenaVector<ir::Expression *> properties(Allocator()->Adapter()); in CreateCallExpressionArguments()
1606 auto *objectExpression = AllocNode<ir::ObjectExpression>(ir::AstNodeType::OBJECT_EXPRESSION, in CreateCallExpressionArguments()
1609 auto assignExpr = AllocNode<ir::AssignmentExpression>(CreateTsModuleParam(name, isExport), in CreateCallExpressionArguments()
1612 auto argument = AllocNode<ir::BinaryExpression>(CreateTsModuleParam(name, isExport), in CreateCallExpressionArguments()
1617 arguments.push_back(AllocNode<ir::AssignmentExpression>(id, argument, in CreateCallExpressionArguments()
1626 ir::ExpressionStatement *Transformer::CreateTsEnumMember(ir::TSEnumMember *node, ir::TSEnumMember *… in CreateTsEnumMember()
1649 ir::ExpressionStatement *Transformer::CreateTsEnumMemberWithStringInit(ir::TSEnumMember *node, in CreateTsEnumMemberWithStringInit()
1655 auto *property = AllocNode<ir::StringLiteral>(enumMemberName); in CreateTsEnumMemberWithStringInit()
1656 auto *left = AllocNode<ir::MemberExpression>(object, property, in CreateTsEnumMemberWithStringInit()
1657ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in CreateTsEnumMemberWithStringInit()
1659 auto *right = std::get<ir::AstNode *>(VisitTSNode(node->Init()))->AsExpression(); in CreateTsEnumMemberWithStringInit()
1661 …auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, lexer::TokenType::PUNCTUATOR_S… in CreateTsEnumMemberWithStringInit()
1662 auto *exprStatementNode = AllocNode<ir::ExpressionStatement>(assignExpr); in CreateTsEnumMemberWithStringInit()
1667 ir::ExpressionStatement *Transformer::CreateTsEnumMemberWithNumberInit(ir::TSEnumMember *node, in CreateTsEnumMemberWithNumberInit()
1673 auto *innerProperty = AllocNode<ir::StringLiteral>(enumMemberName); in CreateTsEnumMemberWithNumberInit()
1674 auto *innerLeft = AllocNode<ir::MemberExpression>(innerObject, innerProperty, in CreateTsEnumMemberWithNumberInit()
1675ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in CreateTsEnumMemberWithNumberInit()
1677 auto *innerRight = std::get<ir::AstNode *>(VisitTSNode(node->Init()))->AsExpression(); in CreateTsEnumMemberWithNumberInit()
1680 auto *property = AllocNode<ir::AssignmentExpression>(innerLeft, innerRight, in CreateTsEnumMemberWithNumberInit()
1682 auto *left = AllocNode<ir::MemberExpression>(object, property, in CreateTsEnumMemberWithNumberInit()
1683ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in CreateTsEnumMemberWithNumberInit()
1686 auto *right = AllocNode<ir::StringLiteral>(enumMemberName); in CreateTsEnumMemberWithNumberInit()
1688 …auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, lexer::TokenType::PUNCTUATOR_S… in CreateTsEnumMemberWithNumberInit()
1689 auto *exprStatementNode = AllocNode<ir::ExpressionStatement>(assignExpr); in CreateTsEnumMemberWithNumberInit()
1694 ir::ExpressionStatement *Transformer::CreateTsEnumMemberWithoutInit(ir::TSEnumMember *node, in CreateTsEnumMemberWithoutInit()
1695 ir::TSEnumMember *preNode, in CreateTsEnumMemberWithoutInit()
1701 auto *innerProperty = AllocNode<ir::StringLiteral>(enumMemberName); in CreateTsEnumMemberWithoutInit()
1702 auto *innerLeft = AllocNode<ir::MemberExpression>(innerObject, innerProperty, in CreateTsEnumMemberWithoutInit()
1703ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in CreateTsEnumMemberWithoutInit()
1706 ir::AssignmentExpression *property = nullptr; in CreateTsEnumMemberWithoutInit()
1708 auto *innerRight = AllocNode<ir::NumberLiteral>(0); in CreateTsEnumMemberWithoutInit()
1709 property = AllocNode<ir::AssignmentExpression>(innerLeft, innerRight, in CreateTsEnumMemberWithoutInit()
1713 … auto *innerPropertyForMemberExpr = AllocNode<ir::Identifier>(GetNameFromEnumMember(preNode)); in CreateTsEnumMemberWithoutInit()
1714 …auto *innerMemberExpr = AllocNode<ir::MemberExpression>(innerRightObject, innerPropertyForMemberEx… in CreateTsEnumMemberWithoutInit()
1715 ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, false, false); in CreateTsEnumMemberWithoutInit()
1716 …auto *innerRight = AllocNode<ir::BinaryExpression>(innerMemberExpr, AllocNode<ir::NumberLiteral>(1… in CreateTsEnumMemberWithoutInit()
1718 property = AllocNode<ir::AssignmentExpression>(innerLeft, innerRight, in CreateTsEnumMemberWithoutInit()
1722 auto *left = AllocNode<ir::MemberExpression>(object, property, in CreateTsEnumMemberWithoutInit()
1723ir::MemberExpression::MemberExpressionKind::ELEMENT_ACCESS, in CreateTsEnumMemberWithoutInit()
1726 auto *right = AllocNode<ir::StringLiteral>(enumMemberName); in CreateTsEnumMemberWithoutInit()
1728 …auto *assignExpr = AllocNode<ir::AssignmentExpression>(left, right, lexer::TokenType::PUNCTUATOR_S… in CreateTsEnumMemberWithoutInit()
1729 auto *exprStatementNode = AllocNode<ir::ExpressionStatement>(assignExpr); in CreateTsEnumMemberWithoutInit()
1734 bool Transformer::IsStringInitForEnumMember(const ir::Expression *expr, binder::Scope *scope) const in IsStringInitForEnumMember()
1742 case ir::AstNodeType::STRING_LITERAL: in IsStringInitForEnumMember()
1743 case ir::AstNodeType::TEMPLATE_LITERAL: { in IsStringInitForEnumMember()
1747 case ir::AstNodeType::IDENTIFIER: { in IsStringInitForEnumMember()
1768 case ir::AstNodeType::MEMBER_EXPRESSION: { in IsStringInitForEnumMember()
1771 case ir::AstNodeType::BINARY_EXPRESSION: { in IsStringInitForEnumMember()
1787 bool Transformer::IsStringForMemberExpression(const ir::MemberExpression *memberExpr, binder::Scope… in IsStringForMemberExpression()
1790 const ir::Expression *expr = memberExpr; in IsStringForMemberExpression()
1791 ArenaDeque<const ir::Expression *> members(Allocator()->Adapter()); in IsStringForMemberExpression()
1819 ArenaVector<binder::Variable *> Transformer::FindFrontIdentifierTSVariables(const ir::Identifier *i… in FindFrontIdentifierTSVariables()
1881 ArenaVector<ir::TSModuleDeclaration *> nodes = decl->AsNamespaceDecl()->Decls(); in IsInstantiatedNamespaceVariable()
1882 for (ir::TSModuleDeclaration *node : nodes) { in IsInstantiatedNamespaceVariable()
1963 ArenaDeque<const ir::Expression *> members) const in VerifyMemberExpressionDeque()
2048 util::StringView Transformer::GetNameForMemberExpressionItem(const ir::Expression *node) const in GetNameForMemberExpressionItem()
2061 util::StringView Transformer::GetNameFromEnumMember(const ir::TSEnumMember *node) const in GetNameFromEnumMember()
2099 ir::MemberExpression *Transformer::CreateMemberExpressionFromIdentifier(binder::Scope *scope, ir::I… in CreateMemberExpressionFromIdentifier()
2104 auto *res = AllocNode<ir::MemberExpression>(id, AllocNode<ir::Identifier>(identName), in CreateMemberExpressionFromIdentifier()
2105ir::MemberExpression::MemberExpressionKind::PROPERTY_ACCESS, in CreateMemberExpressionFromIdentifier()
2120 void Transformer::CheckTransformedAstNodes(const ir::AstNode *parent, bool *passed) const in CheckTransformedAstNodes()
2125 void Transformer::CheckTransformedAstNode(const ir::AstNode *parent, ir::AstNode *childNode, bool *… in CheckTransformedAstNode()
2135 childNode->AsMethodDefinition()->Kind() == ir::MethodDefinitionKind::CONSTRUCTOR) { in CheckTransformedAstNode()
2149 void Transformer::ResetParentScopeForAstNodes(const ir::AstNode *parent) const in ResetParentScopeForAstNodes()
2154 void Transformer::ResetParentScopeForAstNode(ir::AstNode *childNode) const in ResetParentScopeForAstNode()
2157 case ir::AstNodeType::SCRIPT_FUNCTION: { in ResetParentScopeForAstNode()
2163 case ir::AstNodeType::CATCH_CLAUSE: { in ResetParentScopeForAstNode()
2169 case ir::AstNodeType::CLASS_DEFINITION: { in ResetParentScopeForAstNode()
2175 case ir::AstNodeType::BLOCK_STATEMENT: { in ResetParentScopeForAstNode()
2181 case ir::AstNodeType::DO_WHILE_STATEMENT: { in ResetParentScopeForAstNode()
2187 case ir::AstNodeType::WHILE_STATEMENT: { in ResetParentScopeForAstNode()
2193 case ir::AstNodeType::FOR_IN_STATEMENT: { in ResetParentScopeForAstNode()
2199 case ir::AstNodeType::FOR_OF_STATEMENT: { in ResetParentScopeForAstNode()
2205 case ir::AstNodeType::FOR_UPDATE_STATEMENT: { in ResetParentScopeForAstNode()
2211 case ir::AstNodeType::SWITCH_STATEMENT: { in ResetParentScopeForAstNode()
2217 case ir::AstNodeType::TS_ENUM_DECLARATION: { in ResetParentScopeForAstNode()
2223 case ir::AstNodeType::TS_INTERFACE_DECLARATION: { in ResetParentScopeForAstNode()
2229 case ir::AstNodeType::TS_METHOD_SIGNATURE: { in ResetParentScopeForAstNode()
2235 case ir::AstNodeType::TS_MODULE_DECLARATION: { in ResetParentScopeForAstNode()
2241 case ir::AstNodeType::TS_SIGNATURE_DECLARATION: { in ResetParentScopeForAstNode()
2247 case ir::AstNodeType::TS_TYPE_PARAMETER_DECLARATION: { in ResetParentScopeForAstNode()
2253 case ir::AstNodeType::TS_CONSTRUCTOR_TYPE: { in ResetParentScopeForAstNode()
2259 case ir::AstNodeType::TS_FUNCTION_TYPE: { in ResetParentScopeForAstNode()
2272 bool Transformer::IsValueReference(ir::Identifier *node) in IsValueReference()