167 Commits

Author SHA1 Message Date
Nicolò Ribaudo
de28707dfe
[babel 8] Align allow* parser options with ESLint behavior (#13921)
* [babel 8] Align `allow*` parser options with ESLint behavior

- The `@babel/eslint-parser` `allowImportExportEverywhere` option is removed; users can pass it to `parserOpts`
- `allowSuperOutsideMethod` is disabled
- `allowReturnOutsideFunction` is inferred from `ecmaFeatures.globalReturn`

* Update failing tests
2021-11-04 07:56:06 +01:00
Nicolò Ribaudo
7396f05341
Skip ESLint 8 tests on publish (#13898) 2021-10-30 15:11:28 -04:00
Nicolò Ribaudo
381277ae35
Add ESLint 8 support to @babel/eslint-parser (#13782)
* Add ESLint 8 support to `@babel/eslint-parser`

* Only read eslint version dynamically during dev

* Fix tests

* Update ESLint

* Use ESLint 8 stable

* Review

* Check

* Fix babel config
2021-10-28 16:41:55 -04:00
Nicolò Ribaudo
8af57dbfb7
[eslint-parser] Represent static using a Keyword token (#13751) 2021-09-13 16:35:32 +02:00
Pedro Lourenço
d74838609e
Add record and tuple tokens to eslint parser (#13477) 2021-06-17 16:29:32 +02:00
François Servant
12190042e6 Fix error when parsing ignored files with @babel/eslint-parser (#13338)
* fix(babel-eslint-parser): prevent typeerror in maybeParse
* fix(babel-eslint-parser): prevent other typeerrors in convert modules
* test(babel-eslint-parser): test maybeParse when file is ignored
* refactor(babel-eslint-parser): use fallback options instead of typeerror protections

Co-authored-by: devfservant <43757707+devfservant@users.noreply.github.com>
Co-authored-by: François Servant <francois.servant.e@thalesdigital.io>
2021-05-20 00:20:58 +02:00
Nicolò Ribaudo
9d620c2d42
[babel 8] Move ESLint parsing to a Worker (#13199) 2021-05-17 17:04:10 +02:00
Huáng Jùnliàng
a387973821
Refactor private name tokenizing (#13256)
* add benchmark

* refactor: create tt.privateName token for private names

* add backward compat privateName = hash + name to Babel 7

* perf: get private name SV from token value

* chore: tweak benchmark file

* chore: update test fixtures

* convert tt.privateName to PrivateIdentifier

* perf: avoid most isPrivateName call

* Update packages/babel-parser/src/parser/expression.js

Co-authored-by: Justin Ridgewell <justin@ridgewell.name>

* perf: use inlinable codePointAtPos

* make prettier happy

Co-authored-by: Justin Ridgewell <justin@ridgewell.name>
2021-05-06 09:46:09 -04:00
Nicolò Ribaudo
d04842a700
Avoid using CJS globals in internal source files (#12963)
* Lint against CJS globals in modules

* Use `import.meta.url` instead of `__filename` in `src` files

* Prepare fixtures runner for `import.meta.url`

* Use `import.meta.url` instead of `__filename` in `test/index` files

* Remove `__dirname` from remaining test files

dirname

* Avoid using `module` in `src` files

* Avoid using `require` in `src` files

* Avoid using `require` in `test` files

* Update `@types/node`

* Compile dynamic import in `@babel/node`

* Fix windows

* Use `@babel/plugin-proposal-dynamic-import` from npm
2021-03-05 19:55:36 +01:00
Huáng Jùnliàng
227f881f35
fix(eslint-parser): merge input estree options (#12891)
Co-authored-by: Kai Cataldo <kai@kaicataldo.com>
2021-02-24 20:13:47 +01:00
Nicolò Ribaudo
6a0e909c13
Don't compile import() in development (#12288) 2020-11-18 16:02:02 +01:00
Huáng Jùnliàng
2e20f1b8a6
add test on ES2021 features (#12005) 2020-08-25 15:23:45 -04:00
Huáng Jùnliàng
48e793e964
fix: add ImportExpression visitorKeys (#11932) 2020-08-08 15:44:22 -04:00
Kai Cataldo
4ac9c7afe2
Upgrade to ESLint v7 (#11857)
* Upgrade to ESLint v7

* Upgrade eslint-plugin-import

* Update peer deps

* Remove max-len from ESLint config

* Update tests

* Only test babel-eslint-* packages in Node >=10

* Remove babel-eslint

* Fix linking in dev

* Add comment to Makefile

* Fix e2e tests

* Add --ignore-engines flag when installing in ESLint packages

* fix: convert tt.questionDot to Punctuator

* chore: update lockfile

Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
2020-07-29 19:11:48 -04:00
Huáng Jùnliàng
d7347fb8bd
eslint-parser: ES2020 features (#11815)
* chore: update espree test on nullish coalescing

* feat: add optional chaining support

* fix: adapt to estree AST shape

* chore: update lockfile

* add estree optional-chaining test fixtures

* address review comments

* chore: simplify smoke test

* export * support

Co-authored-by: Brian Ng <bng412@gmail.com>
2020-07-29 16:46:29 -04:00
Bogdan Savluk
4108524856
Update prettier to v2 (#11579)
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2020-06-07 22:21:33 +02:00
Nicolò Ribaudo
aeb51f463c Do not remove "estree": null in ESLint tests 2020-05-09 22:12:28 +02:00
Brian Ng
20d9a10186
Add estree parsing support for export * as A (#11254) 2020-03-16 22:52:33 +01:00
Nicolò Ribaudo
114f6726a7
Pass URLs to import() rather than paths (#11193)
* Pass URLs to import() rather than paths

* Make tests pass

* (╯°□°)╯︵ ┻━┻

* (╯°□°)╯︵ ┻━┻           (╯°□°)╯︵ ┻━┻             (╯°□°)╯︵ ┻━┻
2020-03-03 19:54:01 +01:00
Kai Cataldo
3960f4de64
Breaking: align babel-eslint-parser & espree (#11137)
* Chore: align babel-eslint-parser & espree

* Start program at beginning of comment when no tokens exist

* Import correct version of Espree for tests

* Remove hasOwnProperty guard
2020-02-20 17:31:57 +01:00
Huáng Jùnliàng
865d5155c2
Add eslint-plugin-jest (#11119)
* chore: add eslint-plugin-jest

* chore: update test sources

* chore: suppress preset-env debug log when linting
2020-02-11 00:11:32 +09:00
Kai Cataldo
5aa368cec1
Centralize @babel/eslint-* tests (#11106)
* Centralize @babel/eslint-* tests

* Enable linting of @babel/eslint-* test files

* Add missing sourceType
2020-02-08 10:04:49 -05:00
Kai Cataldo
d8e6219ad9 @babel/eslint-plugin: Update rules/tests to use @babel/eslint-parser (#10977)
* Use @babel/eslint-parser for tests

* Update rules/tests

* Update docs

* add @babel/eslint-shared-fixtures to package.json

* remove bug fix

* convert RuleTester to ESM

* Update devDep versions
2020-01-11 20:42:21 +01:00
Kai Cataldo
9f832c2716
@babel/eslint-parser: Fix ClassPrivateMethods (#10913) 2020-01-02 18:36:58 -05:00
Kai Cataldo
25f7e6808e
@babel/eslint-parser: refactor configuration logic (#10860) 2019-12-11 18:06:37 -05:00
Kai Cataldo
7b54a94389 @babel/eslint-parser: fix ImportExpression node to match ESTree spec (#10828)
* @babel/eslint-parser: fix ImportExpression node to match ESTree spec

* Update caller name for @babel/core.parseSync

* Move logic into estree plugin

* Add estree plugin tests

* Fix Flow error

* Fix flow

* Remove extra properties on ImportExpression node

* Incorporate review feedback
2019-12-11 11:13:57 +01:00
Huáng Jùnliàng
de1fa902f0 Tune eslint packages test configuration (#10848)
* Do not load root babel.config.js in esilnt tests

* add testcase: sourceType: script + globalReturn: true

* chore: remove globalReturn on default test config
2019-12-10 01:14:29 +01:00
Kai Cataldo
fb100eee41 @babel/eslint-parser: fix BigIntLiteral node to match ESTree spec (#10827)
* @babel/eslint-parser: fix BigIntLiteral node to match ESTree spec

* Move token conversion to @babel/eslint-parser

* Add estree plugin tests

* Update test helpers to handle BigInt serializing

* Update Literal union type to include BigIntLiteral

* Add FlowIgnore comment for BigInt
2019-12-08 02:59:18 +01:00
Kai Cataldo
e81bbd69b3 Clean up @babel/eslint-parser (#10753)
* Ensure compilation works for @babel/eslint-parser

* Update with review suggestions

* Incorporate feedback :)
2019-11-25 22:17:45 +01:00
Kai Cataldo
2c40b8c706 Fix failing tests 2019-11-22 16:25:38 -05:00
Raja Sekar
f087cf842f Mocha to jest migration for eslint packages (#10716)
* migrated mocha to jest

* migrated mocha to jest - 2

* migrated mocha to jest - removed preversion hook from script

* migrated mocha to jest - 3

* migrated mocha to jest - 4

* cleanup

* review

* review
2019-11-16 12:32:19 +01:00
Chiawen Chen
3396fdd7f7 Breaking: make AST match Espree 6 (babel/babel-eslint#785) 2019-11-02 07:08:32 +08:00
Daniel Tschinder
030fddb0b8 chore: Update deps and fix tests for new mocha and eslint (babel/babel-eslint#781) 2019-07-15 18:49:52 +02:00
Yosuke Ota
3fcfc90a12 Fix to convert hash token. (babel/babel-eslint#753) 2019-02-15 07:56:30 +09:00
Kai Cataldo
bbce2b3807 Remove comment attachment (babel/babel-eslint#736)
* Remove comment attachment

* Simplify error messaging in tests
2019-01-11 12:23:34 -05:00
Kai Cataldo
2b9ee42ded Remove monkeypatching dead code (babel/babel-eslint#737) 2019-01-10 18:28:40 -05:00
Kai Cataldo
47de99e1b8 Use @babel/core#parse (babel/babel-eslint#711) 2019-01-10 15:25:00 -05:00
Kai Cataldo
bede064c0b Major: remove parseNoPatch (babel/babel-eslint#733) 2019-01-07 09:55:16 -05:00
Kai Cataldo
22a1681e11 Merge pull request babel/babel-eslint#706 from kaicataldo/es6
Update ESLint config
2018-10-30 14:48:37 -05:00
Henry Zhu
e56b342e59 Revert babel/babel-eslint#584 (babel/babel-eslint#697)
* Revert "Treat type alias declarationlike function declaration (babel/babel-eslint#584)"

This reverts commit 020d012c554913fea137f4129798ce31a4896dfe.
2018-09-27 10:29:29 -04:00
Henry Zhu
742aa412a7 test value should be switched 2018-09-25 15:29:14 -04:00
Joa Ebert
22fa8e6f20 Treat type alias declarationlike function declaration (babel/babel-eslint#584)
A type alias shouldn't trigger a no-use-before-define warning just
like a function declaration.

Cyclic type dependencies are common when using flow.
For instance: type Node<T> = { head: T; tail: Node<T> }

Fixes babel/babel-eslint#485
2018-09-25 20:39:43 +02:00
Brian Ng
990ea0f1ae Drop old monkeypatching behavior (babel/babel-eslint#689)
An alternative to adding a direct dep on estraverse (https://github.com/babel/babel-eslint/pull/685), let's just drop the old monkeypatching behavior.

Closes babel/babel-eslint#685, Closes babel/babel-eslint#680
2018-09-25 13:07:46 -05:00
Rubén Norte
a17917810d Merge pull request babel/babel-eslint#645 from rubennorte/support-new-flow-syntax-in-scope-analysis
Support new flow syntax in scope analysis
2018-07-06 17:20:52 +01:00
Rubén Norte
dcf55cb730 Upgrade Babel to v7.0.0-beta.52 (babel/babel-eslint#650)
* Upgrade Babel to v7.0.0-beta.52

* Fixed failing test
2018-07-06 14:50:59 +01:00
Rubén Norte
4f9e2a5be6 Breaking: Upgraded Babel to 7.0.0-beta.51 (babel/babel-eslint#642)
* Upgraded Babel to 7.0.0-beta.51, with changes to decorators

* Removed support for Node 4 and added it for Node 10

* nit: fix typo [skip ci]
2018-06-29 14:26:43 +01:00
Brian Ng
42d0769683 Add test for template string with object with template string inside (babel/babel-eslint#639)
Closes https://github.com/babel/babel-eslint/pull/538.
Fixes https://github.com/babel/babel-eslint/issues/537.

Now that https://github.com/babel/babel-eslint/pull/610 has landed, I wanted to make sure this case was covered.
2018-06-22 11:12:54 -05:00
Brian Ng
077bea0a45 Fix converting template types to handle nested templates (babel/babel-eslint#610)
Fixes https://github.com/babel/babel-eslint/issues/603 (and the fixture from https://github.com/babel/babel-eslint/issues/609 works).

Reworks our code that converts the format of Babylon template tokens to be a bit more robust, especially with things like nested templates with arrows.

(Adapted the logic from https://github.com/eslint/espree/blob/master/lib/token-translator.js)
2018-06-18 16:46:31 -05:00
Rubén Norte
99968db2b1 Fix token types for experimental operators (babel/babel-eslint#632)
* Added failing tests

* Recognized nullish coalescing, optional chaining and pipeline operators as Punctuator tokens
2018-06-15 15:42:05 +01:00
Rubén Norte
3477626973 Add support for the optional chaining operator (babel/babel-eslint#630) 2018-06-15 15:31:43 +01:00