| 
						 | 
						- /**
 -  * @typedef {{ readonly [type: string]: ReadonlyArray<string> }} VisitorKeys
 -  */
 - 
 - /**
 -  * @type {VisitorKeys}
 -  */
 - const KEYS = {
 -     ArrayExpression: [
 -         "elements"
 -     ],
 -     ArrayPattern: [
 -         "elements"
 -     ],
 -     ArrowFunctionExpression: [
 -         "params",
 -         "body"
 -     ],
 -     AssignmentExpression: [
 -         "left",
 -         "right"
 -     ],
 -     AssignmentPattern: [
 -         "left",
 -         "right"
 -     ],
 -     AwaitExpression: [
 -         "argument"
 -     ],
 -     BinaryExpression: [
 -         "left",
 -         "right"
 -     ],
 -     BlockStatement: [
 -         "body"
 -     ],
 -     BreakStatement: [
 -         "label"
 -     ],
 -     CallExpression: [
 -         "callee",
 -         "arguments"
 -     ],
 -     CatchClause: [
 -         "param",
 -         "body"
 -     ],
 -     ChainExpression: [
 -         "expression"
 -     ],
 -     ClassBody: [
 -         "body"
 -     ],
 -     ClassDeclaration: [
 -         "id",
 -         "superClass",
 -         "body"
 -     ],
 -     ClassExpression: [
 -         "id",
 -         "superClass",
 -         "body"
 -     ],
 -     ConditionalExpression: [
 -         "test",
 -         "consequent",
 -         "alternate"
 -     ],
 -     ContinueStatement: [
 -         "label"
 -     ],
 -     DebuggerStatement: [],
 -     DoWhileStatement: [
 -         "body",
 -         "test"
 -     ],
 -     EmptyStatement: [],
 -     ExperimentalRestProperty: [
 -         "argument"
 -     ],
 -     ExperimentalSpreadProperty: [
 -         "argument"
 -     ],
 -     ExportAllDeclaration: [
 -         "exported",
 -         "source"
 -     ],
 -     ExportDefaultDeclaration: [
 -         "declaration"
 -     ],
 -     ExportNamedDeclaration: [
 -         "declaration",
 -         "specifiers",
 -         "source"
 -     ],
 -     ExportSpecifier: [
 -         "exported",
 -         "local"
 -     ],
 -     ExpressionStatement: [
 -         "expression"
 -     ],
 -     ForInStatement: [
 -         "left",
 -         "right",
 -         "body"
 -     ],
 -     ForOfStatement: [
 -         "left",
 -         "right",
 -         "body"
 -     ],
 -     ForStatement: [
 -         "init",
 -         "test",
 -         "update",
 -         "body"
 -     ],
 -     FunctionDeclaration: [
 -         "id",
 -         "params",
 -         "body"
 -     ],
 -     FunctionExpression: [
 -         "id",
 -         "params",
 -         "body"
 -     ],
 -     Identifier: [],
 -     IfStatement: [
 -         "test",
 -         "consequent",
 -         "alternate"
 -     ],
 -     ImportDeclaration: [
 -         "specifiers",
 -         "source"
 -     ],
 -     ImportDefaultSpecifier: [
 -         "local"
 -     ],
 -     ImportExpression: [
 -         "source"
 -     ],
 -     ImportNamespaceSpecifier: [
 -         "local"
 -     ],
 -     ImportSpecifier: [
 -         "imported",
 -         "local"
 -     ],
 -     JSXAttribute: [
 -         "name",
 -         "value"
 -     ],
 -     JSXClosingElement: [
 -         "name"
 -     ],
 -     JSXClosingFragment: [],
 -     JSXElement: [
 -         "openingElement",
 -         "children",
 -         "closingElement"
 -     ],
 -     JSXEmptyExpression: [],
 -     JSXExpressionContainer: [
 -         "expression"
 -     ],
 -     JSXFragment: [
 -         "openingFragment",
 -         "children",
 -         "closingFragment"
 -     ],
 -     JSXIdentifier: [],
 -     JSXMemberExpression: [
 -         "object",
 -         "property"
 -     ],
 -     JSXNamespacedName: [
 -         "namespace",
 -         "name"
 -     ],
 -     JSXOpeningElement: [
 -         "name",
 -         "attributes"
 -     ],
 -     JSXOpeningFragment: [],
 -     JSXSpreadAttribute: [
 -         "argument"
 -     ],
 -     JSXSpreadChild: [
 -         "expression"
 -     ],
 -     JSXText: [],
 -     LabeledStatement: [
 -         "label",
 -         "body"
 -     ],
 -     Literal: [],
 -     LogicalExpression: [
 -         "left",
 -         "right"
 -     ],
 -     MemberExpression: [
 -         "object",
 -         "property"
 -     ],
 -     MetaProperty: [
 -         "meta",
 -         "property"
 -     ],
 -     MethodDefinition: [
 -         "key",
 -         "value"
 -     ],
 -     NewExpression: [
 -         "callee",
 -         "arguments"
 -     ],
 -     ObjectExpression: [
 -         "properties"
 -     ],
 -     ObjectPattern: [
 -         "properties"
 -     ],
 -     PrivateIdentifier: [],
 -     Program: [
 -         "body"
 -     ],
 -     Property: [
 -         "key",
 -         "value"
 -     ],
 -     PropertyDefinition: [
 -         "key",
 -         "value"
 -     ],
 -     RestElement: [
 -         "argument"
 -     ],
 -     ReturnStatement: [
 -         "argument"
 -     ],
 -     SequenceExpression: [
 -         "expressions"
 -     ],
 -     SpreadElement: [
 -         "argument"
 -     ],
 -     StaticBlock: [
 -         "body"
 -     ],
 -     Super: [],
 -     SwitchCase: [
 -         "test",
 -         "consequent"
 -     ],
 -     SwitchStatement: [
 -         "discriminant",
 -         "cases"
 -     ],
 -     TaggedTemplateExpression: [
 -         "tag",
 -         "quasi"
 -     ],
 -     TemplateElement: [],
 -     TemplateLiteral: [
 -         "quasis",
 -         "expressions"
 -     ],
 -     ThisExpression: [],
 -     ThrowStatement: [
 -         "argument"
 -     ],
 -     TryStatement: [
 -         "block",
 -         "handler",
 -         "finalizer"
 -     ],
 -     UnaryExpression: [
 -         "argument"
 -     ],
 -     UpdateExpression: [
 -         "argument"
 -     ],
 -     VariableDeclaration: [
 -         "declarations"
 -     ],
 -     VariableDeclarator: [
 -         "id",
 -         "init"
 -     ],
 -     WhileStatement: [
 -         "test",
 -         "body"
 -     ],
 -     WithStatement: [
 -         "object",
 -         "body"
 -     ],
 -     YieldExpression: [
 -         "argument"
 -     ]
 - };
 - 
 - // Types.
 - const NODE_TYPES = Object.keys(KEYS);
 - 
 - // Freeze the keys.
 - for (const type of NODE_TYPES) {
 -     Object.freeze(KEYS[type]);
 - }
 - Object.freeze(KEYS);
 - 
 - export default KEYS;
 
 
  |