function getKind(node){var parent=node.parent;var kind="";if(node.type==="ArrowFunctionExpression"){return"arrowFunctions";}// Detects main kind.
if(parent.type==="Property"){if(parent.kind==="get"){return"getters";}if(parent.kind==="set"){return"setters";}kind=parent.method?"methods":"functions";}else if(parent.type==="MethodDefinition"){if(parent.kind==="get"){return"getters";}if(parent.kind==="set"){return"setters";}if(parent.kind==="constructor"){return"constructors";}kind="methods";}else{kind="functions";}// Detects prefix.
var prefix="";if(node.generator){prefix="generator";}else if(node.async){prefix="async";}else{return kind;}return prefix+kind[0].toUpperCase()+kind.slice(1);}//------------------------------------------------------------------------------
Gets the kind of a given function node.

@param {ASTNode} node - A function node to get. This is one of
     an ArrowFunctionExpression, a FunctionDeclaration, or a
     FunctionExpression.
@returns {string} The kind of the function. This is one of "functions",
     "arrowFunctions", "generatorFunctions", "asyncFunctions", "methods",
     "generatorMethods", "asyncMethods", "getters", "setters", and
     "constructors".