(pos, hasJSDoc, decorators, modifiers)
| 36553 | return withJSDoc(finishNode(node, pos), hasJSDoc); |
| 36554 | } |
| 36555 | function parseFunctionDeclaration(pos, hasJSDoc, decorators, modifiers) { |
| 36556 | var savedAwaitContext = inAwaitContext(); |
| 36557 | var modifierFlags = ts.modifiersToFlags(modifiers); |
| 36558 | parseExpected(98 /* SyntaxKind.FunctionKeyword */); |
| 36559 | var asteriskToken = parseOptionalToken(41 /* SyntaxKind.AsteriskToken */); |
| 36560 | // We don't parse the name here in await context, instead we will report a grammar error in the checker. |
| 36561 | var name = modifierFlags & 512 /* ModifierFlags.Default */ ? parseOptionalBindingIdentifier() : parseBindingIdentifier(); |
| 36562 | var isGenerator = asteriskToken ? 1 /* SignatureFlags.Yield */ : 0 /* SignatureFlags.None */; |
| 36563 | var isAsync = modifierFlags & 256 /* ModifierFlags.Async */ ? 2 /* SignatureFlags.Await */ : 0 /* SignatureFlags.None */; |
| 36564 | var typeParameters = parseTypeParameters(); |
| 36565 | if (modifierFlags & 1 /* ModifierFlags.Export */) |
| 36566 | setAwaitContext(/*value*/ true); |
| 36567 | var parameters = parseParameters(isGenerator | isAsync); |
| 36568 | var type = parseReturnType(58 /* SyntaxKind.ColonToken */, /*isType*/ false); |
| 36569 | var body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, ts.Diagnostics.or_expected); |
| 36570 | setAwaitContext(savedAwaitContext); |
| 36571 | var node = factory.createFunctionDeclaration(decorators, modifiers, asteriskToken, name, typeParameters, parameters, type, body); |
| 36572 | return withJSDoc(finishNode(node, pos), hasJSDoc); |
| 36573 | } |
| 36574 | function parseConstructorName() { |
| 36575 | if (token() === 134 /* SyntaxKind.ConstructorKeyword */) { |
| 36576 | return parseExpected(134 /* SyntaxKind.ConstructorKeyword */); |
no test coverage detected
searching dependent graphs…