diff --git a/eslint/babel-eslint-parser/lib/babylon-to-espree/convertToken.js b/eslint/babel-eslint-parser/lib/babylon-to-espree/convertToken.js index 3e0ba453c9..2d8e9b1aac 100644 --- a/eslint/babel-eslint-parser/lib/babylon-to-espree/convertToken.js +++ b/eslint/babel-eslint-parser/lib/babylon-to-espree/convertToken.js @@ -44,6 +44,7 @@ module.exports = function(token, tt, source) { type === tt.bang || type === tt.tilde || type === tt.doubleColon || + type === tt.hash || type.isAssign ) { token.type = "Punctuator"; diff --git a/eslint/babel-eslint-parser/test/specs/babel-eslint.js b/eslint/babel-eslint-parser/test/specs/babel-eslint.js index 849e37ab97..02328e868e 100644 --- a/eslint/babel-eslint-parser/test/specs/babel-eslint.js +++ b/eslint/babel-eslint-parser/test/specs/babel-eslint.js @@ -267,6 +267,17 @@ describe("babylon-to-espree", () => { assert.strictEqual(babylonAST.tokens[1].type, "Punctuator"); }); + // Espree doesn't support the private fields yet + it("hash (token)", () => { + const code = "class A { #x }"; + const babylonAST = babelEslint.parseForESLint(code, { + eslintVisitorKeys: true, + eslintScopeManager: true, + }).ast; + assert.strictEqual(babylonAST.tokens[3].type, "Punctuator"); + assert.strictEqual(babylonAST.tokens[3].value, "#"); + }); + it.skip("empty program with line comment", () => { parseAndAssertSame("// single comment"); });