Lines Matching refs:ir
23 #include "ir/astNode.h"
24 #include "ir/base/classDefinition.h"
25 #include "ir/base/methodDefinition.h"
43 using ComputedPropertyMap = std::unordered_map<ir::Statement *, util::StringView>;
48 const ir::ClassDefinition *node;
55 ir::Expression *key;
57 ir::MethodDefinitionKind kind;
58 ir::ModifierFlags modifiers;
65 util::StringView aliasName, ir::ClassDefinition *node)
112 void PushVariablesToNearestStatements(ir::BlockStatement *ast);
114 ir::AstNode *VisitTSNodes(ir::AstNode *parent);
115 ir::UpdateNodes VisitTSNode(ir::AstNode *childNode);
116 ir::UpdateNodes VisitTsModuleDeclaration(ir::TSModuleDeclaration *childNode, bool isExport = false);
117 std::vector<ir::AstNode *> VisitExportNamedVariable(ir::Statement *decl);
118 ir::AstNode *VisitTsImportEqualsDeclaration(ir::TSImportEqualsDeclaration *node);
119 ir::UpdateNodes VisitClassDeclaration(ir::ClassDeclaration *node);
120 ir::UpdateNodes VisitClassExpression(ir::ClassExpression *node);
121 void VisitTSParameterProperty(ir::ClassDefinition *node);
122 void VisitAutoAccessorProperty(ir::ClassDefinition *node);
123 ir::Expression *CopyClassKeyExpression(ir::Expression *orginalExpr);
124 void ProcessAutoAccessorProperty(ir::ClassProperty *node, ir::ClassDefinition *classDefinition);
125 ir::MethodDefinition* AddMethodToClass(ir::ClassDefinition *classDefinition,
127 ArenaVector<ir::Expression *> ¶ms,
128 ArenaVector<ir::Statement *> &statements);
132 ir::MethodDefinition* AddGeneratedMethodToClass(ir::ClassDefinition *classDefinition,
135 void AddGeneratedSetOrGetMethodToClass(ir::ClassDefinition *classDefinition,
136 ir::ClassProperty *propertyNode,
138 std::vector<ir::ExpressionStatement *> VisitInstanceProperty(ir::ClassDefinition *node);
139 std::vector<ir::ExpressionStatement *> VisitStaticProperty(ir::ClassDefinition *node,
141 void VisitPrivateElement(ir::ClassDefinition *node);
142 void VisitComputedProperty(ir::ClassDefinition *node);
143 util::StringView CreateClassAliasName(ir::ClassDeclaration *node);
144 const ir::ClassDefinition *GetClassReference(util::StringView name) const;
145 size_t GetInsertPosForConstructor(ir::ClassDefinition *node);
146 void FindSuperCall(const ir::AstNode *parent, bool *hasSuperCall);
147 void FindSuperCallInCtorChildNode(const ir::AstNode *childNode, bool *hasSuperCall);
149 ir::VariableDeclaration *CreateVariableDeclarationWithIdentify(util::StringView name,
151 ir::AstNode *node,
153 ir::Expression *init = nullptr,
155 ir::CallExpression *CreateCallExpressionForTsModule(ir::TSModuleDeclaration *node,
158 ir::Expression *CreateTsModuleParam(util::StringView paramName, bool isExport);
159 ir::ExpressionStatement *CreateTsModuleAssignment(util::StringView name);
160 ir::Expression *CreateMemberExpressionFromQualified(ir::Expression *node);
161 std::vector<ir::AstNode *> CreateClassDecorators(ir::ClassDeclaration *node,
162 const std::vector<ir::AstNode *> &variableDeclarations);
163 std::vector<ir::AstNode *> CreateMethodDecorators(util::StringView className,
164 ir::MethodDefinition *node,
165 const std::vector<ir::AstNode *> &variableDeclarations,
167 std::vector<ir::AstNode *> CreatePropertyDecorators(util::StringView className,
168 ir::ClassProperty *node,
169 const std::vector<ir::AstNode *> &variableDeclarations,
171 ir::CallExpression *CreateGetOwnPropertyDescriptorCall(ir::Expression *target, ir::Expression *key);
172 ir::CallExpression *CreateDefinePropertyCall(ir::Expression *target, ir::Expression *key, ir::Expression *value);
173 ir::ClassStaticBlock *CreateClassStaticBlock(ir::ClassDeclaration *node, bool hasPrivateIdentifer);
174 bool HasPrivateIdentifierInDecorators(const ir::ClassDefinition *classDefinition);
175 void FindPrivateIdentifierInDecorator(const ir::AstNode *parent, bool *hasprivateIdentifier);
176 void FindPrivateIdentifierInChildNode(const ir::AstNode *childNode, bool *hasprivateIdentifier);
177 std::vector<ir::AstNode *> CreateVariableDeclarationForDecorators(ir::AstNode *node);
178 std::vector<ir::AstNode *> CreateParamDecorators(util::StringView className,
179 ir::MethodDefinition *node,
180 const std::vector<ir::AstNode *> &variableDeclarations,
183 ir::MemberExpression *CreateClassPrototype(util::StringView className);
184 ir::Expression *CreateDecoratorTarget(util::StringView className, bool isStatic);
185 ir::Identifier *CreateReferenceIdentifier(util::StringView name);
191 util::StringView GetNameFromModuleDeclaration(ir::TSModuleDeclaration *node) const;
192 util::StringView GetParamName(ir::AstNode *node, util::StringView name) const;
193 ir::Expression *GetClassMemberName(ir::Expression *key, bool isComputed,
194 ir::Statement *node, bool inDecorator = true);
196 binder::Variable *FindTSModuleVariable(const ir::Expression *node, const binder::Scope *scope, bool *isType) const;
198 void AddExportLocalEntryItem(util::StringView name, const ir::Identifier *identifier);
200 bool IsInstantiatedImportEquals(const ir::TSImportEqualsDeclaration *node, binder::Scope *scope) const;
201 void SetOriginalNode(ir::UpdateNodes res, ir::AstNode *originalNode) const;
203 ir::UpdateNodes VisitTsEnumDeclaration(ir::TSEnumDeclaration *node, bool isExport = false);
204 ir::AstNode *CreateVariableDeclarationForTSEnumOrTSModule(util::StringView name, ir::AstNode *node, bool isExport);
205 util::StringView GetNameFromTsEnumDeclaration(const ir::TSEnumDeclaration *node) const;
206 ir::CallExpression *CreateCallExpressionForTsEnum(ir::TSEnumDeclaration *node, util::StringView name,
208 ir::ExpressionStatement *CreateTsEnumMember(ir::TSEnumMember *node, ir::TSEnumMember *preNode,
210 ir::ExpressionStatement *CreateTsEnumMemberWithStringInit(ir::TSEnumMember *node,
213 ir::ExpressionStatement *CreateTsEnumMemberWithNumberInit(ir::TSEnumMember *node,
216 ir::ExpressionStatement *CreateTsEnumMemberWithoutInit(ir::TSEnumMember *node,
217 ir::TSEnumMember *preNode,
220 ArenaVector<ir::Expression *> CreateCallExpressionArguments(util::StringView name, bool isExport);
221 bool IsStringInitForEnumMember(const ir::Expression *expr, binder::Scope *scope) const;
222 bool IsStringForMemberExpression(const ir::MemberExpression *memberExpr, binder::Scope *scope) const;
224 ArenaVector<binder::Variable *> FindFrontIdentifierTSVariables(const ir::Identifier *ident,
232 bool VerifyMemberExpressionDeque(binder::Variable *currVar, ArenaDeque<const ir::Expression *> members) const;
233 util::StringView GetNameForMemberExpressionItem(const ir::Expression *node) const;
234 util::StringView GetNameFromEnumMember(const ir::TSEnumMember *node) const;
236 ir::MemberExpression *CreateMemberExpressionFromIdentifier(binder::Scope *scope, ir::Identifier *node);
238 void CheckTransformedAstNodes(const ir::AstNode *parent, bool *passed) const;
239 void CheckTransformedAstNode(const ir::AstNode *parent, ir::AstNode *childNode, bool *passed) const;
241 void ResetParentScope(ir::UpdateNodes res, binder::Scope *parentScope) const;
242 void ResetParentScopeForAstNodes(const ir::AstNode *parent, binder::Scope *parentScope) const;
243 void ResetParentScopeForAstNode(ir::AstNode *childNode, binder::Scope *parentScope) const;
246 ir::UpdateNodes VisitExportClassDeclaration(T *node);
251 bool IsValueReference(ir::Identifier *node);
348 void AddComputedPropertyBinding(ir::Statement *property, util::StringView name)
353 util::StringView GetComputedPropertyBinding(ir::Statement *property)
366 util::StringView GetClassAliasName(util::StringView originName, const ir::ClassDefinition *node) const