| /** |
| * @fileoverview The visitor keys for the node types Espree supports |
| * @author Nicholas C. Zakas |
| * |
| * This file contains code from estraverse-fb. |
| * |
| * The MIT license. Copyright (c) 2014 Ingvar Stepanyan |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a copy |
| * of this software and associated documentation files (the "Software"), to deal |
| * in the Software without restriction, including without limitation the rights |
| * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| * copies of the Software, and to permit persons to whom the Software is |
| * furnished to do so, subject to the following conditions: |
| * |
| * The above copyright notice and this permission notice shall be included in all |
| * copies or substantial portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| * SOFTWARE. |
| */ |
| |
| "use strict"; |
| |
| //------------------------------------------------------------------------------ |
| // Requirements |
| //------------------------------------------------------------------------------ |
| |
| // None! |
| |
| //------------------------------------------------------------------------------ |
| // Public |
| //------------------------------------------------------------------------------ |
| |
| module.exports = { |
| |
| // ECMAScript |
| AssignmentExpression: ["left", "right"], |
| AssignmentPattern: ["left", "right"], |
| ArrayExpression: ["elements"], |
| ArrayPattern: ["elements"], |
| ArrowFunctionExpression: ["params", "body"], |
| BlockStatement: ["body"], |
| BinaryExpression: ["left", "right"], |
| BreakStatement: ["label"], |
| CallExpression: ["callee", "arguments"], |
| CatchClause: ["param", "body"], |
| ClassBody: ["body"], |
| ClassDeclaration: ["id", "superClass", "body"], |
| ClassExpression: ["id", "superClass", "body"], |
| ConditionalExpression: ["test", "consequent", "alternate"], |
| ContinueStatement: ["label"], |
| DebuggerStatement: [], |
| DirectiveStatement: [], |
| DoWhileStatement: ["body", "test"], |
| EmptyStatement: [], |
| ExportAllDeclaration: ["source"], |
| ExportDefaultDeclaration: ["declaration"], |
| ExportNamedDeclaration: ["declaration", "specifiers", "source"], |
| ExportSpecifier: ["exported", "local"], |
| ExpressionStatement: ["expression"], |
| ForStatement: ["init", "test", "update", "body"], |
| ForInStatement: ["left", "right", "body"], |
| ForOfStatement: ["left", "right", "body"], |
| FunctionDeclaration: ["id", "params", "body"], |
| FunctionExpression: ["id", "params", "body"], |
| Identifier: [], |
| IfStatement: ["test", "consequent", "alternate"], |
| ImportDeclaration: ["specifiers", "source"], |
| ImportDefaultSpecifier: ["local"], |
| ImportNamespaceSpecifier: ["local"], |
| ImportSpecifier: ["imported", "local"], |
| Literal: [], |
| LabeledStatement: ["label", "body"], |
| LogicalExpression: ["left", "right"], |
| MemberExpression: ["object", "property"], |
| MetaProperty: ["meta", "property"], |
| MethodDefinition: ["key", "value"], |
| ModuleSpecifier: [], |
| NewExpression: ["callee", "arguments"], |
| ObjectExpression: ["properties"], |
| ObjectPattern: ["properties"], |
| Program: ["body"], |
| Property: ["key", "value"], |
| RestElement: ["argument"], |
| ReturnStatement: ["argument"], |
| SequenceExpression: ["expressions"], |
| SpreadElement: ["argument"], |
| Super: [], |
| SwitchStatement: ["discriminant", "cases"], |
| SwitchCase: ["test", "consequent"], |
| 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"], |
| |
| // JSX |
| JSXIdentifier: [], |
| JSXNamespacedName: ["namespace", "name"], |
| JSXMemberExpression: ["object", "property"], |
| JSXEmptyExpression: [], |
| JSXExpressionContainer: ["expression"], |
| JSXElement: ["openingElement", "closingElement", "children"], |
| JSXClosingElement: ["name"], |
| JSXOpeningElement: ["name", "attributes"], |
| JSXAttribute: ["name", "value"], |
| JSXText: null, |
| JSXSpreadAttribute: ["argument"] |
| }; |