MCPcopy Index your code
hub / github.com/nodejs/node / parseFunctionDeclaration

Function parseFunctionDeclaration

test/fixtures/snapshot/typescript.js:36555–36573  ·  view source on GitHub ↗
(pos, hasJSDoc, decorators, modifiers)

Source from the content-addressed store, hash-verified

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 */);

Callers 2

parseStatementFunction · 0.85
parseDeclarationWorkerFunction · 0.85

Calls 12

inAwaitContextFunction · 0.85
parseExpectedFunction · 0.85
parseOptionalTokenFunction · 0.85
parseBindingIdentifierFunction · 0.85
parseTypeParametersFunction · 0.85
setAwaitContextFunction · 0.85
parseParametersFunction · 0.85
parseReturnTypeFunction · 0.85
withJSDocFunction · 0.85
finishNodeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…