mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-19 00:31:06 +00:00
16 lines
887 B
TypeScript
16 lines
887 B
TypeScript
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
|
|
export type FunctionDeclaration = ParseNode.FunctionExpression | ParseNode.GeneratorExpression | ParseNode.AsyncFunctionExpression | ParseNode.AsyncGeneratorExpression | ParseNode.ClassExpression | ParseNode.ArrowFunction | ParseNode.AsyncArrowFunction | ParseNode.ParenthesizedExpression & { readonly Expression: FunctionDeclaration };
|
|
export function IsFunctionDefinition(node: ParseNode): node is FunctionDeclaration {
|
|
if (node.type === 'ParenthesizedExpression') {
|
|
return IsFunctionDefinition(node.Expression);
|
|
}
|
|
return node.type === 'FunctionExpression'
|
|
|| node.type === 'GeneratorExpression'
|
|
|| node.type === 'AsyncGeneratorExpression'
|
|
|| node.type === 'AsyncFunctionExpression'
|
|
|| node.type === 'ClassExpression'
|
|
|| node.type === 'ArrowFunction'
|
|
|| node.type === 'AsyncArrowFunction';
|
|
}
|