Skip to content
This repository has been archived by the owner on Aug 18, 2021. It is now read-only.

remove eslint 2 logic #361

Merged
merged 3 commits into from
Sep 27, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 0 additions & 12 deletions babylon-to-espree/toAST.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,25 +202,13 @@ 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) {
node.defaults = [];
}
}

// 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) {
Expand Down
50 changes: 12 additions & 38 deletions index.js
Original file line number Diff line number Diff line change
@@ -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 estraverse;
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 hasPatched = false;
var eslintOptions = {};

Expand Down Expand Up @@ -37,46 +36,21 @@ 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");
estraverse.VisitorKeys.Property.push("decorators");
});

// 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) {
Expand Down
10 changes: 9 additions & 1 deletion test/babel-eslint.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ function parseAndAssertSame(code) {
range: true,
comment: true,
attachComment: true,
ecmaVersion: 6,
ecmaVersion: 8,
sourceType: "module"
});
var babylonAST = babelEslint.parse(code);
Expand Down Expand Up @@ -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;
}`
);
});
});
});
2 changes: 1 addition & 1 deletion test/non-regression.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ function verifyAndAssertMessages(code, rules, expectedMessages, sourceType, over
es6: true
},
parserOptions: {
ecmaVersion: 6,
ecmaVersion: 8,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe lets use years here? 2017

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree, years please

ecmaFeatures: {
jsx: true,
experimentalObjectRestSpread: true,
Expand Down