Skip to content

Commit

Permalink
Merge pull request #4307 from mysticatea/core/npm3
Browse files Browse the repository at this point in the history
Fix: ensure using correct estraverse
  • Loading branch information
nzakas committed Nov 4, 2015
2 parents 37efece + 7e5a8da commit 8d8ad2d
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 15 deletions.
13 changes: 1 addition & 12 deletions lib/eslint.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
// Requirements
//------------------------------------------------------------------------------

var estraverse = require("estraverse-fb"),
var estraverse = require("./util/estraverse"),
escope = require("escope"),
environments = require("../conf/environments"),
blankScriptAST = require("../conf/blank-script.json"),
Expand All @@ -32,17 +32,6 @@ var DEFAULT_PARSER = require("../conf/eslint.json").parser;
// Helpers
//------------------------------------------------------------------------------

// additional changes to make estraverse happy
estraverse.Syntax.ExperimentalSpreadProperty = "ExperimentalSpreadProperty";
estraverse.Syntax.ExperimentalRestProperty = "ExperimentalRestProperty";

estraverse.VisitorKeys.ExperimentalSpreadProperty = ["argument"];
estraverse.VisitorKeys.ExperimentalRestProperty = ["argument"];

// All nodes in ObjectExpression.properties and ObjectPattern.properties are visited as `Property`.
// See Also: https://github.com/estools/estraverse/blob/master/estraverse.js#L687-L688
estraverse.VisitorKeys.Property.push("argument");

/**
* Parses a list of "name:boolean_value" or/and "name" options divided by comma or
* whitespace.
Expand Down
54 changes: 54 additions & 0 deletions lib/util/estraverse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/**
* @fileoverview Patch for estraverse
* @author Toru Nagashima
* @copyright 2015 Toru Nagashima. All rights reserved.
* See LICENSE file in root directory for full license.
*/
"use strict";

//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------

var estraverse = require("estraverse"),
jsxKeys = require("estraverse-fb/keys");

//------------------------------------------------------------------------------
// Helers
//------------------------------------------------------------------------------

var experimentalKeys = {
ExperimentalRestProperty: ["argument"],
ExperimentalSpreadProperty: ["argument"]
};

/**
* Adds a given keys to Syntax and VisitorKeys of estraverse.
*
* @param {object} keys - Key definitions to add.
* This is an object as map.
* Keys are the node type.
* Values are an array of property names to visit.
* @returns {void}
*/
function installKeys(keys) {
for (var key in keys) {
if (keys.hasOwnProperty(key)) {
estraverse.Syntax[key] = key;
if (keys[key]) {
estraverse.VisitorKeys[key] = keys[key];
}
}
}
}

// Add JSX node types.
installKeys(jsxKeys);
// Add Experimental node types.
installKeys(experimentalKeys);

//------------------------------------------------------------------------------
// Public Interface
//------------------------------------------------------------------------------

module.exports = estraverse;
2 changes: 1 addition & 1 deletion lib/util/source-code.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
//------------------------------------------------------------------------------

var createTokenStore = require("../token-store.js"),
estraverse = require("estraverse"),
estraverse = require("./estraverse"),
assign = require("object-assign");

//------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"escape-string-regexp": "^1.0.2",
"escope": "^3.2.0",
"espree": "^2.2.4",
"estraverse": "^4.1.0",
"estraverse": "^4.1.1",
"estraverse-fb": "^1.3.1",
"esutils": "^2.0.2",
"file-entry-cache": "^1.1.1",
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/util/comment-event-generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ var assert = require("assert"),
EventEmitter = require("events").EventEmitter,
sinon = require("sinon"),
espree = require("espree"),
estraverse = require("estraverse"),
EventGeneratorTester = require("../../../lib/testers/event-generator-tester"),
estraverse = require("../../../lib/util/estraverse"),
SourceCode = require("../../../lib/util/source-code"),
NodeEventGenerator = require("../../../lib/util/node-event-generator"),
CommentEventGenerator = require("../../../lib/util/comment-event-generator");
Expand Down

0 comments on commit 8d8ad2d

Please sign in to comment.