14111 Commits

Author SHA1 Message Date
Huáng Jùnliàng
38529699d6
Refactor await/yield production parameter tracking (#10956)
* test: add test fixtures

* refactor: track AWAIT and YIELD in separate handler

* fix flow errors

* add flow type annotation to production-parameter

* address review comments

* refactor: track [Return] parameter
2020-02-09 15:31:29 +01:00
Nicolò Ribaudo
8ab27c8ffe Wrap type-only class fields in flow comments (#11096)
* Wrap type-only class fields in flow comments

* Fix
2020-02-09 11:45:42 +01:00
Vedant Roy
dadba01249 Fix export bindings not updated by 'for...in' and 'for...of' (#11074)
* Correctly transpile export bindings for some for-of loops

* Correctly transform non-destructured for of loops to update exported variables

* Add tests

* Don't replace entire for of loop

* Correctly transform destructured for-of/for-in exports

* Update exported variables in array pattern and more fixes

* Refresh test output

* Update tests and rebase on master

* Refactor ForOf|ForIn visitor

* Don't transform re-declared exported vars

* Generate better name for loop id

Co-Authored-By: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>

* Idiomatically generate UidIdentifier

* Update scope after replacing loop declaration

Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2020-02-09 11:41:29 +01: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
Huáng Jùnliàng
1599e9025d
fix: specify sourceFileName when generating inline sourcemaps (#10797) 2020-02-07 22:42:18 +01:00
Huáng Jùnliàng
0b3dea8f54
Turn on no-fallthrough rule (#11093)
* chore: turn on no-fallthrough

* chore: fix no-fallthrough errors
2020-02-07 22:05:19 +01:00
Nicolò Ribaudo
5e58903250
Remove stage presets from the monorepo (#11101)
babel/babel-archive already includes the last working version of these presets (v7.0.0-beta.52), and they have been throwing since 7.0.0
2020-02-06 18:02:59 +01:00
Nicolò Ribaudo
755ec192e2
Archive @babel/preset-env-standalone (#10993)
* Move @babel/preset-env-standalone to babel-archive

babel/babel-archive@a1fadd2d77

* Move tests to @babel/standalone

* Remove references in build scripts

* Update lockfile

* Delete duplicated test file.

It's already in babel-standalone/test/babel.js
2020-02-06 01:03:36 +01:00
Jacob Williams
761563571c
Make isReferenced return false for method parameter name (#11089)
* Change isReferenced to return false for object/class method parameter names.

* use indexOf instead of for-of loop

* replace `.indexOf` check with `.includes` and assume `parent.params` exists

Co-Authored-By: Justin Ridgewell <justin@ridgewell.name>

* check .params within case block for ClassMethod/ClassPrivateMethod/ObjectMethod only

* add comment clarifying that case clause fall-through is intentional

Co-authored-by: Justin Ridgewell <justin@ridgewell.name>
2020-02-06 00:59:16 +01:00
Nicolò Ribaudo
0ae61f060a
Update fixtures again (#11094) 2020-02-04 23:09:38 +01:00
Liam Doran
11d9826e77
Fix Async Generic After Await Parsing Error (#11092)
* test: add test case

* fix: reset awaitPos before parsing generic arrow fn

* fix: maybeInArrowParameters reset to true
2020-02-04 23:06:04 +01:00
Nicolò Ribaudo
636c1dc86d
Only download compat-table if it's not already downloaded (#11081)
* Only download compat-table if it's not already downloaded

* Use git rev-parse
2020-02-04 22:39:15 +01:00
Nicolò Ribaudo
bd1daa756e
Update fixtures after browserslist release (#11091) 2020-02-04 09:19:14 +01:00
Brian Ng
779f00b8e9
Update @babel deps (#11072) 2020-02-01 01:00:47 +01:00
Kai Cataldo
f987821099
Clean babel-eslint-*/**/lib (#11070) 2020-01-31 20:49:27 +01:00
Nicolò Ribaudo
4070b7a7f6 Update changelog [skip ci] 2020-01-31 19:59:51 +01:00
Babel Bot
011f11c1de Add v7.8.5 to CHANGELOG.md [skip ci] 2020-01-31 18:53:09 +00:00
Nicolò Ribaudo
11641b5f70 v7.8.5 2020-01-31 19:43:51 +01:00
Daniel Tschinder
7ee98363df
Do not publish build directory of compat-data (#11078) [skip ci] 2020-01-31 19:40:50 +01:00
Kai Cataldo
66721eaa0e
Further refactoring of @babel/eslint-parser (#11071) 2020-01-31 00:07:26 +01:00
Nicolò Ribaudo
d57b9aabdd
Update CHANGELOG.md [skip ci] 2020-01-30 13:49:20 +01:00
Nicolò Ribaudo
8b13513daa
Update CHANGELOG.md [skip ci] 2020-01-30 13:47:56 +01:00
Babel Bot
32de1ac97b Add v7.8.4 to CHANGELOG.md [skip ci] 2020-01-30 12:21:40 +00:00
Nicolò Ribaudo
5c2e6bc07f v7.8.4 2020-01-30 13:18:09 +01:00
Nicolò Ribaudo
92c6807ae8
[@babel/cli] Copy ignored files by default (#11063)
This commit restores the pre-7.8.0 behavior of the --copy-files option, by making
--copy-ignored default to true when --copy-files is enabled.
2020-01-30 13:01:04 +01:00
Daniel Tschinder
1528d7d2d3
Fix core-js 2 builtin data for opera (#11066) 2020-01-29 18:14:26 +01:00
Tan Li Hau
3e21a09da3 feat: support node 6 for levenary (#11059) 2020-01-28 06:57:35 +01:00
Nicolò Ribaudo
eae6211258
Update compat table (#11039)
* Fix compat-data build script

* Update compat table

* Update mappings for transform-parameters

kangax/compat-table#1570

* Update unrelated fixture

* Update
2020-01-27 22:23:27 +01:00
Nicolò Ribaudo
916429b516
Avoid compiling the _typeof helper with itself (#11049)
* Avoid compiling the typeof helper with itself

* Update fixtures
2020-01-27 22:02:34 +01:00
Pavel Pustovalov
d0518b7566 Update browserslist (#11058) 2020-01-27 21:54:18 +01:00
Nicolò Ribaudo
2e5594d562 Update failing tests after last merged PR 2020-01-24 23:07:34 +01:00
Nicolò Ribaudo
ed47d2e89a
Delete duplicated file in @babel/compat-data (#11041)
This file is the same as `native-modules.json`, which is exported in package.json
2020-01-24 22:45:37 +01:00
Huáng Jùnliàng
b54a946048 chore: map mobile browser data to their desktop version (#10814)
* chore: map mobile browser data to their desktop version

* chore: skip android until upstream support is resolved

* Revert "chore: skip android until upstream support is resolved"

This reverts commit 436e9af8297b284a426b5a3240e2a550a20fca86.

* Update fixtures

Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2020-01-24 22:40:11 +01:00
Nicolò Ribaudo
1815c34987
Update preset-env fixtures (#11040) 2020-01-21 22:46:49 +01:00
Huáng Jùnliàng
fa975bf7cd polish: throw human-friendly error when item-option pair is in… (#10969)
* polish: throw human-friendly error when item-option pair is incorrectly unwrapped

* add testcase for plugin

* fix: exclude false positive

* fix: validate should support plugin optionsSourceKind

* Revert "fix: validate should support plugin optionsSourceKind"

* fix: validate plugin object in assertNoUnwrappedItemOptionPairs

* fix flow error

* update test fixtures

* refactor: move to loadDescriptor catch clause

* chore: throw Error instead of builtin ReferenceError

* fix flow errors

* chore: add more test cases
2020-01-20 21:05:07 +01:00
Huáng Jùnliàng
43b23e0869 refactor: simplify toAssignable routine (#11032)
* refactor: remove isBinding parameter

* remove unused contextDescription

* refactor: remove unnecessary nullish check

* refactor: simplify toAssignable on ParenthesizedExpression

* tests: categorize createParenthesizedExpression tests
2020-01-20 21:04:16 +01:00
Chunpeng Huo
9bc04baeb5 fix(babel-parser): avoid state.clone() to clone the whole token store (#11029)
* fix(babel-parser): avoid state.clone() to clone the whole token store

Fixed the performance issue on large input when turned on option {tokens: true} and typescript plugin which uses quite a few state.clone().

* test(babel-parser): turn on 2 typescript tests with tokens:true

The output.json is generated by old master to make sure no regression.

* fix(babel-parser): avoid duplicated tokens trapped by mainly typescript/flow plugins

* test(babel-parser): update output.json to latest master result

* chore(babel-parser): improve performance by storing tokensLength in state
2020-01-19 22:38:33 -05:00
Erlend Tobiassen
740064ced7 Fix missing ClassDeclaration references after scope#crawl (#11011)
* Bug replication test

* Simplify test

* Fixes #10896

* Merge path.crawl `ClassDeclaration` and `Declaration` visitors

Merged to avoid subtle assumption that `Declaration` is called before `ClassDeclaration`

* Move registartion of class id in crawl to BlockScoped

* Add some assertions to crawl test
2020-01-19 21:32:05 -05:00
Nicolò Ribaudo
2b23c283dd
Check that generated compat-data is up to date on CI (#11024) 2020-01-20 01:42:47 +01:00
Huáng Jùnliàng
de75dbf2a0 update compat-data related docs/config [skip ci] (#11030)
* ignore compat-data build

* ignore CONTRIBUTING.md when publishing preset-env

* docs: update preset-env CONTRIBUTING.md
2020-01-20 01:00:38 +01:00
Huáng Jùnliàng
facfd4d8a1 Enable no-process-exit ESLint rule (#11025) 2020-01-20 00:48:47 +01:00
Vedant Roy
341964bd4e fix: properly parse member expression after property initializ… (#11031)
Fixes issue 10989 where the only the identifier in a member expression that is the value of an object property would be parsed. Removing checkExpressionErrors in parseExprSubscripts results in the subscript also being parsed.
2020-01-20 00:33:09 +01:00
Benoît Zugmeyer
85ddc297c2 Fix rest parameters indexing with TypeScript 'this parameter' (#9714)
* Fix rest parameters indexing with TypeScript 'this parameter'

The TypeScript [this parameter][0] is a fake parameter and should not be
taken into account when counting the function parameters.  This patch
skips it by using the condition taken from the `transform-typescript`
plugin.

Note: since the `transform-typescript` plugin is removing this kind of
parameter, including it before the `transform-parameters` plugin solves
the issue.  This patch fixes the issue in other cases.

[0]: https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters

* nit: improve the 'this parameter' detection condition

* improve performance by checking the parameter list length before
accessing it
* simplify the test a bit by using the `isIdentifier` second
parameter
2020-01-17 21:00:37 +01:00
Sven Sauleau
34a9653281 add AST for the module attribute proposal (#11015)
Introduce a `ImportAttribute` structure and add an `attributes` key on
the `ImportDeclaration` node.

[skip ci]
2020-01-17 20:58:30 +01:00
Huáng Jùnliàng
45301c5304 Update coalesce precedence (#11017)
* refactor: reimplement nullish coalescing precedence tracking

Co-authored-by: Toru Nagashima <public@mysticatea.dev>

* fix: Coalesce has same precedence with LogicalOR

* fix flow errors

Co-authored-by: Toru Nagashima <public@mysticatea.dev>
2020-01-17 20:57:07 +01:00
Huáng Jùnliàng
6648d62f40
chore: use @babel/eslint-config-internal (#11026) 2020-01-17 07:57:25 -05:00
Huáng Jùnliàng
1a1454328b
chore: replace yarn-upgrade by bump-babel-dependencies in e2e tests (#11021)
* chore: pin yarn version in e2e vue tests

* fix: replace yarn-upgrade by bump-babel-dependencies

* chore: update e2e-cra test
2020-01-17 07:55:29 -05:00
Huáng Jùnliàng
06dace1cdb fix: for-of transform should skip for-await-of (#11023) 2020-01-17 00:15:31 +01:00
Nicolò Ribaudo
3daab41e61 Re-generate preset-env fixtures (#11016)
* Fix plugin ordering in preset-env

* Update stdout fixtures

* Comments [skip ci]
2020-01-16 10:49:30 -05:00
Huáng Jùnliàng
a1063d2583
fix: triple __proto__ in object patterns should be allowed (#11009) 2020-01-16 09:34:47 -05:00