remove eslint 2 logic (babel/babel-eslint#361)

* remove old code

* remove async/await logic before eslint supported it

* not needed
This commit is contained in:
Henry Zhu 2016-09-27 12:32:10 -04:00
parent ce6d9df192
commit 3c414db312
4 changed files with 21 additions and 51 deletions

View File

@ -202,11 +202,6 @@ var astTransformVisitor = {
} }
} }
// async function as generator
if (path.isFunction()) {
if (node.async) node.generator = true;
}
// TODO: remove (old esprima) // TODO: remove (old esprima)
if (path.isFunction()) { if (path.isFunction()) {
if (!node.defaults) { if (!node.defaults) {
@ -214,13 +209,6 @@ var astTransformVisitor = {
} }
} }
// await transform to yield
if (path.isAwaitExpression()) {
node.type = "YieldExpression";
node.delegate = node.all;
delete node.all;
}
// template string range fixes // template string range fixes
if (path.isTemplateLiteral()) { if (path.isTemplateLiteral()) {
node.quasis.forEach(function (q) { node.quasis.forEach(function (q) {

View File

@ -1,13 +1,12 @@
var babylonToEspree = require("./babylon-to-espree"); var babylonToEspree = require("./babylon-to-espree");
var pick = require("lodash.pickby"); var pick = require("lodash.pickby");
var Module = require("module"); var Module = require("module");
var path = require("path"); var path = require("path");
var parse = require("babylon").parse; var parse = require("babylon").parse;
var t = require("babel-types"); var t = require("babel-types");
var tt = require("babylon").tokTypes; var tt = require("babylon").tokTypes;
var traverse = require("babel-traverse").default; var traverse = require("babel-traverse").default;
var estraverse;
var hasPatched = false; var hasPatched = false;
var eslintOptions = {}; var eslintOptions = {};
@ -37,39 +36,12 @@ function monkeypatch() {
// get modules relative to what eslint will load // get modules relative to what eslint will load
var eslintMod = createModule(eslintLoc); var eslintMod = createModule(eslintLoc);
var escopeLoc = Module._resolveFilename("escope", eslintMod);
var escopeMod = createModule(escopeLoc);
// npm 3: monkeypatch estraverse if it's in escope
var estraverseRelative = escopeMod;
try {
var esrecurseLoc = Module._resolveFilename("esrecurse", eslintMod);
estraverseRelative = createModule(esrecurseLoc);
} catch (err) {}
// contains all the instances of estraverse so we can modify them if necessary // contains all the instances of estraverse so we can modify them if necessary
var estraverses = []; var estraverses = [];
// monkeypatch estraverse
estraverse = estraverseRelative.require("estraverse");
estraverses.push(estraverse);
Object.assign(estraverse.VisitorKeys, t.VISITOR_KEYS);
// monkeypatch estraverse-fb (only for eslint < 2.3.0)
try {
var estraverseFb = eslintMod.require("estraverse-fb");
estraverses.push(estraverseFb);
Object.assign(estraverseFb.VisitorKeys, t.VISITOR_KEYS);
} catch (err) {
// Ignore: ESLint v2.3.0 does not have estraverse-fb
}
// ESLint v1.9.0 uses estraverse directly to work around https://github.com/npm/npm/issues/9663 // ESLint v1.9.0 uses estraverse directly to work around https://github.com/npm/npm/issues/9663
var estraverseOfEslint = eslintMod.require("estraverse"); var estraverseOfEslint = eslintMod.require("estraverse");
if (estraverseOfEslint !== estraverseFb) { estraverses.push(estraverseOfEslint);
estraverses.push(estraverseOfEslint); Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS);
Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS);
}
estraverses.forEach(function (estraverse) { estraverses.forEach(function (estraverse) {
estraverse.VisitorKeys.MethodDefinition.push("decorators"); estraverse.VisitorKeys.MethodDefinition.push("decorators");
@ -77,6 +49,8 @@ function monkeypatch() {
}); });
// monkeypatch escope // monkeypatch escope
var escopeLoc = Module._resolveFilename("escope", eslintMod);
var escopeMod = createModule(escopeLoc);
var escope = require(escopeLoc); var escope = require(escopeLoc);
var analyze = escope.analyze; var analyze = escope.analyze;
escope.analyze = function (ast, opts) { escope.analyze = function (ast, opts) {

View File

@ -56,7 +56,7 @@ function parseAndAssertSame(code) {
range: true, range: true,
comment: true, comment: true,
attachComment: true, attachComment: true,
ecmaVersion: 6, ecmaVersion: 8,
sourceType: "module" sourceType: "module"
}); });
var babylonAST = babelEslint.parse(code); var babylonAST = babelEslint.parse(code);
@ -455,5 +455,13 @@ describe("babylon-to-esprima", function () {
parseAndAssertSame("var a = [ a, ...b ]"); parseAndAssertSame("var a = [ a, ...b ]");
parseAndAssertSame("var a = sum(...b)"); parseAndAssertSame("var a = sum(...b)");
}); });
it("Async/Await", function() {
parseAndAssertSame(
`async function a() {
await 1;
}`
);
});
}); });
}); });

View File

@ -11,7 +11,7 @@ function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, over
es6: true es6: true
}, },
parserOptions: { parserOptions: {
ecmaVersion: 6, ecmaVersion: 8,
ecmaFeatures: { ecmaFeatures: {
jsx: true, jsx: true,
experimentalObjectRestSpread: true, experimentalObjectRestSpread: true,