(pos, hasJSDoc, decorators, modifiers, kind)
| 36856 | return parseClassDeclarationOrExpression(pos, hasJSDoc, decorators, modifiers, 257 /* SyntaxKind.ClassDeclaration */); |
| 36857 | } |
| 36858 | function parseClassDeclarationOrExpression(pos, hasJSDoc, decorators, modifiers, kind) { |
| 36859 | var savedAwaitContext = inAwaitContext(); |
| 36860 | parseExpected(84 /* SyntaxKind.ClassKeyword */); |
| 36861 | // We don't parse the name here in await context, instead we will report a grammar error in the checker. |
| 36862 | var name = parseNameOfClassDeclarationOrExpression(); |
| 36863 | var typeParameters = parseTypeParameters(); |
| 36864 | if (ts.some(modifiers, ts.isExportModifier)) |
| 36865 | setAwaitContext(/*value*/ true); |
| 36866 | var heritageClauses = parseHeritageClauses(); |
| 36867 | var members; |
| 36868 | if (parseExpected(18 /* SyntaxKind.OpenBraceToken */)) { |
| 36869 | // ClassTail[Yield,Await] : (Modified) See 14.5 |
| 36870 | // ClassHeritage[?Yield,?Await]opt { ClassBody[?Yield,?Await]opt } |
| 36871 | members = parseClassMembers(); |
| 36872 | parseExpected(19 /* SyntaxKind.CloseBraceToken */); |
| 36873 | } |
| 36874 | else { |
| 36875 | members = createMissingList(); |
| 36876 | } |
| 36877 | setAwaitContext(savedAwaitContext); |
| 36878 | var node = kind === 257 /* SyntaxKind.ClassDeclaration */ |
| 36879 | ? factory.createClassDeclaration(decorators, modifiers, name, typeParameters, heritageClauses, members) |
| 36880 | : factory.createClassExpression(decorators, modifiers, name, typeParameters, heritageClauses, members); |
| 36881 | return withJSDoc(finishNode(node, pos), hasJSDoc); |
| 36882 | } |
| 36883 | function parseNameOfClassDeclarationOrExpression() { |
| 36884 | // implements is a future reserved word so |
| 36885 | // 'class implements' might mean either |
no test coverage detected
searching dependent graphs…