| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | /** * @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"],    // Experimental features    ExperimentalRestProperty: ["argument"],    ExperimentalSpreadProperty: ["argument"]};
 |