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:
parent
ce6d9df192
commit
3c414db312
@ -202,11 +202,6 @@ var astTransformVisitor = {
|
||||
}
|
||||
}
|
||||
|
||||
// async function as generator
|
||||
if (path.isFunction()) {
|
||||
if (node.async) node.generator = true;
|
||||
}
|
||||
|
||||
// TODO: remove (old esprima)
|
||||
if (path.isFunction()) {
|
||||
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
|
||||
if (path.isTemplateLiteral()) {
|
||||
node.quasis.forEach(function (q) {
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
var babylonToEspree = require("./babylon-to-espree");
|
||||
var pick = require("lodash.pickby");
|
||||
var Module = require("module");
|
||||
var path = require("path");
|
||||
var parse = require("babylon").parse;
|
||||
var t = require("babel-types");
|
||||
var tt = require("babylon").tokTypes;
|
||||
var traverse = require("babel-traverse").default;
|
||||
var pick = require("lodash.pickby");
|
||||
var Module = require("module");
|
||||
var path = require("path");
|
||||
var parse = require("babylon").parse;
|
||||
var t = require("babel-types");
|
||||
var tt = require("babylon").tokTypes;
|
||||
var traverse = require("babel-traverse").default;
|
||||
|
||||
var estraverse;
|
||||
var hasPatched = false;
|
||||
var eslintOptions = {};
|
||||
|
||||
@ -37,39 +36,12 @@ function monkeypatch() {
|
||||
|
||||
// get modules relative to what eslint will load
|
||||
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
|
||||
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
|
||||
var estraverseOfEslint = eslintMod.require("estraverse");
|
||||
if (estraverseOfEslint !== estraverseFb) {
|
||||
estraverses.push(estraverseOfEslint);
|
||||
Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS);
|
||||
}
|
||||
estraverses.push(estraverseOfEslint);
|
||||
Object.assign(estraverseOfEslint.VisitorKeys, t.VISITOR_KEYS);
|
||||
|
||||
estraverses.forEach(function (estraverse) {
|
||||
estraverse.VisitorKeys.MethodDefinition.push("decorators");
|
||||
@ -77,6 +49,8 @@ function monkeypatch() {
|
||||
});
|
||||
|
||||
// monkeypatch escope
|
||||
var escopeLoc = Module._resolveFilename("escope", eslintMod);
|
||||
var escopeMod = createModule(escopeLoc);
|
||||
var escope = require(escopeLoc);
|
||||
var analyze = escope.analyze;
|
||||
escope.analyze = function (ast, opts) {
|
||||
|
||||
@ -56,7 +56,7 @@ function parseAndAssertSame(code) {
|
||||
range: true,
|
||||
comment: true,
|
||||
attachComment: true,
|
||||
ecmaVersion: 6,
|
||||
ecmaVersion: 8,
|
||||
sourceType: "module"
|
||||
});
|
||||
var babylonAST = babelEslint.parse(code);
|
||||
@ -455,5 +455,13 @@ describe("babylon-to-esprima", function () {
|
||||
parseAndAssertSame("var a = [ a, ...b ]");
|
||||
parseAndAssertSame("var a = sum(...b)");
|
||||
});
|
||||
|
||||
it("Async/Await", function() {
|
||||
parseAndAssertSame(
|
||||
`async function a() {
|
||||
await 1;
|
||||
}`
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -11,7 +11,7 @@ function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, over
|
||||
es6: true
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 6,
|
||||
ecmaVersion: 8,
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
experimentalObjectRestSpread: true,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user