Lines Matching full:ir
21 #include <ir/astNode.h>
22 #include <ir/base/methodDefinition.h>
46 namespace panda::es2panda::ir {
121 } // namespace panda::es2panda::ir
130 ir::MethodDefinitionKind methodKind {};
132 ir::ModifierFlags modifiers {};
147 …explicit ArrowFunctionDescriptor(ArenaVector<ir::Expression *> &&p, binder::FunctionParamScope *ps, in ArrowFunctionDescriptor()
153 ArenaVector<ir::Expression *> params;
207 ir::Expression* SetupChainExpr(ir::Expression *const top, lexer::SourcePosition startLoc); in DEFINE_BITOPS()
210 [[noreturn]] void ThrowParameterModifierError(ir::ModifierFlags status) const; in DEFINE_BITOPS()
241 void AddCommonjsParams(ArenaVector<ir::Expression *> ¶ms); in DEFINE_BITOPS()
242 void AddReflectApplyArgs(ArenaVector<ir::Expression *> &args, ir::FunctionExpression *wrapper); in DEFINE_BITOPS()
244 bool CheckTopStatementsForRequiredDeclare(const ArenaVector<ir::Statement *> &statements); in DEFINE_BITOPS()
251 static bool IsPropertyKeysAreSame(const ir::Expression *exp1, const ir::Expression *exp2); in DEFINE_BITOPS()
252 …static bool IsMemberExpressionsAreSame(const ir::MemberExpression *mExp1, const ir::MemberExpressi… in DEFINE_BITOPS()
253 …static bool IsMethodDefinitionsAreSame(const ir::MethodDefinition *property, ir::MethodDefinition … in DEFINE_BITOPS()
254 ir::TSTypeReference *ParseTsConstExpression(); in DEFINE_BITOPS()
255 ir::Expression *ParseTsTypeOperatorOrTypeReference(bool throwError); in DEFINE_BITOPS()
256 ir::Expression *ParseTsTypeOperator(); in DEFINE_BITOPS()
257 ir::Expression *ParseTsInferType(); in DEFINE_BITOPS()
258 ir::Expression *ParseTsIdentifierReference(TypeAnnotationParsingOptions options); in DEFINE_BITOPS()
259 ir::Expression *ParseTsBasicType(TypeAnnotationParsingOptions options); in DEFINE_BITOPS()
260 …ir::TSIntersectionType *ParseTsIntersectionType(ir::Expression *type, bool inUnion, bool restrictE… in DEFINE_BITOPS()
262 ir::TSUnionType *ParseTsUnionType(ir::Expression *type, bool restrictExtends, bool throwError); in DEFINE_BITOPS()
263 …ir::Expression *ParseTsParenthesizedOrFunctionType(ir::Expression *typeAnnotation, bool throwError… in DEFINE_BITOPS()
264 ir::TSArrayType *ParseTsArrayType(ir::Expression *elementType); in DEFINE_BITOPS()
266 …ir::Expression *ParseTsFunctionType(lexer::SourcePosition startLoc, bool isConstructionType, bool … in DEFINE_BITOPS()
268 ir::TSTypeParameter *ParseTsMappedTypeParameter(); in DEFINE_BITOPS()
269 ir::MappedOption ParseMappedOption(lexer::TokenType tokenType); in DEFINE_BITOPS()
270 ir::TSMappedType *ParseTsMappedType(); in DEFINE_BITOPS()
271 ir::TSTypePredicate *ParseTsTypePredicate(); in DEFINE_BITOPS()
273 …ir::Expression *ParseTsTypeLiteralOrInterfaceKey(bool *computed, bool *signature, bool *isIndexSig… in DEFINE_BITOPS()
274 void ValidateIndexSignatureParameterType(ir::Expression *typeAnnotation); in DEFINE_BITOPS()
275 ir::Expression *ParseTsConditionalType(ir::Expression *checkType, bool restrictExtends); in DEFINE_BITOPS()
276 ir::Expression *ParseTsTypeLiteralOrInterfaceMember(); in DEFINE_BITOPS()
277 ArenaVector<ir::Expression *> ParseTsTypeLiteralOrInterface(); in DEFINE_BITOPS()
278 ir::Expression *ParseTsThisType(bool throwError); in DEFINE_BITOPS()
279 ir::Expression *ParseTsIndexAccessType(ir::Expression *typeName, bool throwError); in DEFINE_BITOPS()
280 ir::Expression *ParseTsQualifiedReference(ir::Expression *typeName); in DEFINE_BITOPS()
281 …ir::Expression *ParseTsTypeReferenceOrQuery(TypeAnnotationParsingOptions options, bool parseQuery … in DEFINE_BITOPS()
283 void HandleRestType(ir::AstNodeType elementType, bool *hasRestType) const; in DEFINE_BITOPS()
284 … ir::Expression *ParseTsTupleElement(ir::TSTupleKind *kind, bool *seenOptional, bool *hasRestType); in DEFINE_BITOPS()
285 ir::TSTupleType *ParseTsTupleType(); in DEFINE_BITOPS()
286 … ir::TSImportType *ParseTsImportType(const lexer::SourcePosition &startLoc, bool isTypeof = false); in DEFINE_BITOPS()
287 ir::Expression *ParseTsTypeAnnotation(TypeAnnotationParsingOptions *options); in DEFINE_BITOPS()
288 ir::Expression *ParseTsTypeLiteralOrTsMappedType(ir::Expression *typeAnnotation); in DEFINE_BITOPS()
289 …ir::Expression *ParseTsTypeReferenceOrTsTypePredicate(ir::Expression *typeAnnotation, bool canBeTs… in DEFINE_BITOPS()
291 …ir::Expression *ParseTsThisTypeOrTsTypePredicate(ir::Expression *typeAnnotation, bool canBeTsTypeP… in DEFINE_BITOPS()
293 ir::Expression *ParseTsTemplateLiteralType(bool throwError); in DEFINE_BITOPS()
294 …ir::Expression *ParseTsTypeAnnotationElement(ir::Expression *typeAnnotation, TypeAnnotationParsing… in DEFINE_BITOPS()
295 ir::ModifierFlags ParseModifiers(); in DEFINE_BITOPS()
300 void ValidateClassMethodStart(ClassElmentDescriptor *desc, ir::Expression *typeAnnotation); in DEFINE_BITOPS()
301 ir::Expression *ParseClassKey(ClassElmentDescriptor *desc, bool isDeclare); in DEFINE_BITOPS()
303 …void ValidateClassSetter(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> &properti… in DEFINE_BITOPS()
304 ir::Expression *propName, ir::ScriptFunction *func, bool hasDecorator, in DEFINE_BITOPS()
306 …void ValidateClassGetter(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> &properti… in DEFINE_BITOPS()
307 ir::Expression *propName, ir::ScriptFunction *func, bool hasDecorator, in DEFINE_BITOPS()
309 …void ValidatePrivateProperty(ir::Statement *stmt, std::unordered_set<util::StringView> &privateNam… in DEFINE_BITOPS()
311 …ir::MethodDefinition *ParseClassMethod(ClassElmentDescriptor *desc, const ArenaVector<ir::Statemen… in DEFINE_BITOPS()
312 ir::Expression *propName, lexer::SourcePosition *propEnd, in DEFINE_BITOPS()
313 ArenaVector<ir::Decorator *> &&decorators, in DEFINE_BITOPS()
314 … ArenaVector<ir::Annotation *> &&annotations, bool isDeclare); in DEFINE_BITOPS()
315 ir::ClassStaticBlock *ParseStaticBlock(ClassElmentDescriptor *desc); in DEFINE_BITOPS()
316 …ir::Statement *ParseClassProperty(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> … in DEFINE_BITOPS()
317 ir::Expression *propName, ir::Expression *typeAnnotation, in DEFINE_BITOPS()
318 ArenaVector<ir::Decorator *> &&decorators, in DEFINE_BITOPS()
319 ArenaVector<ir::Annotation *> &&annotations, bool isDeclare, in DEFINE_BITOPS()
324 void CheckFieldKey(ir::Expression *propName); in DEFINE_BITOPS()
328 ir::Expression *ParseClassKeyAnnotation(); in DEFINE_BITOPS()
329 ir::Statement *ParseAnnotationUsage(ir::Expression *expr, lexer::SourcePosition start); in DEFINE_BITOPS()
330 ir::Statement *ParseDecoratorAndAnnotation(); in DEFINE_BITOPS()
331 …std::pair<ArenaVector<ir::Decorator *>, ArenaVector<ir::Annotation *>> ParseDecoratorsAndAnnotatio… in DEFINE_BITOPS()
332 ir::Statement *ParseClassElement(const ArenaVector<ir::Statement *> &properties, in DEFINE_BITOPS()
333 … ArenaVector<ir::TSIndexSignature *> *indexSignatures, bool hasSuperClass, in DEFINE_BITOPS()
336 ir::Identifier *GetKeyByFuncFlag(ir::ScriptFunctionFlags funcFlag); in DEFINE_BITOPS()
337 ir::MethodDefinition *CreateImplicitMethod(ir::Expression *superClass, bool hasSuperClass, in DEFINE_BITOPS()
338 … ir::ScriptFunctionFlags funcFlag, bool isDeclare = false); in DEFINE_BITOPS()
339 …ir::MethodDefinition *CheckClassMethodOverload(ir::Statement *property, ir::MethodDefinition **cto… in DEFINE_BITOPS()
340 … lexer::SourcePosition errorInfo, ir::MethodDefinition *lastOverload, in DEFINE_BITOPS()
342 …ir::Identifier *SetIdentNodeInClassDefinition(bool isDeclare, binder::ConstDecl **decl, bool isAnn… in DEFINE_BITOPS()
343 …ir::ClassDefinition *ParseClassDefinition(bool isDeclaration, bool idRequired = true, bool isDecla… in DEFINE_BITOPS()
345 ir::Expression *ParseSuperClass(bool isDeclare, bool *hasSuperClass, bool *isExtendsFromNull); in DEFINE_BITOPS()
346 ArenaVector<ir::TSClassImplements *> ParseTSClassImplements(bool isDeclare); in DEFINE_BITOPS()
347 void ValidateClassConstructor(const ir::MethodDefinition *ctor, in DEFINE_BITOPS()
348 const ArenaVector<ir::Statement *> &properties, in DEFINE_BITOPS()
351 void FindSuperCall(const ir::AstNode *parent, bool *hasSuperCall); in DEFINE_BITOPS()
352 void FindSuperCallInCtorChildNode(const ir::AstNode *childNode, bool *hasSuperCall); in DEFINE_BITOPS()
353 …bool SuperCallShouldBeRootLevel(const ir::MethodDefinition *ctor, const ArenaVector<ir::Statement … in DEFINE_BITOPS()
354 … void ValidateSuperCallLocation(const ir::MethodDefinition *ctor, bool superCallShouldBeRootLevel); in DEFINE_BITOPS()
355 void FindThisOrSuperReference(const ir::AstNode *parent, bool *hasThisOrSuperReference); in DEFINE_BITOPS()
356 …void FindThisOrSuperReferenceInChildNode(const ir::AstNode *childNode, bool *hasThisOrSuperReferen… in DEFINE_BITOPS()
359 ir::Property *ParseShorthandProperty(const lexer::LexerPosition *startPos); in DEFINE_BITOPS()
361 …bool ParsePropertyModifiers(ExpressionParseFlags flags, ir::PropertyKind *propertyKind, ParserStat… in DEFINE_BITOPS()
362 ir::Expression *ParsePropertyKey(ExpressionParseFlags flags); in DEFINE_BITOPS()
363 …ir::Expression *ParsePropertyValue(const ir::PropertyKind *propertyKind, const ParserStatus *metho… in DEFINE_BITOPS()
367 …ir::Expression *ParsePostfixTypeOrHigher(ir::Expression *typeAnnotation, TypeAnnotationParsingOpti… in DEFINE_BITOPS()
368 ir::Expression *TryParseConstraintOfInferType(TypeAnnotationParsingOptions *options); in DEFINE_BITOPS()
369 …ir::Expression *ParsePropertyDefinition(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS… in DEFINE_BITOPS()
372 …ir::TSTypeParameter *ParseTsTypeParameter(bool throwError, bool addBinding = false, bool isAllowIn… in DEFINE_BITOPS()
373 …ir::TSTypeParameterDeclaration *ParseTsTypeParameterDeclaration(bool throwError = true, bool isAll… in DEFINE_BITOPS()
374 ir::TSTypeParameterInstantiation *ParseTsTypeParameterInstantiation(bool throwError = true); in DEFINE_BITOPS()
375 ir::ScriptFunction *ParseFunction(ParserStatus newStatus = ParserStatus::NO_OPTS, in DEFINE_BITOPS()
377 ArenaVector<ir::ParamDecorators> *paramDecorators = nullptr); in DEFINE_BITOPS()
378 …void ValidateFunctionParam(const ArenaVector<ir::Expression *> ¶ms, const ir::Expression *para… in DEFINE_BITOPS()
380 void ValidateTsFunctionOverloadParams(const ArenaVector<ir::Expression *> ¶ms); in DEFINE_BITOPS()
381 …void CheckAccessorPair(const ArenaVector<ir::Statement *> &properties, const ir::Expression *propN… in DEFINE_BITOPS()
382 … ir::MethodDefinitionKind methodKind, ir::ModifierFlags access, bool hasDecorator, in DEFINE_BITOPS()
384 ArenaVector<ir::Expression *> ParseFunctionParams(bool isDeclare = false, in DEFINE_BITOPS()
385 … ArenaVector<ir::ParamDecorators> *paramDecorators = nullptr); in DEFINE_BITOPS()
386 … ir::SpreadElement *ParseSpreadElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); in DEFINE_BITOPS()
387 …ir::TSParameterProperty *CreateTsParameterProperty(ir::Expression *parameter, ir::ModifierFlags mo… in DEFINE_BITOPS()
388 ir::Expression *ParseFunctionParameter(bool isDeclare); in DEFINE_BITOPS()
389 …void CreateTSVariableForProperty(ir::AstNode *node, const ir::Expression *key, binder::VariableFla… in DEFINE_BITOPS()
390 …void CheckObjectTypeForDuplicatedProperties(ir::Expression *member, ArenaVector<ir::Expression *> … in DEFINE_BITOPS()
394 ir::Expression *ParseExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); in DEFINE_BITOPS()
395 ir::ArrowFunctionExpression *ParseTsGenericArrowFunction(); in DEFINE_BITOPS()
396 …ir::TSTypeAssertion *ParseTsTypeAssertion(ExpressionParseFlags flags = ExpressionParseFlags::NO_OP… in DEFINE_BITOPS()
397 ir::TSAsExpression *ParseTsAsExpression(ir::Expression *expr, ExpressionParseFlags flags); in DEFINE_BITOPS()
398 ir::TSSatisfiesExpression *ParseTsSatisfiesExpression(ir::Expression *expr); in DEFINE_BITOPS()
399 … ir::Expression *ParseArrayExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); in DEFINE_BITOPS()
400 ir::YieldExpression *ParseYieldExpression(); in DEFINE_BITOPS()
401 …ir::Expression *ParsePotentialExpressionSequence(ir::Expression *expr, ExpressionParseFlags flags); in DEFINE_BITOPS()
402 ParserStatus ValidateArrowParameter(ir::Expression *expr); in DEFINE_BITOPS()
404 ArrowFunctionDescriptor ConvertToArrowParameter(ir::Expression *expr, bool isAsync, in DEFINE_BITOPS()
406 …ir::ArrowFunctionExpression *ParseArrowFunctionExpressionBody(ArrowFunctionContext *arrowFunctionC… in DEFINE_BITOPS()
409 … ir::TSTypeParameterDeclaration *typeParamDecl, in DEFINE_BITOPS()
410 … ir::Expression *returnTypeAnnotation); in DEFINE_BITOPS()
411 ir::ArrowFunctionExpression *ParseArrowFunctionExpression(ir::Expression *expr, in DEFINE_BITOPS()
412 … ir::TSTypeParameterDeclaration *typeParamDecl, in DEFINE_BITOPS()
413 … ir::Expression *returnTypeAnnotation, bool isAsync); in DEFINE_BITOPS()
414 ir::Expression *ParseCoverParenthesizedExpressionAndArrowParameterList(); in DEFINE_BITOPS()
415 ir::Expression *ParseKeywordExpression(); in DEFINE_BITOPS()
416 ir::Expression *ParseBinaryExpression(ir::Expression *left); in DEFINE_BITOPS()
417 …ir::CallExpression *ParseCallExpression(ir::Expression *callee, bool isOptionalChain = false, bool… in DEFINE_BITOPS()
418 ir::ArrowFunctionExpression *ParsePotentialArrowExpression(ir::Expression **returnExpression, in DEFINE_BITOPS()
422 void ValidateUpdateExpression(ir::Expression *returnExpression, bool isChainExpression); in DEFINE_BITOPS()
424 …bool ParsePotentialTsGenericFunctionCall(ir::Expression **returnExpression, const lexer::SourcePos… in DEFINE_BITOPS()
426 …ir::Expression *ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePosition star… in DEFINE_BITOPS()
428 ir::Expression *ParseMemberExpression(bool ignoreCallExpression = false, in DEFINE_BITOPS()
430 …ir::ObjectExpression *ParseObjectExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_… in DEFINE_BITOPS()
431 …ir::SequenceExpression *ParseSequenceExpression(ir::Expression *startExpr, bool acceptRest = false, in DEFINE_BITOPS()
433 …ir::Expression *ParseUnaryOrPrefixUpdateExpression(ExpressionParseFlags flags = ExpressionParseFla… in DEFINE_BITOPS()
434 …ir::Expression *ParseLeftHandSideExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_… in DEFINE_BITOPS()
435 ir::MetaProperty *ParsePotentialNewTarget(); in DEFINE_BITOPS()
436 void CheckInvalidDestructuring(const ir::AstNode *object) const; in DEFINE_BITOPS()
437 void ValidateParenthesizedExpression(ir::Expression *lhsExpression); in DEFINE_BITOPS()
438 ir::Expression *ParseAssignmentExpression(ir::Expression *lhsExpression, in DEFINE_BITOPS()
440 …ir::Expression *ParsePrimaryExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS); in DEFINE_BITOPS()
441 ir::NewExpression *ParseNewExpression(); in DEFINE_BITOPS()
442 void ParsePotentialTsFunctionParameter(ExpressionParseFlags flags, ir::Expression *returnNode, in DEFINE_BITOPS()
444 ir::Expression *ParsePatternElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS, in DEFINE_BITOPS()
446 ir::TemplateLiteral *ParseTemplateLiteral(bool isTaggedTemplate = false); in DEFINE_BITOPS()
447 ir::Expression *ParseImportExpression(); in DEFINE_BITOPS()
448 ir::ObjectExpression *ParseImportAssertionForDynamicImport(); in DEFINE_BITOPS()
449 void ValidateImportAssertionForDynamicImport(ir::ObjectExpression *importAssertion); in DEFINE_BITOPS()
450 ir::AssertClause *ParseAssertClause(); in DEFINE_BITOPS()
451 ir::AssertEntry *ParseAssertEntry(); in DEFINE_BITOPS()
452 ir::FunctionExpression *ParseFunctionExpression(ParserStatus newStatus = ParserStatus::NO_OPTS); in DEFINE_BITOPS()
453 ir::Expression *ParseOptionalChain(ir::Expression *leftSideExpr); in DEFINE_BITOPS()
454 ir::Expression *ParseOptionalMemberExpression(ir::Expression *object); in DEFINE_BITOPS()
455 void ParseNameSpaceImport(ArenaVector<ir::AstNode *> *specifiers, bool isType); in DEFINE_BITOPS()
456 ir::Identifier *ParseNamedImport(const lexer::Token &importedToken); in DEFINE_BITOPS()
462 ir::StringLiteral *ParseFromClause(bool requireFrom = true); in DEFINE_BITOPS()
463 … void ParseNamedImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool isType, bool isLazy); in DEFINE_BITOPS()
465 ir::Expression *ParseModuleReference(); in DEFINE_BITOPS()
466 …ir::AstNode *ParseImportDefaultSpecifier(ArenaVector<ir::AstNode *> *specifiers, bool isType, bool… in DEFINE_BITOPS()
467 …ir::AstNode *ParseImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool isType, bool isLaz… in DEFINE_BITOPS()
468 void ValidateAssignmentTarget(ExpressionParseFlags flags, ir::Expression *node); in DEFINE_BITOPS()
469 void ValidateLvalueAssignmentTarget(ir::Expression *node) const; in DEFINE_BITOPS()
470 void ValidateArrowParameterBindings(const ir::Expression *node); in DEFINE_BITOPS()
472 … ir::ExportDefaultDeclaration *ParseExportDefaultDeclaration(const lexer::SourcePosition &startLoc, in DEFINE_BITOPS()
473 … ArenaVector<ir::Decorator *> decorators, in DEFINE_BITOPS()
474 … ArenaVector<ir::Annotation *> annotations, in DEFINE_BITOPS()
476 ir::ExportAllDeclaration *ParseExportAllDeclaration(const lexer::SourcePosition &startLoc); in DEFINE_BITOPS()
477 …ir::ExportNamedDeclaration *ParseExportNamedSpecifiers(const lexer::SourcePosition &startLoc, bool… in DEFINE_BITOPS()
478 ir::ExportNamedDeclaration *ParseNamedExportDeclaration(const lexer::SourcePosition &startLoc, in DEFINE_BITOPS()
479 … ArenaVector<ir::Decorator *> &&decorators, in DEFINE_BITOPS()
480 … ArenaVector<ir::Annotation *> &&annotations); in DEFINE_BITOPS()
481 ir::Identifier *ParseNamedExport(const lexer::Token &exportedToken); in DEFINE_BITOPS()
483 ir::PrivateIdentifier *ParsePrivateIdentifier(); in DEFINE_BITOPS()
487 ir::Expression *DoOutsideOfDisallowConditinalTypesContext(Function func, Args &&... args); in DEFINE_BITOPS()
491 ir::Expression *DoInsideOfDisallowConditinalTypesContext(Function func, Args &&... args); in DEFINE_BITOPS()
499 void ConsumeSemicolon(ir::Statement *statement); in DEFINE_BITOPS()
502 void CheckLabelledFunction(const ir::Statement *node); in DEFINE_BITOPS()
507 …void AddImportEntryItem(const ir::StringLiteral *source, const ArenaVector<ir::AstNode *> *specifi… in DEFINE_BITOPS()
509 …void AddImportEntryItemForImportSpecifier(const ir::StringLiteral *source, const ir::AstNode *spec… in DEFINE_BITOPS()
511 …void AddImportEntryItemForImportDefaultSpecifier(const ir::StringLiteral *source, const ir::AstNod… in DEFINE_BITOPS()
513 void AddImportEntryItemForNamespaceSpecifier(const ir::StringLiteral *source, in DEFINE_BITOPS()
514 const ir::AstNode *specifier, bool isType); in DEFINE_BITOPS()
515 void AddExportNamedEntryItem(const ArenaVector<ir::ExportSpecifier *> &specifiers, in DEFINE_BITOPS()
516 const ir::StringLiteral *source, bool isType); in DEFINE_BITOPS()
517 …void AddExportStarEntryItem(const lexer::SourcePosition &startLoc, const ir::StringLiteral *source, in DEFINE_BITOPS()
518 const ir::Identifier *exported); in DEFINE_BITOPS()
519 void AddExportDefaultEntryItem(const ir::AstNode *declNode); in DEFINE_BITOPS()
520 void AddExportLocalEntryItem(const ir::Statement *declNode, bool isTsModule); in DEFINE_BITOPS()
521 void AddTsTypeExportLocalEntryItem(const ir::Statement *declNode, bool isTsModule, in DEFINE_BITOPS()
526 bool ParseDirective(ArenaVector<ir::Statement *> *statements); in DEFINE_BITOPS()
527 void ParseDirectivePrologue(ArenaVector<ir::Statement *> *statements); in DEFINE_BITOPS()
528 …ArenaVector<ir::Statement *> ParseStatementList(StatementParsingFlags flags = StatementParsingFlag… in DEFINE_BITOPS()
530 ir::Statement *ParseStatement(StatementParsingFlags flags = StatementParsingFlags::NONE); in DEFINE_BITOPS()
531 ir::TSModuleDeclaration *ParseTsModuleDeclaration(bool isDeclare, bool isExport = false); in DEFINE_BITOPS()
532 …ir::TSModuleDeclaration *ParseTsAmbientExternalModuleDeclaration(const lexer::SourcePosition &star… in DEFINE_BITOPS()
534 … ir::TSModuleDeclaration *ParseTsModuleOrNamespaceDelaration(const lexer::SourcePosition &startLoc, in DEFINE_BITOPS()
537 bool IsInstantiatedInTsModuleBlock(ir::Statement **body); in DEFINE_BITOPS()
539 …ir::TSImportEqualsDeclaration *ParseTsImportEqualsDeclaration(const lexer::SourcePosition &startLo… in DEFINE_BITOPS()
541 …ir::TSNamespaceExportDeclaration *ParseTsNamespaceExportDeclaration(const lexer::SourcePosition &s… in DEFINE_BITOPS()
542 ir::TSModuleBlock *ParseTsModuleBlock(); in DEFINE_BITOPS()
543 ir::BlockStatement *ParseFunctionBody(); in DEFINE_BITOPS()
544 ir::BlockStatement *ParseBlockStatement(); in DEFINE_BITOPS()
545 ir::BlockStatement *ParseBlockStatement(binder::Scope *scope); in DEFINE_BITOPS()
546 ir::EmptyStatement *ParseEmptyStatement(); in DEFINE_BITOPS()
547 ir::DebuggerStatement *ParseDebuggerStatement(); in DEFINE_BITOPS()
548 ir::BreakStatement *ParseBreakStatement(); in DEFINE_BITOPS()
549 ir::ContinueStatement *ParseContinueStatement(); in DEFINE_BITOPS()
550 ir::DoWhileStatement *ParseDoWhileStatement(); in DEFINE_BITOPS()
551 ir::Statement *ParsePotentialExpressionStatement(StatementParsingFlags flags, bool isDeclare); in DEFINE_BITOPS()
552 ir::Statement *ParseVarStatement(bool isDeclare); in DEFINE_BITOPS()
553 ir::Statement *ParseLetStatement(StatementParsingFlags flags, bool isDeclare); in DEFINE_BITOPS()
554 ir::Statement *ParseConstStatement(StatementParsingFlags flags, bool isDeclare); in DEFINE_BITOPS()
555 …ir::Statement *ParseExpressionStatement(StatementParsingFlags flags = StatementParsingFlags::NONE); in DEFINE_BITOPS()
556 ir::Statement *ParseFunctionStatement(StatementParsingFlags flags, bool isDeclare); in DEFINE_BITOPS()
557 ir::FunctionDeclaration *ParseFunctionDeclaration(bool canBeAnonymous = false, in DEFINE_BITOPS()
560 void AddFunctionToBinder(ir::ScriptFunction *func, ParserStatus newStatus); in DEFINE_BITOPS()
561 void CheckOptionalBindingPatternParameter(ir::ScriptFunction *func) const; in DEFINE_BITOPS()
562 …ir::Statement *ParseExportDeclaration(StatementParsingFlags flags, ArenaVector<ir::Decorator *> &&… in DEFINE_BITOPS()
563 ArenaVector<ir::Annotation *> &&annotations); in DEFINE_BITOPS()
564 std::tuple<ForStatementKind, ir::AstNode *, ir::Expression *, ir::Expression *> ParseForInOf( in DEFINE_BITOPS()
565 ir::Expression *leftNode, ExpressionParseFlags exprFlags, bool isAwait); in DEFINE_BITOPS()
566 …std::tuple<ForStatementKind, ir::Expression *, ir::Expression *> ParseForInOf(ir::AstNode *initNod… in DEFINE_BITOPS()
569 std::tuple<ir::Expression *, ir::Expression *> ParseForUpdate(bool isAwait); in DEFINE_BITOPS()
570 ir::Statement *ParseForStatement(); in DEFINE_BITOPS()
571 ir::IfStatement *ParseIfStatement(); in DEFINE_BITOPS()
573 ir::Statement *ParseImportDeclaration(StatementParsingFlags flags); in DEFINE_BITOPS()
574 ir::LabelledStatement *ParseLabelledStatement(const lexer::LexerPosition &pos); in DEFINE_BITOPS()
575 ir::ReturnStatement *ParseReturnStatement(); in DEFINE_BITOPS()
576 ir::ClassDeclaration *ParseClassStatement(StatementParsingFlags flags, bool isDeclare, in DEFINE_BITOPS()
577 ArenaVector<ir::Decorator *> &&decorators, in DEFINE_BITOPS()
578 … ArenaVector<ir::Annotation *> &&annotations, bool isAbstract = false); in DEFINE_BITOPS()
579 …ir::ClassDeclaration *ParseClassDeclaration(bool idRequired, ArenaVector<ir::Decorator *> &&decora… in DEFINE_BITOPS()
580 … ArenaVector<ir::Annotation *> &&annotations, bool isDeclare = false, in DEFINE_BITOPS()
583 ir::TSTypeAliasDeclaration *ParseTsTypeAliasDeclaration(bool isDeclare); in DEFINE_BITOPS()
584 …ir::Expression *ParseEnumComputedPropertyKey(binder::EnumDecl *&decl, const lexer::SourcePosition … in DEFINE_BITOPS()
586 …ir::TSEnumDeclaration *ParseEnumMembers(ir::Identifier *key, const lexer::SourcePosition &enumStar… in DEFINE_BITOPS()
588 …ir::TSEnumDeclaration *ParseEnumDeclaration(bool isExport = false, bool isDeclare = false, bool is… in DEFINE_BITOPS()
589 ir::TSInterfaceDeclaration *ParseTsInterfaceDeclaration(bool isDeclare); in DEFINE_BITOPS()
591 ArenaVector<ir::TSInterfaceHeritage *> ParseTsInterfaceExtends(); in DEFINE_BITOPS()
592 ir::SwitchCaseStatement *ParseSwitchCaseStatement(bool *seenDefault); in DEFINE_BITOPS()
593 ir::SwitchStatement *ParseSwitchStatement(); in DEFINE_BITOPS()
594 ir::ThrowStatement *ParseThrowStatement(); in DEFINE_BITOPS()
595 ir::Expression *ParseCatchParam(); in DEFINE_BITOPS()
596 ir::CatchClause *ParseCatchClause(); in DEFINE_BITOPS()
597 ir::TryStatement *ParseTryStatement(); in DEFINE_BITOPS()
599 …ir::VariableDeclarator *ParseVariableDeclaratorInitializer(ir::Expression *init, VariableParsingFl… in DEFINE_BITOPS()
601 ir::VariableDeclarator *ParseVariableDeclarator(VariableParsingFlags flags, bool isDeclare); in DEFINE_BITOPS()
602 …ir::Expression *ParseVariableDeclaratorKey(VariableParsingFlags flags, bool isDeclare, bool *isDef… in DEFINE_BITOPS()
603 …ir::Statement *ParseVariableDeclaration(VariableParsingFlags flags = VariableParsingFlags::NO_OPTS, in DEFINE_BITOPS()
605 ir::WhileStatement *ParseWhileStatement(); in DEFINE_BITOPS()
606 ir::VariableDeclaration *ParseContextualLet(VariableParsingFlags flags, in DEFINE_BITOPS()
771 flags_ |= ir::ScriptFunctionFlags::GENERATOR; in FunctionContext()
775 flags_ |= ir::ScriptFunctionFlags::ASYNC; in FunctionContext()
779 flags_ |= ir::ScriptFunctionFlags::CONSTRUCTOR; in FunctionContext()
783 ir::ScriptFunctionFlags Flags() const in Flags()
788 void AddFlag(ir::ScriptFunctionFlags flags) in AddFlag()
798 ir::ScriptFunctionFlags flags_ {ir::ScriptFunctionFlags::NONE};
807 AddFlag(ir::ScriptFunctionFlags::ASYNC); in ArrowFunctionContext()
810 AddFlag(ir::ScriptFunctionFlags::ARROW); in ArrowFunctionContext()