Compare commits
373 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0519fa907 | ||
|
|
019fbca3f6 | ||
|
|
24dde2e8e8 | ||
|
|
bff79e198a | ||
|
|
106bb41d47 | ||
|
|
d19f053482 | ||
|
|
49da9a07c8 | ||
|
|
b06663320e | ||
|
|
d50e78d45b | ||
|
|
5b86353b35 | ||
|
|
f588e4ec47 | ||
|
|
cbb482e2f9 | ||
|
|
595a349174 | ||
|
|
0bf0ae3410 | ||
|
|
ef3f555be9 | ||
|
|
38f8bbac1a | ||
|
|
a4170b5e32 | ||
|
|
6b8a37c413 | ||
|
|
0a98814329 | ||
|
|
8bf9714d69 | ||
|
|
ca67637da4 | ||
|
|
77fd7cd4c4 | ||
|
|
1d3f9815df | ||
|
|
31fc1d06bc | ||
|
|
b8bb93a838 | ||
|
|
8f8a457798 | ||
|
|
11fa2461ce | ||
|
|
505b2cc18d | ||
|
|
dcdf7c8fdd | ||
|
|
fdbbb743b6 | ||
|
|
6852bf6415 | ||
|
|
f92c2ae830 | ||
|
|
d7801c644c | ||
|
|
84961ebb05 | ||
|
|
3144ed131a | ||
|
|
ce4c374924 | ||
|
|
8d492b159b | ||
|
|
b4c9cb0222 | ||
|
|
a596da2822 | ||
|
|
1cfb92d66a | ||
|
|
888b9f6940 | ||
|
|
b6486a22cb | ||
|
|
a6392bd636 | ||
|
|
9dd8825eff | ||
|
|
ecf4667305 | ||
|
|
87fb6c4a8b | ||
|
|
58cf1a7d48 | ||
|
|
c96aef17e1 | ||
|
|
fc38638aeb | ||
|
|
33ab4f1661 | ||
|
|
54d257c105 | ||
|
|
9c06e4ed4d | ||
|
|
f5b8140580 | ||
|
|
0430a48775 | ||
|
|
45ca6751fa | ||
|
|
b1826bf0a0 | ||
|
|
2080042808 | ||
|
|
3f0590de2a | ||
|
|
5661de5908 | ||
|
|
c2d303f8be | ||
|
|
4da7a01aa9 | ||
|
|
47eb1ddfe0 | ||
|
|
9febf63882 | ||
|
|
85432e2c44 | ||
|
|
1969e6b6aa | ||
|
|
7942dc0f07 | ||
|
|
354666aa17 | ||
|
|
9e9b62f77a | ||
|
|
5da94bff87 | ||
|
|
eae7a33316 | ||
|
|
16e17c560b | ||
|
|
555d50a08c | ||
|
|
18ace84b88 | ||
|
|
2c88694388 | ||
|
|
4b8546c07d | ||
|
|
c5b5c83398 | ||
|
|
277a2620c6 | ||
|
|
ca3c53ae0b | ||
|
|
71013088ef | ||
|
|
80a5a2e7dd | ||
|
|
8ca323e810 | ||
|
|
30d507c915 | ||
|
|
293f3c98d2 | ||
|
|
cf3668779c | ||
|
|
d7757f6d08 | ||
|
|
bf17871b82 | ||
|
|
4198d91b89 | ||
|
|
338853b5d3 | ||
|
|
8ca99b9f09 | ||
|
|
66be4aa5e3 | ||
|
|
f31c72f310 | ||
|
|
e4072752bc | ||
|
|
165ef29416 | ||
|
|
b4224ed8f3 | ||
|
|
9f5f688385 | ||
|
|
3edd4e1a82 | ||
|
|
f994d6f3ae | ||
|
|
508fde4009 | ||
|
|
e82169dcab | ||
|
|
00cae77ec7 | ||
|
|
e03eb17c08 | ||
|
|
9a8a7316ae | ||
|
|
557a8af3bc | ||
|
|
53e0622b54 | ||
|
|
17e10509c0 | ||
|
|
491b0a8e33 | ||
|
|
bac2781a20 | ||
|
|
c7587c016e | ||
|
|
123fdfd314 | ||
|
|
3c11a4a930 | ||
|
|
ae9b25ac69 | ||
|
|
1f5444e96a | ||
|
|
f7bfc774ba | ||
|
|
72161a64b2 | ||
|
|
60d7e940e2 | ||
|
|
6bc9e7ebda | ||
|
|
7f4427432c | ||
|
|
2867bbf195 | ||
|
|
444daf9224 | ||
|
|
d720c6cfff | ||
|
|
aaefc83a6c | ||
|
|
3aaafae053 | ||
|
|
ff04d3535c | ||
|
|
a559397feb | ||
|
|
d610289812 | ||
|
|
adb4701e00 | ||
|
|
ef0722b4b2 | ||
|
|
419d8052d3 | ||
|
|
998024e913 | ||
|
|
596eedd3e7 | ||
|
|
e93cd9ff50 | ||
|
|
7dea0f23de | ||
|
|
de7dd7f015 | ||
|
|
f2c55d01c4 | ||
|
|
2201fd839b | ||
|
|
7f8ded9851 | ||
|
|
bf94bb9d43 | ||
|
|
ab41cb2cda | ||
|
|
92fcd31eac | ||
|
|
c259ec5408 | ||
|
|
4cf7d0c828 | ||
|
|
94d1a5e8d7 | ||
|
|
6402d8d58c | ||
|
|
c548e789bb | ||
|
|
8476cf692f | ||
|
|
f1328fb913 | ||
|
|
3303b079c5 | ||
|
|
7df0d16131 | ||
|
|
f2ee84b6a3 | ||
|
|
60005b35e4 | ||
|
|
e068281e28 | ||
|
|
48d66eb648 | ||
|
|
c285d5409e | ||
|
|
f36a6987e4 | ||
|
|
efd2ca9040 | ||
|
|
a35e5a314a | ||
|
|
cc45608423 | ||
|
|
25a3825a1d | ||
|
|
0a69b45126 | ||
|
|
a64bf63639 | ||
|
|
29cd27b545 | ||
|
|
a6cb24fa1a | ||
|
|
81c130ffc9 | ||
|
|
db669a0c6e | ||
|
|
2f9c4d0045 | ||
|
|
0bf6091305 | ||
|
|
ad2c969097 | ||
|
|
b7fb71ffe2 | ||
|
|
cf4bd8bb8d | ||
|
|
ec318d01fa | ||
|
|
a891b73401 | ||
|
|
dd2ffda387 | ||
|
|
b2b96e0b15 | ||
|
|
7c909e822f | ||
|
|
15dfce33df | ||
|
|
095e5c0e09 | ||
|
|
fb81e8f8b4 | ||
|
|
d8a5329834 | ||
|
|
e53be4b387 | ||
|
|
fba5655a44 | ||
|
|
28c71e88e2 | ||
|
|
29999007f6 | ||
|
|
349c0d4836 | ||
|
|
54ba6d80c0 | ||
|
|
d832c0f434 | ||
|
|
c60c4dd375 | ||
|
|
37a427f692 | ||
|
|
38ef4b7467 | ||
|
|
f195daa092 | ||
|
|
17f4195bcc | ||
|
|
f13f4adcbb | ||
|
|
d72f3aa758 | ||
|
|
98ab1b6428 | ||
|
|
208195f425 | ||
|
|
5cb280f986 | ||
|
|
9aec606c69 | ||
|
|
5c8cc0d536 | ||
|
|
43eed1ac92 | ||
|
|
e883ff295d | ||
|
|
c1e51e08d3 | ||
|
|
039a74a8b9 | ||
|
|
a029071b8f | ||
|
|
244e4580e9 | ||
|
|
e1ff4c47b9 | ||
|
|
0345c1bc1d | ||
|
|
f1ab6120d2 | ||
|
|
8f26f6df83 | ||
|
|
d0e196d210 | ||
|
|
e6c1065d19 | ||
|
|
45c96908e9 | ||
|
|
434fd32c90 | ||
|
|
0e3968124c | ||
|
|
632552f55d | ||
|
|
a7391144b3 | ||
|
|
918f149a63 | ||
|
|
1f6454cc90 | ||
|
|
4540f2653b | ||
|
|
fc1ea7f496 | ||
|
|
9f3457797f | ||
|
|
0b01b5217b | ||
|
|
cade33c647 | ||
|
|
dd8b700a2c | ||
|
|
417e72ebfd | ||
|
|
b8d045f5cf | ||
|
|
879a59085b | ||
|
|
b32d271fee | ||
|
|
21eb0837e8 | ||
|
|
b78fdc0cb1 | ||
|
|
a1ea765b95 | ||
|
|
39af228ac4 | ||
|
|
7c0549a923 | ||
|
|
f44b29522c | ||
|
|
682534e475 | ||
|
|
bbb4d7b6d7 | ||
|
|
5bb1bb080f | ||
|
|
058f057426 | ||
|
|
d1fe2d05f4 | ||
|
|
b9a3806f9e | ||
|
|
b25fea49fe | ||
|
|
83cbc11d46 | ||
|
|
0f685d9b42 | ||
|
|
d86b831364 | ||
|
|
0050266a50 | ||
|
|
b6300a0869 | ||
|
|
4ba998c5db | ||
|
|
2fb1f9aed3 | ||
|
|
85ea5b0b50 | ||
|
|
d349b74a4f | ||
|
|
3a9743fce4 | ||
|
|
2817844e89 | ||
|
|
7943a48cc3 | ||
|
|
953182d44a | ||
|
|
045d019149 | ||
|
|
d1514f57bd | ||
|
|
fdb65ab8b1 | ||
|
|
81123fb972 | ||
|
|
738060ebfa | ||
|
|
07b0f22a3f | ||
|
|
e03e5ba01d | ||
|
|
d896ce2b53 | ||
|
|
44d8a59361 | ||
|
|
344d35bbe9 | ||
|
|
fe71154626 | ||
|
|
65cbbc1ef8 | ||
|
|
d37c958637 | ||
|
|
9eb010da50 | ||
|
|
7e9029e337 | ||
|
|
00c3e3c8e0 | ||
|
|
7192546eb8 | ||
|
|
4c4c22a316 | ||
|
|
56044c7851 | ||
|
|
828169e611 | ||
|
|
1452e977a0 | ||
|
|
ede69eef7f | ||
|
|
03230eaa9c | ||
|
|
7dc157f9be | ||
|
|
854313a759 | ||
|
|
46ba5940c2 | ||
|
|
42c5d3fc4b | ||
|
|
d4e045ac24 | ||
|
|
8bc9f9a05f | ||
|
|
93e1b5e612 | ||
|
|
4f69699b71 | ||
|
|
f4f5ca2aaa | ||
|
|
8071dca9ad | ||
|
|
178f2d7949 | ||
|
|
65febdd13a | ||
|
|
f77c450cda | ||
|
|
f2af6c1170 | ||
|
|
43b83f8ed7 | ||
|
|
af88e63dff | ||
|
|
f6ee26c3da | ||
|
|
e8de6fa5d4 | ||
|
|
3ae5e79ec8 | ||
|
|
e9331aa0c0 | ||
|
|
ba4141934f | ||
|
|
96a7343142 | ||
|
|
a2e6d8e968 | ||
|
|
4ce37b7aca | ||
|
|
b92ad318f1 | ||
|
|
2d6231fd3d | ||
|
|
4e5e319d5b | ||
|
|
b66d921053 | ||
|
|
f12905b531 | ||
|
|
f216975378 | ||
|
|
3a3d5cbe9c | ||
|
|
10555c719e | ||
|
|
58768072ef | ||
|
|
455e003567 | ||
|
|
49f7bcf271 | ||
|
|
c2e41588aa | ||
|
|
a1eac37bd2 | ||
|
|
0370af58f1 | ||
|
|
8df0500f55 | ||
|
|
e4b8cfc768 | ||
|
|
a7757ec4d0 | ||
|
|
25a8db2a29 | ||
|
|
48fd387779 | ||
|
|
59c4bbb4ab | ||
|
|
2dc1c91955 | ||
|
|
ae154c86ed | ||
|
|
e9588061d7 | ||
|
|
0a88230ec4 | ||
|
|
a27b9b4299 | ||
|
|
aaec2cd51d | ||
|
|
34c9890f41 | ||
|
|
e8038863c3 | ||
|
|
694e3fd8cf | ||
|
|
40ae6568a4 | ||
|
|
4944e9e180 | ||
|
|
a24206eb96 | ||
|
|
d6b4ab75ee | ||
|
|
3e4b608a80 | ||
|
|
28319eb07e | ||
|
|
5889620a6a | ||
|
|
9764718c32 | ||
|
|
28b70e5910 | ||
|
|
4c2f8d9337 | ||
|
|
2cc0376756 | ||
|
|
8e051cae46 | ||
|
|
778a61a3c2 | ||
|
|
46e3f6df1f | ||
|
|
03022d169e | ||
|
|
9803253363 | ||
|
|
a55382e4ad | ||
|
|
b211b810d1 | ||
|
|
25e880d355 | ||
|
|
e43777bb5f | ||
|
|
efc60a1703 | ||
|
|
54f072991d | ||
|
|
a58893d1e3 | ||
|
|
865eb93c2d | ||
|
|
49f52bbcb3 | ||
|
|
9d1d0fe57a | ||
|
|
ea1c436ea1 | ||
|
|
3f9a1c08cc | ||
|
|
c586d4e8ca | ||
|
|
60ffe1d103 | ||
|
|
b5177ce290 | ||
|
|
d1aa665657 | ||
|
|
f130981546 | ||
|
|
bc347bab7a | ||
|
|
21228abfde | ||
|
|
e417437355 | ||
|
|
0bb720401b | ||
|
|
d35f2ad92b | ||
|
|
57759cb1a1 | ||
|
|
9e95da4eaa | ||
|
|
911c2d0bf4 | ||
|
|
116ca22def | ||
|
|
52fb884550 | ||
|
|
5cb38995c0 | ||
|
|
3c8e15dbc1 |
@@ -34,7 +34,7 @@ jobs:
|
||||
build:
|
||||
working_directory: ~/babel
|
||||
docker:
|
||||
- image: circleci/node:11
|
||||
- image: circleci/node:12
|
||||
steps:
|
||||
- checkout
|
||||
- restore-cache: *restore-yarn-cache
|
||||
@@ -42,7 +42,7 @@ jobs:
|
||||
- run: yarn --version
|
||||
- run: make test-ci-coverage
|
||||
# Builds babel-standalone with the regular Babel config
|
||||
- run: make build
|
||||
- run: IS_PUBLISH=true make build
|
||||
# test-ci-coverage doesn't test babel-standalone, as trying to gather coverage
|
||||
# data for a JS file that's several megabytes large is bound to fail. Here,
|
||||
# we just run the babel-standalone test separately.
|
||||
|
||||
@@ -10,5 +10,8 @@ end_of_line = lf
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
|
||||
[*.{md,markdown}]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
@@ -5,8 +5,8 @@ package.json
|
||||
lerna.json
|
||||
packages/babel-runtime
|
||||
!packages/babel-plugin-transform-runtime/scripts
|
||||
!packages/babel-runtime-corejs2/core-js.js
|
||||
packages/babel-runtime-corejs2
|
||||
packages/babel-runtime-corejs3
|
||||
packages/*/node_modules
|
||||
packages/*/lib
|
||||
packages/*/dist
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"root": true,
|
||||
"plugins": ["prettier", "@babel/development", "import"],
|
||||
"extends": "babel",
|
||||
"plugins": ["local-rules", "prettier"],
|
||||
"rules": {
|
||||
"prettier/prettier": "error"
|
||||
},
|
||||
@@ -12,8 +12,10 @@
|
||||
{
|
||||
"files": ["packages/*/src/**/*.js", "codemods/*/src/**/*.js"],
|
||||
"rules": {
|
||||
"local-rules/no-undefined-identifier": "error",
|
||||
"local-rules/no-deprecated-clone": "error"
|
||||
"@babel/development/no-undefined-identifier": "error",
|
||||
"@babel/development/no-deprecated-clone": "error",
|
||||
"import/no-extraneous-dependencies": "error",
|
||||
"guard-for-in": "error"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -31,7 +33,8 @@
|
||||
"files": ["packages/babel-plugin-*/src/index.js"],
|
||||
"excludedFiles": ["packages/babel-plugin-transform-regenerator/**/*.js"],
|
||||
"rules": {
|
||||
"local-rules/plugin-name": "error"
|
||||
"@babel/development/plugin-name": "error",
|
||||
"eqeqeq": ["error", "always", { "null": "ignore" }]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
12
.github/CHANGELOG-6to5.md
vendored
12
.github/CHANGELOG-6to5.md
vendored
@@ -84,7 +84,7 @@
|
||||
* More performance improvements.
|
||||
* Parsing is now ~30% faster thanks to [marijnh/acorn@7264bc0178e7e6af7cfe02e9e0c6b26ee0e6007f](https://github.com/marijnh/acorn/commit/7264bc0178e7e6af7cfe02e9e0c6b26ee0e6007f).
|
||||
* **New Feature**
|
||||
* Optional `es6.blockScopingTDZ` is now completely functional and handles all edgecases.
|
||||
* Optional `es6.blockScopingTDZ` is now completely functional and handles all edge cases.
|
||||
* `super` in object literals.
|
||||
* Tail call optimisation. Thanks [@RReverser](https://github.com/RReverser)!
|
||||
|
||||
@@ -474,7 +474,7 @@
|
||||
* **Polish**
|
||||
* Rest parameters now allocate the array before populating.
|
||||
* **Internal**
|
||||
* `for...in` loops have been changed to optimized `for` loops - better performance and no enumeration of protoype keys.
|
||||
* `for...in` loops have been changed to optimized `for` loops - better performance and no enumeration of prototype keys.
|
||||
* Parts of the code generator have now been optimized thanks to [gaearon](https://github.com/gaearon).
|
||||
|
||||
## 2.12.3
|
||||
@@ -643,7 +643,7 @@
|
||||
|
||||
* **Bug Fix**
|
||||
* Better handling of number literal property keys.
|
||||
* Handle `NewExpression` paren insertion edegcases better.
|
||||
* Handle `NewExpression` paren insertion edge cases better.
|
||||
* **Internal**
|
||||
* Fix incorrect AST node `identifier("this")`.
|
||||
* Better `toIdentifier` method that handles reserved words.
|
||||
@@ -850,7 +850,7 @@
|
||||
|
||||
## 1.14.10
|
||||
|
||||
* Fix let scoping unneccesary override.
|
||||
* Fix let scoping unnecessary override.
|
||||
|
||||
## 1.14.6
|
||||
|
||||
@@ -973,7 +973,7 @@
|
||||
|
||||
## 1.12.21
|
||||
|
||||
* Fix unneccesary let scoping replacement.
|
||||
* Fix unnecessary let scoping replacement.
|
||||
* Add `commonInterop` module formatter. Thanks [@Naddiseo](https://github.com/Naddiseo).
|
||||
* Fix `return` outside of function body bug. Thanks [@brentburg](https://github.com/brentburg).
|
||||
* Add more flexible option types.
|
||||
@@ -1020,7 +1020,7 @@
|
||||
|
||||
## 1.12.12
|
||||
|
||||
* Make scope tracker more reliable to handle all edgecases.
|
||||
* Make scope tracker more reliable to handle all edge cases.
|
||||
|
||||
## 1.12.11
|
||||
|
||||
|
||||
4
.github/CHANGELOG-v4.md
vendored
4
.github/CHANGELOG-v4.md
vendored
@@ -127,7 +127,7 @@
|
||||
## 4.6.4
|
||||
|
||||
* **Bug Fix**
|
||||
* Fix `ForOfStatement` not proplery inheriting labels.
|
||||
* Fix `ForOfStatement` not properly inheriting labels.
|
||||
* When in closure mode in block scoping transformer, properly check for variable shadowing.
|
||||
* **New Feature**
|
||||
* New `utility.inlineEnvironmentVariables` and `utility.inlineExpression` transformers.
|
||||
@@ -153,7 +153,7 @@
|
||||
* **Spec Compliancy**
|
||||
* `for...of` now outputs in a lengthy `try...catch` this is to ensure spec compliancy in regards to iterator returns and abrupt completions. See [google/traceur-compiler#1773](https://github.com/google/traceur-compiler/issues/1773) and [babel/babel/#838](https://github.com/babel/babel/issues/838) for more information.
|
||||
* **Polish**
|
||||
* Rest parameters that are only refered to via number properties on member expressions are desugared into a direct `arguments` reference. Thanks [@neVERberleRfellerER](https://github.com/neVERberleRfellerER)!
|
||||
* Rest parameters that are only referred to via number properties on member expressions are desugared into a direct `arguments` reference. Thanks [@neVERberleRfellerER](https://github.com/neVERberleRfellerER)!
|
||||
* `$ babel` no longer exits on syntax errors.
|
||||
* **Internal**
|
||||
* Upgrade `browserify`.
|
||||
|
||||
13
.github/CHANGELOG-v5.md
vendored
13
.github/CHANGELOG-v5.md
vendored
@@ -262,8 +262,8 @@ Issues with publish process.
|
||||
* Register labels as bindings to fix undeclared variable checks.
|
||||
* **Polish**
|
||||
* Remove unnecessary string binary expressions when transforming template literals.
|
||||
* Support module live bindings in arbitary positions not in Program statement position.
|
||||
* Throw error when attemping to replace a `Program` root node with another node not of type `Program`.
|
||||
* Support module live bindings in arbitrary positions not in Program statement position.
|
||||
* Throw error when attempting to replace a `Program` root node with another node not of type `Program`.
|
||||
* Optimise rest parameters in spread element position and allocate rest array at the earliest common ancestor of all references.
|
||||
* Generate original number representation when value was not changed.
|
||||
* Check for invalid binding identifiers when generating inferred method names.
|
||||
@@ -543,12 +543,12 @@ Issues with publish process.
|
||||
* **Internal**
|
||||
* Removed native inheritance support from classes.
|
||||
* Added `replaceWithSourceString` path API.
|
||||
* Split up `es3.propertyLiterals` and `es3.memberExpressionLiterals` transformers to `minfication.propertyLiterals` and `es3.memberExpressionLiterals`.
|
||||
* Split up `es3.propertyLiterals` and `es3.memberExpressionLiterals` transformers to `minification.propertyLiterals` and `es3.memberExpressionLiterals`.
|
||||
|
||||
## 5.2.6
|
||||
|
||||
* **Internal**
|
||||
* Fix transformer aliases being accidently set as deprecated ones.
|
||||
* Fix transformer aliases being accidentally set as deprecated ones.
|
||||
* Expose `Pipeline` as `TransformerPipeline` instead.
|
||||
|
||||
## 5.2.5
|
||||
@@ -824,10 +824,10 @@ Issues with publish process.
|
||||
* Save register cache on tick instead of `SIGINT`.
|
||||
* Enable strict mode on babel-node eval flag.
|
||||
* **Bug Fixes**
|
||||
* Add support for live bindings. This change also increases the reliablity of export specifier renaming.
|
||||
* Add support for live bindings. This change also increases the reliability of export specifier renaming.
|
||||
* Add support for super update and non equals assignment expressions.
|
||||
* Rename shadow constructor binding in classes.
|
||||
* Seed next iteration bindings with previous fresh bindings when reassinging loop block scoped variables.
|
||||
* Seed next iteration bindings with previous fresh bindings when reassigning loop block scoped variables.
|
||||
* Fix new expression spread referencing the wrong constructor.
|
||||
* Call `resolveModuleSource` on dynamic imports.
|
||||
* Added `param` to list of duplicate declaration kinds.
|
||||
@@ -836,4 +836,3 @@ Issues with publish process.
|
||||
* ES7 Abstract References have been removed.
|
||||
* Experimental option has been removed in favor of a stage option.
|
||||
* Rename `returnUsedHelpers` to `metadataUsedHelpers`.
|
||||
|
||||
14
.github/CHANGELOG-v6.md
vendored
14
.github/CHANGELOG-v6.md
vendored
@@ -19,7 +19,7 @@
|
||||
|
||||
## 6.26.0 (2017-08-16)
|
||||
|
||||
> Backports for some folks (also other's when we accidently merged PRs from both 6.x/master)
|
||||
> Backports for some folks (also other's when we accidentally merged PRs from both 6.x/master)
|
||||
> Lesson learned: just use `master` and backport on another branch.
|
||||
|
||||
#### :eyeglasses: Spec Compliancy
|
||||
@@ -1767,7 +1767,7 @@ typeof Symbol.prototype === 'object'
|
||||
* [#3456](https://github.com/babel/babel/pull/3456) Use the real sourcemap API and handle input sourcemaps - Fixes [#7259](https://github.com/babel/babel/issues/7259). ([@loganfsmyth](https://github.com/loganfsmyth))
|
||||
* [#4507](https://github.com/babel/babel/pull/4507) Only set options in cli if different from default. ([@danez](https://github.com/danez))
|
||||
|
||||
Fix an issue with defaults not being overidden. This was causing options like `comments: false` not to work correctly.
|
||||
Fix an issue with defaults not being overridden. This was causing options like `comments: false` not to work correctly.
|
||||
|
||||
* [#4508](https://github.com/babel/babel/pull/4508) Support custom ports for V8 --inspect. ([@andykant](https://github.com/andykant))
|
||||
* [#4562](https://github.com/babel/babel/pull/4562) Fixes [#2299](https://github.com/babel/babel/issues/2299): Prevent REPL from printing implicit 'use strict'. ([@hzoo](https://github.com/hzoo))
|
||||
@@ -2084,7 +2084,7 @@ Also added more tests and will update Babel to use the new preset options after
|
||||
|
||||
## v6.13.1 (2016-08-04)
|
||||
|
||||
We had a regression in our new babel-preset-es2015@6.13.0 that made it unexpectedly backward-incompatible. This release introduces a new alternative plugin-options approach that is uglier but supports backward-compatiblity. Ideally new plugins would use the new `module.exports = function(babel, options){ }` approach and simple skip supporting `babel-core@<6.13.x`.
|
||||
We had a regression in our new babel-preset-es2015@6.13.0 that made it unexpectedly backward-incompatible. This release introduces a new alternative plugin-options approach that is uglier but supports backward-compatibility. Ideally new plugins would use the new `module.exports = function(babel, options){ }` approach and simple skip supporting `babel-core@<6.13.x`.
|
||||
|
||||
#### Bug Fix
|
||||
* `babel-core`, `babel-preset-es2015`
|
||||
@@ -2092,7 +2092,7 @@ We had a regression in our new babel-preset-es2015@6.13.0 that made it unexpecte
|
||||
|
||||
## v6.13.0 (2016-08-04)
|
||||
|
||||
> Since the last release we've created https://github.com/babel/notes to track discussions on our slack and high level features/changes that could be added - definetely check it out if you're interested in Babel's development!
|
||||
> Since the last release we've created https://github.com/babel/notes to track discussions on our slack and high level features/changes that could be added - definitely check it out if you're interested in Babel's development!
|
||||
|
||||
Some small but very important additions in this release:
|
||||
|
||||
@@ -3817,7 +3817,7 @@ Thanks to @samwgoldman for all the new flow support!
|
||||
* **New Feature**
|
||||
* Add support for `function.sent`.
|
||||
* **Internal**
|
||||
* Bump `invariant` depenency version.
|
||||
* Bump `invariant` dependency version.
|
||||
* **Polish**
|
||||
* Infer filename from the base directory when resolving plugins and presets.
|
||||
* Allow JSX pragma to be specified in line comments.
|
||||
@@ -3887,7 +3887,7 @@ Thanks to @samwgoldman for all the new flow support!
|
||||
## 6.1.2
|
||||
|
||||
* **Bug Fix**
|
||||
* Fix bug where the parser wouldn't allow typed annotated default parametesr in arrow functions.
|
||||
* Fix bug where the parser wouldn't allow typed annotated default parameters in arrow functions.
|
||||
* Add existence check to `NodePath#has` to ensure safeness when making comparisons.
|
||||
* Protect against replacing a class expression with a name inferred version that would
|
||||
result in it never being transformed.
|
||||
@@ -3976,7 +3976,7 @@ Thanks to @samwgoldman for all the new flow support!
|
||||
* Fix SystemJS module formatter exporting function parameters.
|
||||
* Ensure that invalid identifier JSX attribute keys are quoted when transforming to calls.
|
||||
* Fix ES3 property literal plugin.
|
||||
* Fix parameters after defaults in arrow functions refering to the wrong `arguments`.
|
||||
* Fix parameters after defaults in arrow functions referring to the wrong `arguments`.
|
||||
|
||||
## 6.0.13
|
||||
|
||||
|
||||
16
.github/actions/create-release-tag/Dockerfile
vendored
Normal file
16
.github/actions/create-release-tag/Dockerfile
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM debian:stable-slim
|
||||
|
||||
LABEL "name"="create-release-tag"
|
||||
LABEL "version"="0.0.1"
|
||||
|
||||
LABEL "com.github.actions.name"="Create release tag"
|
||||
LABEL "com.github.actions.description"="Creates a release tag equal to the last commit message"
|
||||
LABEL "com.github.actions.icon"="tag"
|
||||
LABEL "com.github.actions.color"="gray-dark"
|
||||
|
||||
ADD entrypoint.sh /action/entrypoint.sh
|
||||
|
||||
RUN chmod +x /action/entrypoint.sh
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends git
|
||||
|
||||
ENTRYPOINT ["/action/entrypoint.sh"]
|
||||
14
.github/actions/create-release-tag/entrypoint.sh
vendored
Normal file
14
.github/actions/create-release-tag/entrypoint.sh
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# GitHub doesn't support running actions on new tags yet: we need to run it on the commit.
|
||||
# For this reason, we can't be sure that the tag already exists. We can use the commit
|
||||
# message to create the tag. If the tag already exists locally, they won't conflict because
|
||||
# they have the same name and are on the same commit.
|
||||
|
||||
echo "INFO: Getting release version..."
|
||||
tag_name=$(git log --oneline --format=%B -1 $GITHUB_SHA)
|
||||
|
||||
echo "INFO: Creating new tag..."
|
||||
(git tag $tag_name $GITHUB_SHA) || echo "INFO: Tag already exists"
|
||||
16
.github/actions/filter-commit-message/Dockerfile
vendored
Normal file
16
.github/actions/filter-commit-message/Dockerfile
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
FROM debian:stable-slim
|
||||
|
||||
LABEL "name"="filter"
|
||||
LABEL "version"="1.1.0"
|
||||
|
||||
LABEL "com.github.actions.name"="Filter commit message"
|
||||
LABEL "com.github.actions.description"="Stop a workflow if the message of the current commit doesn't match the pattern"
|
||||
LABEL "com.github.actions.icon"="filter"
|
||||
LABEL "com.github.actions.color"="gray-dark"
|
||||
|
||||
ADD entrypoint.sh /action/entrypoint.sh
|
||||
|
||||
RUN chmod +x /action/entrypoint.sh
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends git
|
||||
|
||||
ENTRYPOINT ["/action/entrypoint.sh"]
|
||||
15
.github/actions/filter-commit-message/entrypoint.sh
vendored
Normal file
15
.github/actions/filter-commit-message/entrypoint.sh
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
pattern=$1
|
||||
message=$(git log --oneline --format=%B -1 $GITHUB_SHA)
|
||||
|
||||
if echo "$message" | grep -Pq "$pattern"; then
|
||||
echo "INFO: $message matches $pattern"
|
||||
exit 0
|
||||
else
|
||||
echo "INFO: $message does not match $pattern"
|
||||
# 78 is the "neutral" exit status
|
||||
exit 78
|
||||
fi
|
||||
19
.github/actions/trigger-github-release/Dockerfile
vendored
Normal file
19
.github/actions/trigger-github-release/Dockerfile
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM node:10
|
||||
|
||||
LABEL "name" = "trigger-github-release"
|
||||
LABEL "version" = "0.0.1"
|
||||
|
||||
LABEL "com.github.actions.name" = "Trigger GitHub release"
|
||||
LABEL "com.github.actions.description" = "Trigger a new GitHub release and generate the changelog using lerna-changelog."
|
||||
LABEL "com.github.actions.icon" = "tag"
|
||||
LABEL "com.github.actions.color" = "yellow"
|
||||
|
||||
ADD entrypoint.sh /action/entrypoint.sh
|
||||
ADD package.json /action/package.json
|
||||
ADD package-lock.json /action/package-lock.json
|
||||
ADD release.js /action/release.js
|
||||
ADD update-changelog.js /action/update-changelog.js
|
||||
|
||||
RUN chmod +x /action/entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["/action/entrypoint.sh"]
|
||||
38
.github/actions/trigger-github-release/entrypoint.sh
vendored
Executable file
38
.github/actions/trigger-github-release/entrypoint.sh
vendored
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "INFO: Installing action dependencies..."
|
||||
(cd /action; npm ci)
|
||||
|
||||
echo "INFO: Getting release version..."
|
||||
current_tag=$(git describe --abbrev=0 --tags $GITHUB_SHA)
|
||||
|
||||
last_tag=$(git describe --abbrev=0 --tags $current_tag^)
|
||||
echo "INFO: New version is $current_tag; last version is $last_tag."
|
||||
|
||||
echo "INFO: Generating the changelog..."
|
||||
|
||||
# lerna-changelog expects the token to be provided as GITHUB_AUTH,
|
||||
# but GitHub actions don't allow to predefine custom env vars prefixed with
|
||||
# GITHUB_. We need to define it here.
|
||||
changelog=$(
|
||||
GITHUB_AUTH="$GITHUB_TOKEN" \
|
||||
node /action/node_modules/.bin/lerna-changelog --tag-from $last_tag --tag-to $current_tag
|
||||
)
|
||||
|
||||
echo "INFO: Publishing the new GitHub release..."
|
||||
echo "$changelog" | node /action/release $current_tag
|
||||
|
||||
echo "INFO: Updating CHANGELOG.md..."
|
||||
echo "$changelog" | node /action/update-changelog
|
||||
|
||||
echo "INFO: Committing changelog..."
|
||||
git add CHANGELOG.md
|
||||
git -c user.name="$COMMIT_AUTHOR_NAME" -c user.email="$COMMIT_AUTHOR_EMAIL" \
|
||||
commit -m "Add $current_tag to CHANGELOG.md [skip ci]" --no-verify --quiet
|
||||
|
||||
echo "INFO: Pushing updates..."
|
||||
git push "https://${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" master
|
||||
|
||||
echo "INFO: Done! Don't forget to thank new contributors :)"
|
||||
1415
.github/actions/trigger-github-release/package-lock.json
generated
vendored
Normal file
1415
.github/actions/trigger-github-release/package-lock.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12
.github/actions/trigger-github-release/package.json
vendored
Normal file
12
.github/actions/trigger-github-release/package.json
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "@internal/trigger-github-release",
|
||||
"version": "0.0.1",
|
||||
"author": "Nicolò Ribaudo <nicolo.ribaudo@gmail.com>",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@octokit/rest": "^16.3.0",
|
||||
"get-stdin": "^6.0.0",
|
||||
"lerna-changelog": "^0.8.2"
|
||||
}
|
||||
}
|
||||
26
.github/actions/trigger-github-release/release.js
vendored
Normal file
26
.github/actions/trigger-github-release/release.js
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
const [ /* node */, /* file */, tag ] = process.argv;
|
||||
|
||||
const getStdin = require("get-stdin");
|
||||
const octokit = require("@octokit/rest")();
|
||||
|
||||
octokit.authenticate({
|
||||
type: "token",
|
||||
token: process.env.GITHUB_TOKEN
|
||||
});
|
||||
|
||||
const [ repoOwner, repoName ] = process.env.GITHUB_REPOSITORY.split("/");
|
||||
|
||||
getStdin()
|
||||
.then(changelog => octokit.repos.createRelease({
|
||||
owner: repoOwner,
|
||||
repo: repoName,
|
||||
tag_name: tag,
|
||||
body: changelog,
|
||||
draft: true,
|
||||
}))
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
31
.github/actions/trigger-github-release/update-changelog.js
vendored
Normal file
31
.github/actions/trigger-github-release/update-changelog.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
const getStdin = require("get-stdin");
|
||||
const fs = require("fs").promises;
|
||||
const path = require("path");
|
||||
|
||||
const { GITHUB_WORKSPACE } = process.env;
|
||||
|
||||
const INSERTION_POINT = "<!-- insert-new-changelog-here -->";
|
||||
const CHANGELOG = path.resolve(GITHUB_WORKSPACE, "CHANGELOG.md");
|
||||
|
||||
main();
|
||||
async function main() {
|
||||
let [stdin, changelog] = await Promise.all([
|
||||
getStdin(),
|
||||
fs.readFile(CHANGELOG, "utf8"),
|
||||
]);
|
||||
|
||||
if (!changelog.includes(INSERTION_POINT)) {
|
||||
throw new Error(`Missing "${INSERTION_POINT}" in CHANGELOG.md`);
|
||||
}
|
||||
|
||||
// Remove committers
|
||||
stdin = stdin.split("\n\n#### Committers")[0];
|
||||
changelog = changelog.replace(
|
||||
INSERTION_POINT,
|
||||
INSERTION_POINT + "\n" + stdin
|
||||
);
|
||||
|
||||
await fs.writeFile(CHANGELOG, changelog);
|
||||
}
|
||||
53
.github/main.workflow
vendored
Normal file
53
.github/main.workflow
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
workflow "Release" {
|
||||
on = "push"
|
||||
resolves = [
|
||||
"Trigger GitHub release",
|
||||
# GitHub actions are too slow for this, it takes more than 15 mins.
|
||||
# Publishing to npm from GH actions is a cool idea, but it's a lot faster to
|
||||
# publish locally.
|
||||
# "Publish to npm",
|
||||
]
|
||||
}
|
||||
|
||||
action "Trigger GitHub release" {
|
||||
uses = "./.github/actions/trigger-github-release/"
|
||||
secrets = ["GITHUB_TOKEN"]
|
||||
env = {
|
||||
COMMIT_AUTHOR_NAME = "Babel Bot"
|
||||
COMMIT_AUTHOR_EMAIL = "babel-bot@users.noreply.github.com"
|
||||
}
|
||||
needs = ["Create release tag"]
|
||||
}
|
||||
|
||||
action "Publish to npm" {
|
||||
uses = "docker://node:10"
|
||||
secrets = ["NPM_TOKEN"]
|
||||
runs = "make"
|
||||
args = "publish-ci"
|
||||
env = {
|
||||
CI = "true"
|
||||
}
|
||||
needs = ["Create release tag"]
|
||||
}
|
||||
|
||||
# When GitHub Actions will support the "release" event for public
|
||||
# repositories, we won't need this checks anymore.
|
||||
action "Create release tag" {
|
||||
uses = "./.github/actions/create-release-tag"
|
||||
needs = [
|
||||
"Is version commit",
|
||||
"On master branch",
|
||||
]
|
||||
}
|
||||
|
||||
action "Is version commit" {
|
||||
uses = "./.github/actions/filter-commit-message"
|
||||
# This regex is run using "grep -P".
|
||||
# The (-\\S+) part is for 7.0.0-beta.1 releases.
|
||||
args = "^v(\\d+\\.){2}\\d+(-\\S+)?$"
|
||||
}
|
||||
|
||||
action "On master branch" {
|
||||
uses = "actions/bin/filter@master"
|
||||
args = "branch master"
|
||||
}
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,5 +1,8 @@
|
||||
.npmrc
|
||||
|
||||
.DS_Store
|
||||
/node_modules
|
||||
/.github/actions/*/node_modules
|
||||
/packages/*/node_modules
|
||||
/packages/*/LICENSE
|
||||
!/packages/babel-parser/LICENSE
|
||||
@@ -15,6 +18,7 @@ coverage
|
||||
dist
|
||||
/.package.json
|
||||
package-lock.json
|
||||
!/.github/actions/*/package-lock.json
|
||||
|
||||
/packages/babel-runtime/helpers/*.js
|
||||
!/packages/babel-runtime/helpers/toArray.js
|
||||
@@ -36,6 +40,11 @@ package-lock.json
|
||||
/packages/babel-runtime-corejs2/core-js/**/*.js
|
||||
!/packages/babel-runtime-corejs2/core-js/map.js
|
||||
|
||||
/packages/babel-runtime-corejs3/helpers/*.js
|
||||
/packages/babel-runtime-corejs3/helpers/esm/*.js
|
||||
/packages/babel-runtime-corejs3/core-js/**/*.js
|
||||
/packages/babel-runtime-corejs3/core-js-stable/**/*.js
|
||||
|
||||
/packages/babel-register/test/.babel
|
||||
/packages/babel-cli/test/tmp
|
||||
/packages/babel-node/test/tmp
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
package.json
|
||||
packages/babel-preset-env/data
|
||||
packages/*/test/fixtures/**/input.*
|
||||
packages/*/test/fixtures/**/exec.*
|
||||
packages/*/test/fixtures/**/output.*
|
||||
|
||||
@@ -5,6 +5,7 @@ cache:
|
||||
yarn: true
|
||||
node_js:
|
||||
# We test the latest version on circleci
|
||||
- '11'
|
||||
- '10'
|
||||
- '8'
|
||||
- '6'
|
||||
|
||||
521
CHANGELOG.md
521
CHANGELOG.md
@@ -15,6 +15,521 @@ See [CHANGELOG - v4](/.github/CHANGELOG-v4.md), [CHANGELOG - v5](/.github/CHANGE
|
||||
See [CHANGELOG - 6to5](/.github/CHANGELOG-6to5.md) for the pre-4.0.0 version changelog.
|
||||
See [Babylon's CHANGELOG](packages/babylon/CHANGELOG.md) for the Babylon pre-7.0.0-beta.29 version changelog.
|
||||
|
||||
<!-- DO NOT CHANGE THESE COMMENTS - See .github/actions/trigger-github-release/update-changelog.js -->
|
||||
<!-- insert-new-changelog-here -->
|
||||
|
||||
## v7.5.0 (2019-07-04)
|
||||
|
||||
#### :eyeglasses: Spec Compliance
|
||||
* `babel-parser`
|
||||
* [#10099](https://github.com/babel/babel/pull/10099) Disallow "let" as name at lexical bindings ([@g-plane](https://github.com/g-plane))
|
||||
|
||||
#### :rocket: New Feature
|
||||
* `babel-parser`
|
||||
* [#10091](https://github.com/babel/babel/pull/10091) BigInt type for Flow ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9450](https://github.com/babel/babel/pull/9450) Implement f# pipeline in parser ([@mAAdhaTTah](https://github.com/mAAdhaTTah))
|
||||
* [#9912](https://github.com/babel/babel/pull/9912) [legacy decorators] Allow decorating generator methods ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9864](https://github.com/babel/babel/pull/9864) [@babel/parser] Add "allowUndeclaredExports" option ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-dynamic-import`, `babel-preset-env-standalone`, `babel-preset-env`
|
||||
* [#10109](https://github.com/babel/babel/pull/10109) Add @babel/plugin-proposal-dynamic-import to @babel/preset-env ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-dynamic-import`, `babel-plugin-transform-modules-amd`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-modules-systemjs`
|
||||
* [#9552](https://github.com/babel/babel/pull/9552) Create @babel/plugin-proposal-dynamic-import ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-pipeline-operator`, `babel-plugin-syntax-pipeline-operator`
|
||||
* [#9984](https://github.com/babel/babel/pull/9984) Transform for F# Pipeline ([@thiagoarrais](https://github.com/thiagoarrais))
|
||||
* `babel-plugin-transform-typescript`, `babel-types`
|
||||
* [#9785](https://github.com/babel/babel/pull/9785) Implement TypeScript namespace support ([@Wolvereness](https://github.com/Wolvereness))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-proposal-do-expressions`, `babel-traverse`
|
||||
* [#10072](https://github.com/babel/babel/pull/10072) fix await and yield for do expression ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-helpers`, `babel-plugin-transform-react-constant-elements`
|
||||
* [#10155](https://github.com/babel/babel/pull/10155) Added es3 backward compatibility for react helper code ([@sormy](https://github.com/sormy))
|
||||
* `babel-preset-env`
|
||||
* [#10127](https://github.com/babel/babel/pull/10127) Bump compat-table and updating preset-env mappings ([@existentialism](https://github.com/existentialism))
|
||||
* [#8897](https://github.com/babel/babel/pull/8897) Allow `defaults` query in preset-env ([@existentialism](https://github.com/existentialism))
|
||||
* `babel-parser`
|
||||
* [#10132](https://github.com/babel/babel/pull/10132) fix import typeof in declare module ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#10084](https://github.com/babel/babel/pull/10084) flow - allow type parameter defaults in function declarations ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-types`
|
||||
* [#10126](https://github.com/babel/babel/pull/10126) fix exportKind declaration in babel-types ([@zxbodya](https://github.com/zxbodya))
|
||||
* `babel-node`
|
||||
* [#9951](https://github.com/babel/babel/pull/9951) Prevents exception on PnP ([@arcanis](https://github.com/arcanis))
|
||||
* `babel-generator`
|
||||
* [#10041](https://github.com/babel/babel/pull/10041) Fix printer for explicitly inexact Flow types ([@mrtnzlml](https://github.com/mrtnzlml))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#10034](https://github.com/babel/babel/pull/10034) Use scope for typescript export removals ([@Wolvereness](https://github.com/Wolvereness))
|
||||
* [#10019](https://github.com/babel/babel/pull/10019) fix(typescript): erase default export if exporting a TS type ([@airato](https://github.com/airato))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-class-properties`, `babel-traverse`
|
||||
* [#10029](https://github.com/babel/babel/pull/10029) Fixed computed keys for class expression ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`, `babel-preset-env`
|
||||
* [#9384](https://github.com/babel/babel/pull/9384) Retry to fix object spread helper compatibility ([@saschanaz](https://github.com/saschanaz))
|
||||
* `babel-plugin-transform-destructuring`
|
||||
* [#10013](https://github.com/babel/babel/pull/10013) fix destructuring rest with template literal ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-transform-typescript`
|
||||
* [#9610](https://github.com/babel/babel/pull/9610) Use `injectInitialization` to generate ts parameter properties ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-core`
|
||||
* [#10157](https://github.com/babel/babel/pull/10157) Fix incorrect usage of $o instead of %o in debug ([@ChlorideCull](https://github.com/ChlorideCull))
|
||||
* `babel-helpers`
|
||||
* [#10117](https://github.com/babel/babel/pull/10117) Simplify the helpers for classPrivateField{Get,Set} ([@arv](https://github.com/arv))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#10047](https://github.com/babel/babel/pull/10047) Refactor isImportTypeOnly helper function ([@Andarist](https://github.com/Andarist))
|
||||
|
||||
#### :memo: Documentation
|
||||
* `babel-plugin-proposal-partial-application`, `babel-plugin-syntax-partial-application`
|
||||
* [#10103](https://github.com/babel/babel/pull/10103) docs: update readmes ([@xtuc](https://github.com/xtuc))
|
||||
|
||||
## v7.4.5 (2019-05-21)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-parser`
|
||||
* [#9998](https://github.com/babel/babel/pull/9998) Fix location for optional params in arrow functions ([@danez](https://github.com/danez))
|
||||
* [#9982](https://github.com/babel/babel/pull/9982) Avoid unnecessary work during lookahead ([@danez](https://github.com/danez))
|
||||
* [#9922](https://github.com/babel/babel/pull/9922) fix: allow shebang directive ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-preset-env`
|
||||
* [#10002](https://github.com/babel/babel/pull/10002) Update preset-env dependencies and fix fixtures ([@danez](https://github.com/danez))
|
||||
* [#9978](https://github.com/babel/babel/pull/9978) Fix mobile browsers support in preset-env ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9902](https://github.com/babel/babel/pull/9902) Fix destructuring assignments being transpiled for edge 15 ([@eps1lon](https://github.com/eps1lon))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#9944](https://github.com/babel/babel/pull/9944) fix(typescript): erase type exports ([@airato](https://github.com/airato))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-parser`
|
||||
* [#9995](https://github.com/babel/babel/pull/9995) Do not use lookahead when parsing construct signature declarations in TS ([@danez](https://github.com/danez))
|
||||
* [#9989](https://github.com/babel/babel/pull/9989) Only compute Position if not already in state ([@danez](https://github.com/danez))
|
||||
* [#9988](https://github.com/babel/babel/pull/9988) Do not use lookahead when parsing jsx expression containers ([@danez](https://github.com/danez))
|
||||
* [#9987](https://github.com/babel/babel/pull/9987) Do not use lookahead when parsing imports in declare module in flow ([@danez](https://github.com/danez))
|
||||
* [#9985](https://github.com/babel/babel/pull/9985) Do not use lookahead when parsing declare module or declare module.exports in flow ([@danez](https://github.com/danez))
|
||||
* [#9983](https://github.com/babel/babel/pull/9983) Do not use lookahead when parsing dynamic import or import.meta ([@danez](https://github.com/danez))
|
||||
* [#9979](https://github.com/babel/babel/pull/9979) Remove guardedHandlers from ASTs ([@danez](https://github.com/danez))
|
||||
* `babel-preset-env`
|
||||
* [#9992](https://github.com/babel/babel/pull/9992) use console.warn for warning ([@schu34](https://github.com/schu34))
|
||||
* `babel-core`
|
||||
* [#9945](https://github.com/babel/babel/pull/9945) Fixed null error in plugin opts and added a test for it ([@divbhasin](https://github.com/divbhasin))
|
||||
* `babel-core`, `babel-traverse`
|
||||
* [#9909](https://github.com/babel/babel/pull/9909) Add missing space in error messages ([@pnavarrc](https://github.com/pnavarrc))
|
||||
|
||||
#### :house: Internal
|
||||
* `babel-node`
|
||||
* [#9914](https://github.com/babel/babel/pull/9914) [babel-node] Do not hardcode node flags ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.4.4 (2019-04-26)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-transform-flow-comments`
|
||||
* [#9897](https://github.com/babel/babel/pull/9897) fix flow-comments - class type paramters and implements ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9893](https://github.com/babel/babel/pull/9893) fix flow-comment - object destructuring ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-parser`
|
||||
* [#9766](https://github.com/babel/babel/pull/9766) Add TS support to @babel/parser's Scope ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9865](https://github.com/babel/babel/pull/9865) Always register global bindings as exportable ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9887](https://github.com/babel/babel/pull/9887) Fix TypeScript readonly error location ([@existentialism](https://github.com/existentialism))
|
||||
* [#9869](https://github.com/babel/babel/pull/9869) ! remove constant context assertions ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9890](https://github.com/babel/babel/pull/9890) Fix parsing typescript bodiless methods with the estree plugin also enabled ([@devongovett](https://github.com/devongovett))
|
||||
* `babel-traverse`
|
||||
* [#9870](https://github.com/babel/babel/pull/9870) Fix flow types in traverse/path/family and enable flow ([@danez](https://github.com/danez))
|
||||
* `babel-plugin-proposal-class-properties`, `babel-plugin-transform-modules-commonjs`, `babel-types`
|
||||
* [#9861](https://github.com/babel/babel/pull/9861) Fix: PrivateName Identifier should not be isReferenced. ([@coreyfarrell](https://github.com/coreyfarrell))
|
||||
* `babel-types`
|
||||
* [#9832](https://github.com/babel/babel/pull/9832) Fix typo in cloneNode. ([@evandervalk](https://github.com/evandervalk))
|
||||
|
||||
|
||||
## v7.4.3 (2019-04-02)
|
||||
|
||||
#### :eyeglasses: Spec Compliance
|
||||
* `babel-parser`
|
||||
* [#9769](https://github.com/babel/babel/pull/9769) Don't accept '\08' or '\09' in strict mode. ([@danez](https://github.com/danez))
|
||||
* [#9768](https://github.com/babel/babel/pull/9768) Correctly check for-in and for-of loop for invalid left-hand side. ([@danez](https://github.com/danez))
|
||||
* [#9767](https://github.com/babel/babel/pull/9767) Parse right-hand-side of for/of as an assignment expression. ([@danez](https://github.com/danez))
|
||||
* [#9748](https://github.com/babel/babel/pull/9748) [typescript] parsing template literal as type . ([@tanhauhau](https://github.com/tanhauhau))
|
||||
|
||||
#### :rocket: New Feature
|
||||
* `babel-plugin-transform-runtime`
|
||||
* [#9754](https://github.com/babel/babel/pull/9754) [runtime-corejs3] Only polyfill instance methods when it might be needed. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-polyfill`
|
||||
* [#9780](https://github.com/babel/babel/pull/9780) Closes [#9232](https://github.com/babel/babel/issues/9232), add some missed modules to `@babel/polyfill/noConflict`. ([@zloirock](https://github.com/zloirock))
|
||||
* `babel-cli`
|
||||
* [#9807](https://github.com/babel/babel/pull/9807) Upgrade lodash to 4.17.11. ([@danez](https://github.com/danez))
|
||||
* `babel-helper-module-transforms`, `babel-plugin-transform-modules-commonjs`
|
||||
* [#9802](https://github.com/babel/babel/pull/9802) Fix lazy option of babel-plugin-transform-modules-commonjs. ([@AndreasCag](https://github.com/AndreasCag))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-private-methods`
|
||||
* [#9801](https://github.com/babel/babel/pull/9801) Fix super method call in private instance method calling overridden method. ([@MattiasBuelens](https://github.com/MattiasBuelens))
|
||||
* `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-destructuring`
|
||||
* [#9416](https://github.com/babel/babel/pull/9416) Destructuring: Fix handling of impure computed keys with object rest. ([@motiz88](https://github.com/motiz88))
|
||||
* `babel-plugin-transform-destructuring`
|
||||
* [#9412](https://github.com/babel/babel/pull/9412) Destructuring: Fix array unpacking assignments with holes on RHS. ([@motiz88](https://github.com/motiz88))
|
||||
* `babel-traverse`
|
||||
* [#9415](https://github.com/babel/babel/pull/9415) @babel/traverse: Fix NodePath.getData. ([@71](https://github.com/71))
|
||||
* `babel-parser`
|
||||
* [#9760](https://github.com/babel/babel/pull/9760) Allow HTML comments on first line. ([@danez](https://github.com/danez))
|
||||
* [#9700](https://github.com/babel/babel/pull/9700) Fix compatibility between estree and TS plugin. ([@danez](https://github.com/danez))
|
||||
* `babel-helpers`
|
||||
* [#9756](https://github.com/babel/babel/pull/9756) Allow coreJS Symbol to be type object. ([@conartist6](https://github.com/conartist6))
|
||||
* `babel-preset-env`
|
||||
* [#9752](https://github.com/babel/babel/pull/9752) Normalize `core-js` entry points. ([@zloirock](https://github.com/zloirock))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-parser`
|
||||
* [#9762](https://github.com/babel/babel/pull/9762) Optimize parseBindingAtom code to get better error messages. ([@danez](https://github.com/danez))
|
||||
* `babel-core`, `babel-plugin-transform-for-of`
|
||||
* [#9698](https://github.com/babel/babel/pull/9698) Move array reference into `for` head initializer. ([@danez](https://github.com/danez))
|
||||
|
||||
#### :house: Internal
|
||||
* Other
|
||||
* [#9806](https://github.com/babel/babel/pull/9806) Update test262. ([@danez](https://github.com/danez))
|
||||
* `babel-parser`, `babel-preset-typescript`
|
||||
* [#9761](https://github.com/babel/babel/pull/9761) Explicit labels for tokenTypes. ([@danez](https://github.com/danez))
|
||||
|
||||
|
||||
## v7.4.2 (2019-03-21)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-parser`
|
||||
* [#9725](https://github.com/babel/babel/pull/9725) Modules might be in loose mode when checking for undecl exports ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9719](https://github.com/babel/babel/pull/9719) Fix scope checks with enabled flow plugin ([@danez](https://github.com/danez))
|
||||
* `babel-helpers`, `babel-plugin-transform-named-capturing-groups-regex`
|
||||
* [#9726](https://github.com/babel/babel/pull/9726) Fix typo in wrapRegExp helper ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-preset-env`
|
||||
* [#9724](https://github.com/babel/babel/pull/9724) Closes [#9713](https://github.com/babel/babel/issues/9713) ([@zloirock](https://github.com/zloirock))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-preset-env`
|
||||
* [#9732](https://github.com/babel/babel/pull/9732) Mark the core-js warning as such ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9716](https://github.com/babel/babel/pull/9716) Tweak preset-env corejs/useBuiltIns warning and error messages ([@existentialism](https://github.com/existentialism))
|
||||
|
||||
#### :house: Internal
|
||||
* [#9718](https://github.com/babel/babel/pull/9718) Bump Babel deps ([@existentialism](https://github.com/existentialism))
|
||||
|
||||
## v7.4.1 (2019-03-20)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-preset-env`
|
||||
* [#9711](https://github.com/babel/babel/pull/9711) Alias @babel/preset-env/data/built-ins.json.js ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9709](https://github.com/babel/babel/pull/9709) Bring back isPluginRequired ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.4.0 (2019-03-19)
|
||||
|
||||
#### :eyeglasses: Spec Compliance
|
||||
* `babel-parser`
|
||||
* [#9529](https://github.com/babel/babel/pull/9529) Add `readonly` to TypeScript type modifier ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9534](https://github.com/babel/babel/pull/9534) TypeScript Constant contexts ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9637](https://github.com/babel/babel/pull/9637) Update identifier parsing per Unicode v12 ([@mathiasbynens](https://github.com/mathiasbynens))
|
||||
* [#9616](https://github.com/babel/babel/pull/9616) Allow any reserved word in `export {} from` specifiers ([@danez](https://github.com/danez))
|
||||
* [#9612](https://github.com/babel/babel/pull/9612) [TS] Disallow type casts in arrow parameters ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9607](https://github.com/babel/babel/pull/9607) Refactor parsing object members ([@danez](https://github.com/danez))
|
||||
* [#9599](https://github.com/babel/babel/pull/9599) Disallow duplicate params in methods ([@danez](https://github.com/danez))
|
||||
* [#9586](https://github.com/babel/babel/pull/9586) Treat for loop body as part of loop scope ([@danez](https://github.com/danez))
|
||||
* `babel-parser`, `babel-plugin-transform-typescript`
|
||||
* [#9641](https://github.com/babel/babel/pull/9641) Allow context type annotation on getters/setters ([@matt-tingen](https://github.com/matt-tingen))
|
||||
* `babel-plugin-proposal-unicode-property-regex`, `babel-plugin-transform-dotall-regex`, `babel-plugin-transform-unicode-regex`
|
||||
* [#9636](https://github.com/babel/babel/pull/9636) Update babel-plugin-proposal-unicode-property-regex for Unicode v12 ([@mathiasbynens](https://github.com/mathiasbynens))
|
||||
* `babel-generator`, `babel-parser`, `babel-plugin-transform-flow-strip-types`, `babel-plugin-transform-modules-systemjs`
|
||||
* [#9589](https://github.com/babel/babel/pull/9589) Check exported bindings are defined ([@danez](https://github.com/danez))
|
||||
* `babel-generator`, `babel-parser`, `babel-plugin-transform-classes`, `babel-plugin-transform-flow-comments`, `babel-plugin-transform-flow-strip-types`, `babel-plugin-transform-new-target`
|
||||
* [#9493](https://github.com/babel/babel/pull/9493) Introduce scope tracking in the parser ([@danez](https://github.com/danez))
|
||||
|
||||
#### :rocket: New Feature
|
||||
* `babel-helpers`, `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-runtime`, `babel-plugin-transform-typescript`, `babel-polyfill`, `babel-preset-env`, `babel-register`, `babel-runtime-corejs2`, `babel-runtime-corejs3`
|
||||
* [#7646](https://github.com/babel/babel/pull/7646) Update to `core-js@3` ([@zloirock](https://github.com/zloirock))
|
||||
* `babel-template`
|
||||
* [#9648](https://github.com/babel/babel/pull/9648) Add %%placeholders%% support to @babel/template ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-parser`, `babel-plugin-proposal-partial-application`
|
||||
* [#9474](https://github.com/babel/babel/pull/9474) Partial application plugin ([@byara](https://github.com/byara))
|
||||
* `babel-generator`, `babel-helper-create-class-features-plugin`, `babel-helpers`, `babel-plugin-proposal-private-methods`
|
||||
* [#9446](https://github.com/babel/babel/pull/9446) Private Static Class Methods (Stage 3) ([@tim-mc](https://github.com/tim-mc))
|
||||
* `babel-generator`, `babel-types`
|
||||
* [#9542](https://github.com/babel/babel/pull/9542) Add placeholders support to @babel/types and @babel/generator ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-parser`
|
||||
* [#9364](https://github.com/babel/babel/pull/9364) Add parser support for placeholders ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-generator`, `babel-parser`, `babel-plugin-syntax-partial-application`, `babel-types`
|
||||
* [#9343](https://github.com/babel/babel/pull/9343) Partial Application Syntax: Stage 1 ([@byara](https://github.com/byara))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-helper-create-class-features-plugin`, `babel-helper-replace-supers`, `babel-plugin-proposal-private-methods`
|
||||
* [#9704](https://github.com/babel/babel/pull/9704) Fix `super` Method Calls in Class Private Methods ([@tim-mc](https://github.com/tim-mc))
|
||||
* `babel-parser`
|
||||
* [#9699](https://github.com/babel/babel/pull/9699) Correctly parse TS TypeAssertions around arrow functions ([@danez](https://github.com/danez))
|
||||
* [#9600](https://github.com/babel/babel/pull/9600) Fix scope check for 2nd+ lexical bindings ([@danez](https://github.com/danez))
|
||||
* [#9593](https://github.com/babel/babel/pull/9593) [TS] Correctly forget `await`s after parsing async arrows with type args ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9585](https://github.com/babel/babel/pull/9585) Fix strict mode prescanning with EmptyStatement ([@danez](https://github.com/danez))
|
||||
* `babel-core`, `babel-plugin-transform-for-of`
|
||||
* [#9697](https://github.com/babel/babel/pull/9697) Correctly preserve reference to array in for-of loop ([@danez](https://github.com/danez))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#9693](https://github.com/babel/babel/pull/9693) [plugin-transform-typescript] Fix transpiling of TS abstract classes with decorators ([@agoldis](https://github.com/agoldis))
|
||||
* `babel-traverse`, `babel-types`
|
||||
* [#9692](https://github.com/babel/babel/pull/9692) Fix TSFunctionType visitors definition ([@penielse](https://github.com/penielse))
|
||||
* `babel-plugin-proposal-object-rest-spread`
|
||||
* [#9628](https://github.com/babel/babel/pull/9628) [proposal-object-rest-spread] fix templateLiteral in extractNormalizedKeys ([@pnowak](https://github.com/pnowak))
|
||||
* `babel-plugin-transform-modules-systemjs`
|
||||
* [#9639](https://github.com/babel/babel/pull/9639) System modules - Hoist classes like other variables ([@guybedford](https://github.com/guybedford))
|
||||
* `babel-generator`, `babel-parser`
|
||||
* [#9618](https://github.com/babel/babel/pull/9618) Disallow escape sequences in contextual keywords ([@danez](https://github.com/danez))
|
||||
* `babel-helper-split-export-declaration`, `babel-plugin-transform-modules-commonjs`, `babel-traverse`
|
||||
* [#9613](https://github.com/babel/babel/pull/9613) Don't add params of anonymous exported function decls to the outer scope ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-transform-parameters`, `babel-plugin-transform-typescript`, `babel-types`
|
||||
* [#9605](https://github.com/babel/babel/pull/9605) [plugin-transform-typescript] Strip type imports used in Enums and object types ([@echenley](https://github.com/echenley))
|
||||
* `babel-helper-call-delegate`, `babel-plugin-transform-parameters`
|
||||
* [#9601](https://github.com/babel/babel/pull/9601) Don't loose "this" in helper-call-delegate ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-modules-commonjs`, `babel-traverse`, `babel-types`
|
||||
* [#9492](https://github.com/babel/babel/pull/9492) Mark FOO in "var { x: FOO }˝ as a binding, not as a reference ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-preset-env`
|
||||
* [#9595](https://github.com/babel/babel/pull/9595) preset-env: Sort versions before determining lowest ([@jridgewell](https://github.com/jridgewell))
|
||||
* `babel-helper-define-map`, `babel-helper-hoist-variables`, `babel-parser`, `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-destructuring`, `babel-plugin-transform-modules-systemjs`, `babel-traverse`, `babel-types`
|
||||
* [#9518](https://github.com/babel/babel/pull/9518) Use `for..of Object.keys` instead of `for..in` ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-parser`
|
||||
* [#9646](https://github.com/babel/babel/pull/9646) Remove input and length from state ([@danez](https://github.com/danez))
|
||||
* [#9645](https://github.com/babel/babel/pull/9645) Reorganize token types and use a map for them ([@danez](https://github.com/danez))
|
||||
* [#9591](https://github.com/babel/babel/pull/9591) Remove always false param allowExpressionBody ([@danez](https://github.com/danez))
|
||||
* `babel-standalone`, `babel-types`
|
||||
* [#9025](https://github.com/babel/babel/pull/9025) Make babel-standalone an ESModule and enable flow ([@danez](https://github.com/danez))
|
||||
* `babel-generator`
|
||||
* [#9579](https://github.com/babel/babel/pull/9579) change var name for coherence ([@tanohzana](https://github.com/tanohzana))
|
||||
|
||||
#### :house: Internal
|
||||
* Other
|
||||
* [#9588](https://github.com/babel/babel/pull/9588) Publish to npm using a GitHub action ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9640](https://github.com/babel/babel/pull/9640) Switch from rollup-stream to rollup ([@danez](https://github.com/danez))
|
||||
* [#9647](https://github.com/babel/babel/pull/9647) Add WarningsToErrorsPlugin to webpack to avoid missing build problems on CI ([@danez](https://github.com/danez))
|
||||
* [#9624](https://github.com/babel/babel/pull/9624) Update dependencies ([@danez](https://github.com/danez))
|
||||
* [#9623](https://github.com/babel/babel/pull/9623) Add editorconfig for Makefile ([@danez](https://github.com/danez))
|
||||
* [#9587](https://github.com/babel/babel/pull/9587) Update test262 ([@danez](https://github.com/danez))
|
||||
* [#9582](https://github.com/babel/babel/pull/9582) Minify bundles on circle for repl ([@danez](https://github.com/danez))
|
||||
* `babel-register`
|
||||
* [#9678](https://github.com/babel/babel/pull/9678) Remove dependency on home-or-tmp package ([@AmirS](https://github.com/AmirS))
|
||||
|
||||
## v7.3.4 (2019-02-25)
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-parser`
|
||||
* [#9572](https://github.com/babel/babel/pull/9572) Fix TypeScript parsers missing token check (#9571) ([@elevatebart](https://github.com/elevatebart))
|
||||
* [#9521](https://github.com/babel/babel/pull/9521) Also check AssignmentPatterns for duplicate export name ([@danez](https://github.com/danez))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-helper-replace-supers`, `babel-plugin-proposal-class-properties`, `babel-traverse`
|
||||
* [#9508](https://github.com/babel/babel/pull/9508) Use correct "this" in static fields ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-preset-env`
|
||||
* [#9566](https://github.com/babel/babel/pull/9566) Closes [#9465](https://github.com/babel/babel/issues/9465) ([@zloirock](https://github.com/zloirock))
|
||||
* `babel-types`
|
||||
* [#9539](https://github.com/babel/babel/pull/9539) babel-types is* type checks accept null | undefiend as value TS type ([@ian-craig](https://github.com/ian-craig))
|
||||
* `babel-plugin-transform-block-scoping`, `babel-traverse`
|
||||
* [#9532](https://github.com/babel/babel/pull/9532) Migrate some duplicate binding tests to traverse ([@danez](https://github.com/danez))
|
||||
* `babel-generator`
|
||||
* [#9524](https://github.com/babel/babel/pull/9524) Fix typescript generator params ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* [#9523](https://github.com/babel/babel/pull/9523) Fix flow babel-generator function parantheses ([@tanhauhau](https://github.com/tanhauhau))
|
||||
|
||||
#### :house: Internal
|
||||
* Other
|
||||
* [#9561](https://github.com/babel/babel/pull/9561) Update CHANGELOG.md using the "Trigger GitHub release" action ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-modules-systemjs`
|
||||
* [#9541](https://github.com/babel/babel/pull/9541) Enable eqeqeq rule in eslint ([@danez](https://github.com/danez))
|
||||
* `babel-generator`, `babel-parser`, `babel-plugin-transform-flow-strip-types`, `babel-traverse`
|
||||
* [#9522](https://github.com/babel/babel/pull/9522) Make tests spec compliant by avoiding duplicate declarations in input files ([@danez](https://github.com/danez))
|
||||
* `babel-plugin-transform-proto-to-assign`
|
||||
* [#9533](https://github.com/babel/babel/pull/9533) Add import/no-extraneous-dependencies to ESLint ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.3.3 (2019-02-15)
|
||||
|
||||
#### :eyeglasses: Spec Compliancy
|
||||
* `babel-generator`
|
||||
* [#9501](https://github.com/babel/babel/pull/9501) Correctly output escapes in directives ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-parser`
|
||||
* [#9477](https://github.com/babel/babel/pull/9477) Fix regression with let ([@danez](https://github.com/danez))
|
||||
* [#9431](https://github.com/babel/babel/pull/9431) Typescript function destructured params ([@mhcgrq](https://github.com/mhcgrq))
|
||||
* [#9463](https://github.com/babel/babel/pull/9463) Fix range for TypeScript optional parameter in arrow function ([@existentialism](https://github.com/existentialism))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-plugin-proposal-class-properties`, `babel-plugin-transform-classes`, `babel-plugin-transform-parameters`
|
||||
* [#9458](https://github.com/babel/babel/pull/9458) Fix duplicated assertThisInitialized calls in constructors ([@rubennorte](https://github.com/rubennorte))
|
||||
|
||||
#### :house: Internal
|
||||
* Other
|
||||
* [#9517](https://github.com/babel/babel/pull/9517) Add duplicate-package-checker-webpack-plugin ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9469](https://github.com/babel/babel/pull/9469) Exclude generate @babel/types files from coverage report ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-parser`
|
||||
* [#9491](https://github.com/babel/babel/pull/9491) Better error output in parser tests ([@danez](https://github.com/danez))
|
||||
## v7.3.2 (2019-02-04)
|
||||
|
||||
Various spec compliancy fixes and better support for smart pipelines and private methods.
|
||||
|
||||
Thanks @gverni, @naffiq, @spondbob and @dstaley for their first PRs!
|
||||
|
||||
#### :eyeglasses: Spec Compliancy
|
||||
* `babel-parser`
|
||||
* [#9403](https://github.com/babel/babel/pull/9403) Fix line continuation with Unicode line terminators. ([@danez](https://github.com/danez))
|
||||
* [#9400](https://github.com/babel/babel/pull/9400) Make yield a contextual keyword. ([@danez](https://github.com/danez))
|
||||
* [#9398](https://github.com/babel/babel/pull/9398) Correctly fail for invalid yield in for. ([@danez](https://github.com/danez))
|
||||
* [#9375](https://github.com/babel/babel/pull/9375) Make let a contextual keyword. ([@danez](https://github.com/danez))
|
||||
|
||||
#### :rocket: New Feature
|
||||
* `babel-plugin-proposal-pipeline-operator`
|
||||
* [#9401](https://github.com/babel/babel/pull/9401) Support for await and yield in pipelines. ([@thiagoarrais](https://github.com/thiagoarrais))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-proposal-private-methods`, `babel-types`
|
||||
* [#9453](https://github.com/babel/babel/pull/9453) Fix duplicate definition error in private class methods. ([@gverni](https://github.com/gverni))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-private-methods`
|
||||
* [#9423](https://github.com/babel/babel/pull/9423) Transform private async and generator functions. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-proposal-object-rest-spread`, `babel-plugin-transform-destructuring`
|
||||
* [#9414](https://github.com/babel/babel/pull/9414) Destructuring: Create assignments from ForX non-declaration patterns. ([@motiz88](https://github.com/motiz88))
|
||||
* `babel-plugin-transform-typescript`
|
||||
* [#9095](https://github.com/babel/babel/pull/9095) Retain JSX pragma if defined as a comment. ([@dstaley](https://github.com/dstaley))
|
||||
* `babel-parser`
|
||||
* [#9406](https://github.com/babel/babel/pull/9406) Fix location/range on TypeScript ExportNamedDeclarations. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9371](https://github.com/babel/babel/pull/9371) Allow toplevel await with option and correctly mark await keyword as unexpected. ([@danez](https://github.com/danez))
|
||||
* `babel-plugin-transform-typescript`, `babel-types`
|
||||
* [#8738](https://github.com/babel/babel/pull/8738) Fix typescript side effects. ([@yuri-karadzhov](https://github.com/yuri-karadzhov))
|
||||
* `babel-generator`, `babel-types`
|
||||
* [#9396](https://github.com/babel/babel/pull/9396) Fix support for Flow's QualifiedTypeIdentifier. ([@existentialism](https://github.com/existentialism))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-parser`
|
||||
* [#9405](https://github.com/babel/babel/pull/9405) Simplify await and yield tracking in params. ([@danez](https://github.com/danez))
|
||||
* `babel-parser`, `babel-preset-typescript`
|
||||
* [#9402](https://github.com/babel/babel/pull/9402) Unify reserved word checking and update error messages. ([@danez](https://github.com/danez))
|
||||
|
||||
## v7.3.1 (2019-01-22)
|
||||
|
||||
This release fixes some regressions introduced in v7.3.0
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-helpers`, `babel-plugin-proposal-object-rest-spread`, `babel-preset-env`
|
||||
* [#9379](https://github.com/babel/babel/pull/9379) Revert "Differentiate object spread and non-spread properties (#9341)". ([@danez](https://github.com/danez))
|
||||
* `babel-parser`
|
||||
* [#9377](https://github.com/babel/babel/pull/9377) fix new keyword broken by recent refactoring. ([@danez](https://github.com/danez))
|
||||
|
||||
## v7.3.0 (2019-01-21)
|
||||
|
||||
Thanks to @jamesgeorge007 and @armano2 for their first PR!
|
||||
|
||||
#### :eyeglasses: Spec Compliancy
|
||||
* `babel-parser`
|
||||
* [#9314](https://github.com/babel/babel/pull/9314) Disallow async functions as loop body. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9315](https://github.com/babel/babel/pull/9315) Parse class heritage as strict mode code. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9313](https://github.com/babel/babel/pull/9313) Disallow `new import(x)` and `import(x,)`. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* [#9311](https://github.com/babel/babel/pull/9311) Disallow trailing comma after rest. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
#### :rocket: New Feature
|
||||
* `babel-helper-create-class-features-plugin`, `babel-helpers`, `babel-plugin-proposal-private-methods`
|
||||
* [#9101](https://github.com/babel/babel/pull/9101) Private Class Methods Stage 3: Private Accessors. ([@tim-mc](https://github.com/tim-mc))
|
||||
* `babel-plugin-proposal-pipeline-operator`, `babel-plugin-syntax-pipeline-operator`
|
||||
* [#9179](https://github.com/babel/babel/pull/9179) Transform for the smart pipeline operator proposal. ([@thiagoarrais](https://github.com/thiagoarrais))
|
||||
* `babel-preset-env-standalone`, `babel-preset-env`
|
||||
* [#9345](https://github.com/babel/babel/pull/9345) Add support for transform-named-capturing-groups-regex in preset-env. ([@existentialism](https://github.com/existentialism))
|
||||
* `babel-helpers`, `babel-plugin-transform-named-capturing-groups-regex`
|
||||
* [#7105](https://github.com/babel/babel/pull/7105) Add @babel/plugin-transform-named-capturing-groups-regex. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-preset-env`
|
||||
* [#9323](https://github.com/babel/babel/pull/9323) Add support for proposal-json-strings in preset-env. ([@existentialism](https://github.com/existentialism))
|
||||
* `babel-generator`, `babel-types`
|
||||
* [#9309](https://github.com/babel/babel/pull/9309) Add emit and builder for TSImportType. ([@hzoo](https://github.com/hzoo))
|
||||
* `babel-parser`
|
||||
* [#9302](https://github.com/babel/babel/pull/9302) @babel/parser(ts): Add parsing of type import. ([@armano2](https://github.com/armano2))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-parser`
|
||||
* [#9336](https://github.com/babel/babel/pull/9336) Disallow usage of invalid keyword after export abstract statement in Typescript. ([@armano2](https://github.com/armano2))
|
||||
* [#9328](https://github.com/babel/babel/pull/9328) Fix handling newline with TypeScript declare and abstract classes. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9335](https://github.com/babel/babel/pull/9335) Fix range on TypeScript index signature parameters. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9292](https://github.com/babel/babel/pull/9292) Throw error if TypeScript class has empty implements. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9284](https://github.com/babel/babel/pull/9284) Fix location for typescript type assertions in AST. ([@danez](https://github.com/danez))
|
||||
* [#9276](https://github.com/babel/babel/pull/9276) Ensure modifiers are included in TSParameterProperty ranges. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9230](https://github.com/babel/babel/pull/9230) babel-parser: typescript: add missing bigint keyword. ([@armano2](https://github.com/armano2))
|
||||
* `babel-types`
|
||||
* [#9333](https://github.com/babel/babel/pull/9333) Copy "optional" property when cloning Identifier node. ([@unconfident](https://github.com/unconfident))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-helpers`, `babel-plugin-proposal-decorators`
|
||||
* [#9244](https://github.com/babel/babel/pull/9244) [decorators] Set method names at compile time instead of at runtime. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-helper-builder-react-jsx`, `babel-plugin-transform-react-jsx`
|
||||
* [#9119](https://github.com/babel/babel/pull/9119) Revert "Revert babel-helper-builder-react-jsx change from #4988". ([@danez](https://github.com/danez))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-private-methods`
|
||||
* [#9248](https://github.com/babel/babel/pull/9248) [private methods] Define private methods before executing initializers. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-preset-env`
|
||||
* [#9219](https://github.com/babel/babel/pull/9219) Fix handling scoped packages in preset-env include/exclude options. ([@existentialism](https://github.com/existentialism))
|
||||
|
||||
#### :nail_care: Polish
|
||||
* `babel-parser`
|
||||
* [#9348](https://github.com/babel/babel/pull/9348) Parser Performance Collection. ([@danez](https://github.com/danez))
|
||||
|
||||
#### :memo: Documentation
|
||||
* [#9370](https://github.com/babel/babel/pull/9370) add v7 downloads [skip ci]. ([@hzoo](https://github.com/hzoo))
|
||||
|
||||
#### :house: Internal
|
||||
* `babel-parser`
|
||||
* [#9312](https://github.com/babel/babel/pull/9312) Merge declaration and init of props in parser's state. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-types`
|
||||
* [#9245](https://github.com/babel/babel/pull/9245) [@babel/types] Moved generators related to babel-types into the babel-types package directory.. ([@cameron-martin](https://github.com/cameron-martin))
|
||||
* Other
|
||||
* [#9288](https://github.com/babel/babel/pull/9288) Test262 update. ([@existentialism](https://github.com/existentialism))
|
||||
* [#9290](https://github.com/babel/babel/pull/9290) Use 2014-present in license. ([@xtuc](https://github.com/xtuc))
|
||||
* [#9271](https://github.com/babel/babel/pull/9271) Bump license years for 2019. ([@berlamhenderson](https://github.com/berlamhenderson))
|
||||
* `babel-helpers`
|
||||
* [#9166](https://github.com/babel/babel/pull/9166) Add mixins support to the _decorate helper. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.2.5 (2018-12-21)
|
||||
|
||||
`@babel/polyfill` didn't get published correctly in v7.2.3 (#9227).
|
||||
|
||||
## v7.2.4 (2018-12-20)
|
||||
|
||||
Minify `@babel/standalone` and `@babel/preset-env-standalone`.
|
||||
|
||||
## v7.2.3 (2018-12-20)
|
||||
|
||||
This is a small release, mainly to test Lerna 3.
|
||||
We force-published `@babel/polyfill` and `@babel/preset-env`, since they should have been released respectively in v7.1.0 and v7.2.2 but for different reasons they didn't get updated.
|
||||
|
||||
Half of the commits in this release are made by first time contributors! Thanks to @cameron-martin, @cphamlet, @tanhauhau and @jedwards1211. :tada:
|
||||
|
||||
#### :rocket: New Feature
|
||||
* [#9110](https://github.com/babel/babel/pull/9110) Added type-level mapping between aliases and nodes that have that alias. ([@cameron-martin](https://github.com/cameron-martin))
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-transform-flow-strip-types`
|
||||
* [#9197](https://github.com/babel/babel/pull/9197) Strips flow directive fully. ([@tanhauhau](https://github.com/tanhauhau))
|
||||
* `babel-parser`
|
||||
* [#9184](https://github.com/babel/babel/pull/9184) Allow keywords to be used in type annotations. ([@danez](https://github.com/danez))
|
||||
|
||||
#### :house: Internal
|
||||
* `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-decorators`, `babel-plugin-proposal-private-methods`, `babel-traverse`
|
||||
* [#9206](https://github.com/babel/babel/pull/9206) Use @babel/eslint-plugin-developement. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
|
||||
## v7.2.2 (2018-12-15)
|
||||
|
||||
Mostly bug fixes and internal changes.
|
||||
Thanks to @paleite, @saschanaz and @joeldenning for their first PRs!
|
||||
|
||||
#### :bug: Bug Fix
|
||||
* `babel-plugin-transform-destructuring`, `babel-plugin-transform-spread`
|
||||
* [#9108](https://github.com/babel/babel/pull/9108) Correctly transform spreads to use proper concat method. ([@danez](https://github.com/danez))
|
||||
* `babel-parser`
|
||||
* [#9168](https://github.com/babel/babel/pull/9168) [parser] Handle flow comments with leading spaces. ([@vikr01](https://github.com/vikr01))
|
||||
* `babel-helper-module-transforms`, `babel-plugin-transform-modules-commonjs`
|
||||
* [#9171](https://github.com/babel/babel/pull/9171) Fix transforming empty export statement. ([@danez](https://github.com/danez))
|
||||
* `babel-node`
|
||||
* [#9148](https://github.com/babel/babel/pull/9148) Fix --root-mode option in babel-node. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-plugin-transform-classes`
|
||||
* [#9135](https://github.com/babel/babel/pull/9135) Inherit properties in function from method in loose mode. ([@rubennorte](https://github.com/rubennorte))
|
||||
* `babel-preset-env`
|
||||
* [#9140](https://github.com/babel/babel/pull/9140) Disable parameter-destructuring in Edge 18. ([@saschanaz](https://github.com/saschanaz))
|
||||
* `babel-plugin-transform-arrow-functions`, `babel-traverse`
|
||||
* [#9060](https://github.com/babel/babel/pull/9060) Not depending on return value of super(). Closes [#9020](https://github.com/babel/babel/issues/9020).. ([@joeldenning](https://github.com/joeldenning))
|
||||
|
||||
#### :house: Internal
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-nullish-coalescing-operator`, `babel-plugin-syntax-bigint`, `babel-plugin-transform-dotall-regex`
|
||||
* [#9176](https://github.com/babel/babel/pull/9176) Fix package.json repository URLs. ([@paleite](https://github.com/paleite))
|
||||
* Other
|
||||
* [#9158](https://github.com/babel/babel/pull/9158) add triage label to new issues [skip ci]. ([@danez](https://github.com/danez))
|
||||
* [#9143](https://github.com/babel/babel/pull/9143) Fix a typo from the issue template for bugs. ([@saschanaz](https://github.com/saschanaz))
|
||||
* [#9133](https://github.com/babel/babel/pull/9133) Move to travis vm based builds. ([@danez](https://github.com/danez))
|
||||
* [#9132](https://github.com/babel/babel/pull/9132) Ensure we always use repository versions of babel dependencies in tests. ([@danez](https://github.com/danez))
|
||||
* [#9131](https://github.com/babel/babel/pull/9131) Update issue templates [skip ci]. ([@hzoo](https://github.com/hzoo))
|
||||
* `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-class-properties`, `babel-plugin-proposal-decorators`
|
||||
* [#9059](https://github.com/babel/babel/pull/9059) Move decorators transform to @babel/helper-create-class-features-plugin. ([@nicolo-ribaudo](https://github.com/nicolo-ribaudo))
|
||||
* `babel-core`, `babel-parser`, `babel-template`
|
||||
* [#9128](https://github.com/babel/babel/pull/9128) Fix running flow on travis and update flow. ([@danez](https://github.com/danez))
|
||||
|
||||
## v7.2.1 (2018-12-04)
|
||||
|
||||
This release fixes a regression introduced in v7.2.0 (https://github.com/babel/babel/issues/9120)
|
||||
@@ -324,7 +839,7 @@ No change from rc.4. Finally released as https://babeljs.io/blog/2018/08/27/7.0.
|
||||
|
||||
## v7.0.0-rc.2 (2018-08-21)
|
||||
|
||||
A notable change is the addition of https://github.com/babel/babel/pull/8485 which enables https://github.com/babel/babel-loader/pull/660 (automatically doing `modules: false` for `@babel/preset-env` when using `babel-loader`.
|
||||
A notable change is the addition of https://github.com/babel/babel/pull/8485 which enables https://github.com/babel/babel-loader/pull/660 (automatically doing `modules: false` for `@babel/preset-env` when using `babel-loader`.
|
||||
|
||||
#### :boom: Breaking Change
|
||||
* `babel-core`
|
||||
@@ -479,7 +994,7 @@ Breaking Change in beta:
|
||||
## v7.0.0-beta.53 (2018-07-11)
|
||||
|
||||
- Fix for regression with paths on windows due to micromatch upgrade, remove yearly presets (not published)
|
||||
- (There was an issue with the Stage presets in this release, but it is also deprecated)
|
||||
- (There was an issue with the Stage presets in this release, but it is also deprecated)
|
||||
|
||||
#### :boom: Breaking Change
|
||||
* `babel-*`
|
||||
@@ -2133,7 +2648,7 @@ Initial release of typescript equivalent of how Babel handles flow with a new `b
|
||||
* `babel-plugin-check-es2015-constants`
|
||||
* [#5930](https://github.com/babel/babel/pull/5930) Spec compliancy of check-es2015-constants plugin. ([@maurobringolf](https://github.com/maurobringolf))
|
||||
|
||||
> Instead of throwing a compile time error when const is violated, Babel should insert a throw statement before the violation.
|
||||
> Instead of throwing a compile time error when const is violated, Babel should insert a throw statement before the violation.
|
||||
|
||||
#### :boom: Breaking Change
|
||||
* `babel-plugin-transform-flow-comments`
|
||||
|
||||
72
Gulpfile.js
72
Gulpfile.js
@@ -6,19 +6,17 @@ const chalk = require("chalk");
|
||||
const newer = require("gulp-newer");
|
||||
const babel = require("gulp-babel");
|
||||
const gulpWatch = require("gulp-watch");
|
||||
const gutil = require("gulp-util");
|
||||
const fancyLog = require("fancy-log");
|
||||
const filter = require("gulp-filter");
|
||||
const gulp = require("gulp");
|
||||
const path = require("path");
|
||||
const webpack = require("webpack");
|
||||
const merge = require("merge-stream");
|
||||
const rollup = require("rollup-stream");
|
||||
const source = require("vinyl-source-stream");
|
||||
const buffer = require("vinyl-buffer");
|
||||
const rollup = require("rollup");
|
||||
const rollupBabel = require("rollup-plugin-babel");
|
||||
const rollupNodeResolve = require("rollup-plugin-node-resolve");
|
||||
const registerStandalonePackageTask = require("./scripts/gulp-tasks")
|
||||
.registerStandalonePackageTask;
|
||||
const rollupReplace = require("rollup-plugin-replace");
|
||||
const { registerStandalonePackageTask } = require("./scripts/gulp-tasks");
|
||||
|
||||
const sources = ["codemods", "packages"];
|
||||
|
||||
@@ -36,13 +34,9 @@ function getIndexFromPackage(name) {
|
||||
return `${name}/src/index.js`;
|
||||
}
|
||||
|
||||
function compilationLogger(rollup) {
|
||||
function compilationLogger() {
|
||||
return through.obj(function(file, enc, callback) {
|
||||
gutil.log(
|
||||
`Compiling '${chalk.cyan(file.relative)}'${
|
||||
rollup ? " with rollup " : ""
|
||||
}...`
|
||||
);
|
||||
fancyLog(`Compiling '${chalk.cyan(file.relative)}'...`);
|
||||
callback(null, file);
|
||||
});
|
||||
}
|
||||
@@ -50,7 +44,7 @@ function compilationLogger(rollup) {
|
||||
function errorsLogger() {
|
||||
return plumber({
|
||||
errorHandler(err) {
|
||||
gutil.log(err.stack);
|
||||
fancyLog(err.stack);
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -91,32 +85,40 @@ function buildBabel(exclude) {
|
||||
}
|
||||
|
||||
function buildRollup(packages) {
|
||||
return merge(
|
||||
return Promise.all(
|
||||
packages.map(pkg => {
|
||||
return rollup({
|
||||
input: getIndexFromPackage(pkg),
|
||||
format: "cjs",
|
||||
plugins: [
|
||||
rollupBabel({
|
||||
envName: "babel-parser",
|
||||
}),
|
||||
rollupNodeResolve(),
|
||||
],
|
||||
})
|
||||
.pipe(source("index.js"))
|
||||
.pipe(buffer())
|
||||
.pipe(errorsLogger())
|
||||
.pipe(compilationLogger(/* rollup */ true))
|
||||
.pipe(gulp.dest(path.join(pkg, "lib")));
|
||||
const input = getIndexFromPackage(pkg);
|
||||
fancyLog(`Compiling '${chalk.cyan(input)}' with rollup ...`);
|
||||
return rollup
|
||||
.rollup({
|
||||
input,
|
||||
plugins: [
|
||||
rollupReplace({
|
||||
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
|
||||
}),
|
||||
rollupBabel({
|
||||
envName: "babel-parser",
|
||||
}),
|
||||
rollupNodeResolve(),
|
||||
],
|
||||
})
|
||||
.then(bundle => {
|
||||
return bundle.write({
|
||||
file: path.join(pkg, "lib/index.js"),
|
||||
format: "cjs",
|
||||
name: "babel-parser",
|
||||
sourcemap: process.env.NODE_ENV !== "production",
|
||||
});
|
||||
});
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
gulp.task("build", function() {
|
||||
const bundles = ["packages/babel-parser"];
|
||||
const bundles = ["packages/babel-parser"];
|
||||
|
||||
return merge([buildBabel(/* exclude */ bundles), buildRollup(bundles)]);
|
||||
});
|
||||
gulp.task("build-rollup", () => buildRollup(bundles));
|
||||
gulp.task("build-babel", () => buildBabel(/* exclude */ bundles));
|
||||
gulp.task("build", gulp.parallel("build-rollup", "build-babel"));
|
||||
|
||||
gulp.task("default", gulp.series("build"));
|
||||
|
||||
@@ -138,7 +140,7 @@ registerStandalonePackageTask(
|
||||
"babel",
|
||||
"Babel",
|
||||
path.join(__dirname, "packages"),
|
||||
require("./packages/babel-core/package.json").version
|
||||
require("./packages/babel-standalone/package.json").version
|
||||
);
|
||||
|
||||
const presetEnvWebpackPlugins = [
|
||||
@@ -167,6 +169,6 @@ registerStandalonePackageTask(
|
||||
"babel-preset-env",
|
||||
"babelPresetEnv",
|
||||
path.join(__dirname, "packages"),
|
||||
require("./packages/babel-preset-env/package.json").version,
|
||||
require("./packages/babel-preset-env-standalone/package.json").version,
|
||||
presetEnvWebpackPlugins
|
||||
);
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-2018 Sebastian McKenzie and other contributors
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
||||
42
Makefile
42
Makefile
@@ -1,6 +1,6 @@
|
||||
MAKEFLAGS = -j1
|
||||
FLOW_COMMIT = e192e1a4793dd8e43415fbfe8046d832cb513c8b
|
||||
TEST262_COMMIT = 238c88d4a084d9928372954e2fec54af2c951281
|
||||
FLOW_COMMIT = 09669846b7a7ca5a6c23c12d56bb3bebdafd67e9
|
||||
TEST262_COMMIT = de567d3aa5de4eaa11e00131d26b9fe77997dfb0
|
||||
|
||||
# Fix color output until TravisCI fixes https://github.com/travis-ci/travis-ci/issues/7967
|
||||
export FORCE_COLOR = true
|
||||
@@ -11,12 +11,13 @@ SOURCES = packages codemods
|
||||
|
||||
build: clean clean-lib
|
||||
./node_modules/.bin/gulp build
|
||||
node ./packages/babel-standalone/scripts/generate.js
|
||||
node ./packages/babel-types/scripts/generateTypeHelpers.js
|
||||
# call build again as the generated files might need to be compiled again.
|
||||
./node_modules/.bin/gulp build
|
||||
# generate flow and typescript typings
|
||||
node scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node scripts/generators/typescript.js > ./packages/babel-types/lib/index.d.ts
|
||||
node packages/babel-types/scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > ./packages/babel-types/lib/index.d.ts
|
||||
ifneq ("$(BABEL_COVERAGE)", "true")
|
||||
make build-standalone
|
||||
make build-preset-env-standalone
|
||||
@@ -46,7 +47,8 @@ watch: clean clean-lib
|
||||
# development too.
|
||||
BABEL_ENV=development ./node_modules/.bin/gulp build-no-bundle
|
||||
node ./packages/babel-types/scripts/generateTypeHelpers.js
|
||||
node scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > ./packages/babel-types/lib/index.d.ts
|
||||
BABEL_ENV=development ./node_modules/.bin/gulp watch
|
||||
|
||||
flow:
|
||||
@@ -62,6 +64,7 @@ fix-json:
|
||||
./node_modules/.bin/prettier "{packages,codemod}/*/test/fixtures/**/options.json" --write --loglevel warn
|
||||
|
||||
clean: test-clean
|
||||
rm -f .npmrc
|
||||
rm -rf packages/babel-polyfill/browser*
|
||||
rm -rf packages/babel-polyfill/dist
|
||||
rm -rf coverage
|
||||
@@ -102,7 +105,7 @@ test-flow-update-whitelist:
|
||||
bootstrap-test262:
|
||||
rm -rf ./build/test262
|
||||
mkdir -p ./build
|
||||
git clone --branch=master --single-branch --shallow-since=2018-11-01 https://github.com/tc39/test262.git ./build/test262
|
||||
git clone --branch=master --single-branch --shallow-since=2019-01-01 https://github.com/tc39/test262.git ./build/test262
|
||||
cd build/test262 && git checkout $(TEST262_COMMIT)
|
||||
|
||||
test-test262:
|
||||
@@ -121,22 +124,39 @@ prepublish-build:
|
||||
rm -rf packages/babel-runtime/helpers
|
||||
rm -rf packages/babel-runtime-corejs2/helpers
|
||||
rm -rf packages/babel-runtime-corejs2/core-js
|
||||
BABEL_ENV=production make build-dist
|
||||
NODE_ENV=production BABEL_ENV=production make build-dist
|
||||
make clone-license
|
||||
|
||||
prepublish:
|
||||
git pull --rebase
|
||||
make bootstrap-only
|
||||
make prepublish-build
|
||||
make test
|
||||
|
||||
new-version:
|
||||
git pull --rebase
|
||||
./node_modules/.bin/lerna version --force-publish="@babel/runtime,@babel/runtime-corejs2,@babel/runtime-corejs3,@babel/standalone,@babel/preset-env-standalone"
|
||||
|
||||
# NOTE: Run make new-version first
|
||||
publish: prepublish
|
||||
# --only-explicit-updates
|
||||
./node_modules/.bin/lerna publish --force-publish="@babel/runtime,@babel/runtime-corejs2" --dangerously-only-publish-explicit-updates-this-is-a-custom-flag-for-babel-and-you-should-not-be-using-it-just-deal-with-more-packages-being-published-it-is-not-a-big-deal
|
||||
./node_modules/.bin/lerna publish from-git --require-scripts
|
||||
make clean
|
||||
|
||||
bootstrap: clean-all
|
||||
publish-ci: prepublish
|
||||
ifneq ("$(NPM_TOKEN)", "")
|
||||
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
|
||||
else
|
||||
echo "Missing NPM_TOKEN env var"
|
||||
exit 1
|
||||
endif
|
||||
./node_modules/.bin/lerna publish from-git --require-scripts --yes
|
||||
rm -f .npmrc
|
||||
make clean
|
||||
|
||||
bootstrap-only: clean-all
|
||||
yarn --ignore-engines
|
||||
./node_modules/.bin/lerna bootstrap -- --ignore-engines
|
||||
|
||||
bootstrap: bootstrap-only
|
||||
make build
|
||||
cd packages/babel-plugin-transform-runtime; \
|
||||
node scripts/build-dist.js
|
||||
|
||||
23
README.md
23
README.md
@@ -8,12 +8,16 @@
|
||||
The compiler for writing next generation JavaScript.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/@babel/core"><img alt="v7 npm Downloads" src="https://img.shields.io/npm/dm/@babel/core.svg?maxAge=43200&label=v7%20downloads"></a>
|
||||
<a href="https://www.npmjs.com/package/babel-core"><img alt="v6 npm Downloads" src="https://img.shields.io/npm/dm/babel-core.svg?maxAge=43200&label=v6%20downloads"></a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/babel/babel"><img alt="Travis Status" src="https://img.shields.io/travis/babel/babel/master.svg?label=travis&maxAge=43200"></a>
|
||||
<a href="https://circleci.com/gh/babel/babel"><img alt="CircleCI Status" src="https://img.shields.io/circleci/project/github/babel/babel/master.svg?label=circle&maxAge=43200"></a>
|
||||
<a href="https://codecov.io/github/babel/babel"><img alt="Coverage Status" src="https://img.shields.io/codecov/c/github/babel/babel/master.svg?maxAge=43200"></a>
|
||||
<a href="https://slack.babeljs.io/"><img alt="Slack Status" src="https://slack.babeljs.io/badge.svg"></a>
|
||||
<a href="https://www.npmjs.com/package/babel-core"><img alt="npm Downloads" src="https://img.shields.io/npm/dm/babel-core.svg?maxAge=43200"></a>
|
||||
<a href="https://twitter.com/intent/follow?screen_name=babeljs"><img alt="Follow on Twitter" src="https://img.shields.io/twitter/follow/babeljs.svg?style=social&label=Follow"></a>
|
||||
</p>
|
||||
|
||||
<h2 align="center">Supporting Babel</h2>
|
||||
@@ -27,11 +31,11 @@
|
||||
Babel (pronounced ["babble"](https://soundcloud.com/sebmck/how-to-pronounce-babel)) is a community-driven project used by many companies and projects, and is maintained by a group of [volunteers](https://babeljs.io/team). If you'd like to help support the future of the project, please consider:
|
||||
|
||||
- Giving developer time on the project. (Message us on [Twitter](https://twitter.com/babeljs) or [Slack](https://slack.babeljs.io/) for guidance!)
|
||||
- Giving funds by becoming a sponsor (see below)!
|
||||
- Giving funds by becoming a sponsor on [Open Collective](https://opencollective.com/babel) or [Patreon](https://www.patreon.com/henryzhu)!
|
||||
|
||||
## Open Collective Sponsors
|
||||
## Sponsors
|
||||
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/babel#sponsor)]
|
||||
Our top sponsors are shown below! [[Become a sponsor](https://opencollective.com/babel#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/babel/sponsor/0/website" target="_blank"><img src="https://opencollective.com/babel/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/babel/sponsor/1/website" target="_blank"><img src="https://opencollective.com/babel/sponsor/1/avatar.svg"></a>
|
||||
@@ -49,15 +53,6 @@ Become a sponsor and get your logo on our README on Github with a link to your s
|
||||
<a href="https://opencollective.com/babel/sponsor/13/website" target="_blank"><img src="https://opencollective.com/babel/sponsor/13/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/babel/sponsor/14/website" target="_blank"><img src="https://opencollective.com/babel/sponsor/14/avatar.svg"></a>
|
||||
|
||||
## Patreon Sponsors
|
||||
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://www.patreon.com/henryzhu)]
|
||||
|
||||
## Bronze
|
||||
|
||||
<a href="http://teamextension.io/" target="_blank"><img src="https://teamextension.io/dist/img/logo/te-logo-compact.png" height="64"></a>
|
||||
<a href="https://webflow.com/" target="_blank"><img src="https://opencollective.com/proxy/images/?src=https%3A%2F%2Fopencollective-production.s3-us-west-1.amazonaws.com%2F4a5024b0-8cf2-11e7-b1a2-b30b1de1463c.png&height=64"></a>
|
||||
|
||||
## Intro
|
||||
|
||||
Babel is a tool that helps you write code in the latest version of JavaScript. When your supported environments don't support certain features natively, Babel will help you compile those features down to a supported version.
|
||||
@@ -83,7 +78,7 @@ Try it out at our [REPL](https://babeljs.io/repl/build/master#?code_lz=NoRgNATGD
|
||||
|
||||
### Who maintains Babel?
|
||||
|
||||
Mostly a handful of volunteers! Please check out our [team page](https://babeljs.io/team)!
|
||||
Mostly a handful of volunteers, funded by you! Please check out our [team page](https://babeljs.io/team)!
|
||||
|
||||
### Looking for support?
|
||||
|
||||
|
||||
19
SECURITY.md
Normal file
19
SECURITY.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
This is the list of versions of `babel` which are
|
||||
currently being supported with security updates.
|
||||
|
||||
| Version | Supported |
|
||||
| -------- | ------------------ |
|
||||
| 7.x | :white_check_mark: |
|
||||
| 6.26.x | :white_check_mark: |
|
||||
| < 6.26.0 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
To report a vulnerability please send an email with the details to security@babeljs.io.
|
||||
This will help us to assess the risk and start the necessary steps.
|
||||
|
||||
Thanks for helping to keep babel secure.
|
||||
23
SONG.md
23
SONG.md
@@ -19,7 +19,8 @@ Generators, const and let
|
||||
I used them all without regret
|
||||
And it’s a terse and a destructured Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
Well my faith was strong but I needed proof
|
||||
The standard was my source of truth
|
||||
@@ -28,7 +29,9 @@ So even though you weren’t impressed
|
||||
I checked the build against the spec
|
||||
And it’s a more-or-less compliant Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
Now you say the build step’s too complex
|
||||
And you claim no need for ES Next
|
||||
@@ -37,7 +40,9 @@ But your code grows older with each line
|
||||
It’s a joyless dirge on a withered vine
|
||||
It’s a threnody for a bygone Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
Yes I learned about the danger signs
|
||||
How they’d polyfilled a thousand lines
|
||||
@@ -46,7 +51,9 @@ Still I disregarded common sense
|
||||
Now my source is small but the build’s immense
|
||||
And it’s a slow and unresponsive Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
There was a time when they let me know
|
||||
What’s really going on below
|
||||
@@ -55,7 +62,9 @@ And debugging’s not a progress march
|
||||
It’s a frenzied fumble in the dark
|
||||
It’s a labyrinthine search for Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
Well, maybe there’s a god up there
|
||||
But all I ever got from prayers
|
||||
@@ -64,6 +73,8 @@ And that anguished cry you hear at night
|
||||
Is the plugin I forgot to write
|
||||
It’s a cold and it’s a broken Hallelujah
|
||||
|
||||
Hallelujah etc.
|
||||
|
||||
Hallelujah, Hallelujah
|
||||
Hallelujah, Hallelujah
|
||||
|
||||
[Angus Croll](https://github.com/angus-c)
|
||||
|
||||
@@ -5,21 +5,26 @@ module.exports = function(api) {
|
||||
|
||||
const includeCoverage = process.env.BABEL_COVERAGE === "true";
|
||||
|
||||
const envOpts = {
|
||||
const envOptsNoTargets = {
|
||||
loose: true,
|
||||
modules: false,
|
||||
exclude: ["transform-typeof-symbol"],
|
||||
};
|
||||
const envOpts = Object.assign({}, envOptsNoTargets);
|
||||
|
||||
let convertESM = true;
|
||||
let ignoreLib = true;
|
||||
let includeRuntime = false;
|
||||
const nodeVersion = "6.9";
|
||||
|
||||
switch (env) {
|
||||
// Configs used during bundling builds.
|
||||
case "babel-parser":
|
||||
convertESM = false;
|
||||
ignoreLib = false;
|
||||
envOpts.targets = {
|
||||
node: nodeVersion,
|
||||
};
|
||||
break;
|
||||
case "standalone":
|
||||
convertESM = false;
|
||||
@@ -29,7 +34,7 @@ module.exports = function(api) {
|
||||
case "production":
|
||||
// Config during builds before publish.
|
||||
envOpts.targets = {
|
||||
node: "6.9",
|
||||
node: nodeVersion,
|
||||
};
|
||||
break;
|
||||
case "development":
|
||||
@@ -93,6 +98,11 @@ module.exports = function(api) {
|
||||
convertESM ? "@babel/transform-modules-commonjs" : null,
|
||||
].filter(Boolean),
|
||||
},
|
||||
{
|
||||
test: "./packages/babel-polyfill",
|
||||
presets: [["@babel/env", envOptsNoTargets]],
|
||||
plugins: [["@babel/transform-modules-commonjs", { lazy: false }]],
|
||||
},
|
||||
{
|
||||
// The vast majority of our src files are modules, but we use
|
||||
// unambiguous to keep things simple until we get around to renaming
|
||||
@@ -111,9 +121,11 @@ module.exports = function(api) {
|
||||
"packages/babel-runtime",
|
||||
/[\\/]node_modules[\\/](?:@babel\/runtime|babel-runtime|core-js)[\\/]/,
|
||||
],
|
||||
plugins: [includeRuntime ? "@babel/transform-runtime" : null].filter(
|
||||
Boolean
|
||||
),
|
||||
plugins: [
|
||||
includeRuntime
|
||||
? ["@babel/transform-runtime", { version: "7.4.4" }]
|
||||
: null,
|
||||
].filter(Boolean),
|
||||
},
|
||||
].filter(Boolean),
|
||||
};
|
||||
|
||||
@@ -8,3 +8,5 @@ coverage:
|
||||
target: "80%"
|
||||
patch:
|
||||
enabled: false
|
||||
ignore:
|
||||
- packages/babel-types/src/*/generated/index.js
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
try {
|
||||
throw 0;
|
||||
} catch (e) {
|
||||
let e = new TypeError('Duplicate variable declaration; will throw an error.');
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"plugins": ["../../../../lib"],
|
||||
"throws": "Duplicate declaration \"e\""
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
const noDeprecatedClone = require("./scripts/eslint_rules/no-deprecated-clone");
|
||||
const noUndefinedIdentifier = require("./scripts/eslint_rules/no-undefined-identifier");
|
||||
const pluginName = require("./scripts/eslint_rules/plugin-name");
|
||||
|
||||
module.exports = {
|
||||
"no-deprecated-clone": noDeprecatedClone,
|
||||
"no-undefined-identifier": noUndefinedIdentifier,
|
||||
"plugin-name": pluginName,
|
||||
};
|
||||
20
lerna.json
20
lerna.json
@@ -1,34 +1,34 @@
|
||||
{
|
||||
"lerna": "2.11.0",
|
||||
"version": "7.2.2",
|
||||
"version": "7.5.1",
|
||||
"changelog": {
|
||||
"repo": "babel/babel",
|
||||
"cacheDir": ".changelog",
|
||||
"labels": {
|
||||
"PR: Spec Compliancy :eyeglasses:": ":eyeglasses: Spec Compliancy",
|
||||
"PR: Spec Compliance :eyeglasses:": ":eyeglasses: Spec Compliance",
|
||||
"PR: Breaking Change :boom:": ":boom: Breaking Change",
|
||||
"PR: New Feature :rocket:": ":rocket: New Feature",
|
||||
"PR: Bug Fix :bug:": ":bug: Bug Fix",
|
||||
"PR: Polish :nail_care:": ":nail_care: Polish",
|
||||
"PR: Docs :memo:": ":memo: Documentation",
|
||||
"PR: Internal :house:": ":house: Internal"
|
||||
"PR: Internal :house:": ":house: Internal",
|
||||
"PR: Performance :running_woman:": ":running_woman: Performance"
|
||||
}
|
||||
},
|
||||
"commands": {
|
||||
"command": {
|
||||
"publish": {
|
||||
"ignore": [
|
||||
"ignoreChanges": [
|
||||
"*.md",
|
||||
"*.json",
|
||||
"*.txt",
|
||||
"test/**",
|
||||
"codemods/**",
|
||||
"package.json"
|
||||
"# We ignore every JSON file, except for built-in-modules, built-ins and plugins defined in babel-preset-env/data.",
|
||||
"@(!(built-in-modules|built-ins|plugins|package)).json"
|
||||
]
|
||||
}
|
||||
},
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"codemods/*"
|
||||
"codemods/*",
|
||||
"packages/*"
|
||||
],
|
||||
"npmClient": "yarn",
|
||||
"npmClientArgs": [
|
||||
|
||||
@@ -27,16 +27,31 @@ declare module "lodash/merge" {
|
||||
}
|
||||
|
||||
declare module "semver" {
|
||||
declare class SemVer {
|
||||
build: Array<string>;
|
||||
loose: ?boolean;
|
||||
major: number;
|
||||
minor: number;
|
||||
patch: number;
|
||||
prerelease: Array<string | number>;
|
||||
raw: string;
|
||||
version: string;
|
||||
|
||||
constructor(version: string | SemVer): SemVer;
|
||||
}
|
||||
|
||||
declare module.exports: {
|
||||
valid(v: string): boolean;
|
||||
SemVer: SemVer;
|
||||
|
||||
coerce(version: string | SemVer): SemVer | null;
|
||||
gt(v1: string, v2: string): boolean;
|
||||
intersects(r1: string, r2: string): boolean;
|
||||
lt(v1: string, v2: string): boolean;
|
||||
major(v: string): number;
|
||||
minor(v: string): number;
|
||||
patch(v: string): number;
|
||||
satisfies(v1: string, r1: string): boolean;
|
||||
|
||||
intersects(r1: string, r2: string): boolean;
|
||||
valid(v: string): boolean;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,3 +195,13 @@ declare module "js-levenshtein" {
|
||||
(string, string): number,
|
||||
};
|
||||
}
|
||||
|
||||
declare module "core-js-compat/data" {
|
||||
declare type Target = "node" | "chrome" | "opera" | "edge" | "firefox" | "safari" | "ie" | "ios" | "android" | "electron" | "samsung";
|
||||
|
||||
declare module.exports: {
|
||||
[key: string]: {
|
||||
[target: Target]: string;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
91
package.json
91
package.json
@@ -9,68 +9,72 @@
|
||||
"test": "make test"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.2.0",
|
||||
"@babel/core": "^7.2.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.2.1",
|
||||
"@babel/cli": "^7.4.4",
|
||||
"@babel/core": "^7.4.5",
|
||||
"@babel/eslint-plugin-development": "^1.0.1",
|
||||
"@babel/plugin-proposal-class-properties": "^7.4.4",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.2.0",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.2.0",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
|
||||
"@babel/plugin-transform-runtime": "^7.2.0",
|
||||
"@babel/preset-env": "^7.2.0",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.4.4",
|
||||
"@babel/plugin-transform-runtime": "^7.4.4",
|
||||
"@babel/preset-env": "^7.4.5",
|
||||
"@babel/preset-flow": "^7.0.0",
|
||||
"@babel/register": "^7.0.0",
|
||||
"@babel/runtime": "^7.2.0",
|
||||
"babel-core": "^7.0.0-0",
|
||||
"babel-eslint": "^10.0.1",
|
||||
"babel-jest": "^23.6.0",
|
||||
"babel-loader": "^8.0.4",
|
||||
"babel-plugin-transform-charcodes": "^0.1.1",
|
||||
"browserify": "^16.2.2",
|
||||
"@babel/register": "^7.4.4",
|
||||
"@babel/runtime": "^7.4.5",
|
||||
"babel-eslint": "^11.0.0-beta.0",
|
||||
"babel-jest": "^24.8.0",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-plugin-transform-charcodes": "^0.2.0",
|
||||
"browserify": "^16.2.3",
|
||||
"bundle-collapser": "^1.2.1",
|
||||
"chalk": "^2.3.2",
|
||||
"charcodes": "^0.1.1",
|
||||
"chalk": "^2.4.2",
|
||||
"charcodes": "^0.2.0",
|
||||
"derequire": "^2.0.2",
|
||||
"duplicate-package-checker-webpack-plugin": "^2.1.0",
|
||||
"enhanced-resolve": "^3.0.0",
|
||||
"eslint": "^5.9.0",
|
||||
"eslint-config-babel": "^8.0.2",
|
||||
"eslint-plugin-flowtype": "^3.2.0",
|
||||
"eslint-plugin-local-rules": "0.1.0",
|
||||
"eslint-plugin-prettier": "^3.0.0",
|
||||
"flow-bin": "^0.87.0",
|
||||
"graceful-fs": "^4.1.11",
|
||||
"gulp": "^4.0.0",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-babel": "^9.0.0",
|
||||
"eslint-plugin-flowtype": "^3.8.2",
|
||||
"eslint-plugin-import": "^2.17.2",
|
||||
"eslint-plugin-prettier": "^3.1.0",
|
||||
"fancy-log": "^1.3.3",
|
||||
"flow-bin": "^0.94.0",
|
||||
"graceful-fs": "^4.1.15",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-babel": "^8.0.0",
|
||||
"gulp-filter": "^5.1.0",
|
||||
"gulp-newer": "^1.0.0",
|
||||
"gulp-plumber": "^1.2.0",
|
||||
"gulp-plumber": "^1.2.1",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-uglify": "^3.0.1",
|
||||
"gulp-util": "^3.0.7",
|
||||
"gulp-uglify": "^3.0.2",
|
||||
"gulp-watch": "^5.0.1",
|
||||
"husky": "^1.2.0",
|
||||
"jest": "^23.6.0",
|
||||
"lerna": "^2.11.0",
|
||||
"husky": "^2.3.0",
|
||||
"jest": "^24.8.0",
|
||||
"lerna": "^3.14.2",
|
||||
"lerna-changelog": "^0.5.0",
|
||||
"lint-staged": "^8.1.0",
|
||||
"lodash": "^4.17.10",
|
||||
"lint-staged": "^8.1.7",
|
||||
"lodash": "^4.17.11",
|
||||
"merge-stream": "^1.0.1",
|
||||
"output-file-sync": "^2.0.0",
|
||||
"prettier": "^1.15.2",
|
||||
"prettier": "^1.17.1",
|
||||
"pump": "^3.0.0",
|
||||
"rimraf": "^2.4.3",
|
||||
"rollup-plugin-babel": "^4.0.0-beta.0",
|
||||
"rollup-plugin-node-resolve": "^3.0.2",
|
||||
"rollup-stream": "^1.24.1",
|
||||
"rimraf": "^2.6.3",
|
||||
"rollup": "^1.12.0",
|
||||
"rollup-plugin-babel": "^4.0.0",
|
||||
"rollup-plugin-node-resolve": "^5.0.0",
|
||||
"rollup-plugin-replace": "^2.2.0",
|
||||
"test262-stream": "^1.2.0",
|
||||
"through2": "^2.0.0",
|
||||
"vinyl-buffer": "^1.0.1",
|
||||
"vinyl-source-stream": "^2.0.0",
|
||||
"warnings-to-errors-webpack-plugin": "^2.0.0",
|
||||
"webpack": "^3.4.1",
|
||||
"webpack-dependency-suite": "^2.4.4",
|
||||
"webpack-stream": "^4.0.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"@lerna/**/@lerna/collect-updates": "https://github.com/nicolo-ribaudo/lerna.git#babel-collect-updates"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6.9.0 < 12.0.0",
|
||||
"node": ">= 6.9.0 < 13.0.0",
|
||||
"npm": ">= 3.x <= 6.x",
|
||||
"yarn": ">=0.27.5 || >=1.0.0-20170811"
|
||||
},
|
||||
@@ -105,7 +109,9 @@
|
||||
"_browser\\.js"
|
||||
],
|
||||
"testEnvironment": "node",
|
||||
"setupTestFrameworkScriptFile": "<rootDir>/test/testSetupFile.js",
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/test/testSetupFile.js"
|
||||
],
|
||||
"transformIgnorePatterns": [
|
||||
"/node_modules/",
|
||||
"<rootDir>/packages/babel-standalone/babel(\\.min)?\\.js",
|
||||
@@ -128,5 +134,6 @@
|
||||
"moduleNameMapper": {
|
||||
"^@babel/([a-zA-Z0-9_-]+)$": "<rootDir>/packages/babel-$1/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/cli",
|
||||
"version": "7.2.0",
|
||||
"version": "7.5.0",
|
||||
"description": "Babel command line.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
@@ -23,21 +23,21 @@
|
||||
"convert-source-map": "^1.1.0",
|
||||
"fs-readdir-recursive": "^1.1.0",
|
||||
"glob": "^7.0.0",
|
||||
"lodash": "^4.17.10",
|
||||
"lodash": "^4.17.11",
|
||||
"mkdirp": "^0.5.1",
|
||||
"output-file-sync": "^2.0.0",
|
||||
"slash": "^2.0.0",
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"chokidar": "^2.0.3"
|
||||
"chokidar": "^2.0.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.2.0",
|
||||
"@babel/helper-fixtures": "^7.2.0"
|
||||
"@babel/core": "^7.5.0",
|
||||
"@babel/helper-fixtures": "^7.4.4"
|
||||
},
|
||||
"bin": {
|
||||
"babel": "./bin/babel.js",
|
||||
|
||||
@@ -22,7 +22,7 @@ commander.option(
|
||||
"comma-separated list of plugin names",
|
||||
collect,
|
||||
);
|
||||
commander.option("--config-file [path]", "Path a to .babelrc file to use");
|
||||
commander.option("--config-file [path]", "Path to a .babelrc file to use");
|
||||
commander.option(
|
||||
"--env-name [name]",
|
||||
"The name of the 'env' to use when loading configs and plugins. " +
|
||||
|
||||
@@ -86,7 +86,7 @@ const assertTest = function(stdout, stderr, opts, cwd) {
|
||||
}
|
||||
|
||||
if (opts.outFiles) {
|
||||
const actualFiles = readDir(path.join(tmpLoc), fileFilter);
|
||||
const actualFiles = readDir(tmpLoc, fileFilter);
|
||||
|
||||
Object.keys(actualFiles).forEach(function(filename) {
|
||||
if (
|
||||
@@ -171,12 +171,12 @@ const buildTest = function(binName, testName, opts) {
|
||||
};
|
||||
|
||||
fs.readdirSync(fixtureLoc).forEach(function(binName) {
|
||||
if (binName[0] === ".") return;
|
||||
if (binName.startsWith(".")) return;
|
||||
|
||||
const suiteLoc = path.join(fixtureLoc, binName);
|
||||
describe("bin/" + binName, function() {
|
||||
fs.readdirSync(suiteLoc).forEach(function(testName) {
|
||||
if (testName[0] === ".") return;
|
||||
if (testName.startsWith(".")) return;
|
||||
|
||||
const testLoc = path.join(suiteLoc, testName);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/core",
|
||||
"version": "7.2.2",
|
||||
"version": "7.5.0",
|
||||
"description": "Babel compiler core.",
|
||||
"main": "lib/index.js",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
@@ -34,22 +34,22 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"@babel/generator": "^7.2.2",
|
||||
"@babel/helpers": "^7.2.0",
|
||||
"@babel/parser": "^7.2.2",
|
||||
"@babel/template": "^7.2.2",
|
||||
"@babel/traverse": "^7.2.2",
|
||||
"@babel/types": "^7.2.2",
|
||||
"@babel/generator": "^7.5.0",
|
||||
"@babel/helpers": "^7.5.0",
|
||||
"@babel/parser": "^7.5.0",
|
||||
"@babel/template": "^7.4.4",
|
||||
"@babel/traverse": "^7.5.0",
|
||||
"@babel/types": "^7.5.0",
|
||||
"convert-source-map": "^1.1.0",
|
||||
"debug": "^4.1.0",
|
||||
"json5": "^2.1.0",
|
||||
"lodash": "^4.17.10",
|
||||
"lodash": "^4.17.11",
|
||||
"resolve": "^1.3.2",
|
||||
"semver": "^5.4.1",
|
||||
"source-map": "^0.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helper-transform-fixture-test-runner": "^7.0.0",
|
||||
"@babel/register": "^7.0.0"
|
||||
"@babel/helper-transform-fixture-test-runner": "^7.5.0",
|
||||
"@babel/register": "^7.4.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ export function makeWeakCache<
|
||||
>(
|
||||
handler: (ArgT, CacheConfigurator<SideChannel>) => ResultT,
|
||||
): (ArgT, SideChannel) => ResultT {
|
||||
// $FlowIssue https://github.com/facebook/flow/issues/4528
|
||||
return makeCachedFunction(new WeakMap(), handler);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import {
|
||||
makeWeakCache,
|
||||
type CacheConfigurator,
|
||||
} from "../caching";
|
||||
import makeAPI from "../helpers/config-api";
|
||||
import makeAPI, { type PluginAPI } from "../helpers/config-api";
|
||||
import { makeStaticFileCache } from "./utils";
|
||||
import pathPatternToRegex from "../pattern-to-regex";
|
||||
import type { FilePackageData, RelativeConfig, ConfigFile } from "./types";
|
||||
@@ -114,7 +114,7 @@ export function findRootConfig(
|
||||
|
||||
const conf = readConfig(filepath, envName, caller);
|
||||
if (conf) {
|
||||
debug("Found root config %o in $o.", BABEL_CONFIG_JS_FILENAME, dirname);
|
||||
debug("Found root config %o in %o.", BABEL_CONFIG_JS_FILENAME, dirname);
|
||||
}
|
||||
return conf;
|
||||
}
|
||||
@@ -132,7 +132,7 @@ export function loadConfig(
|
||||
throw new Error(`Config file ${filepath} contains no configuration data`);
|
||||
}
|
||||
|
||||
debug("Loaded config %o from $o.", name, dirname);
|
||||
debug("Loaded config %o from %o.", name, dirname);
|
||||
return conf;
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ const LOADING_CONFIGS = new Set();
|
||||
|
||||
const readConfigJS = makeStrongCache(
|
||||
(
|
||||
filepath,
|
||||
filepath: string,
|
||||
cache: CacheConfigurator<{
|
||||
envName: string,
|
||||
caller: CallerMetadata | void,
|
||||
@@ -193,7 +193,7 @@ const readConfigJS = makeStrongCache(
|
||||
}
|
||||
|
||||
if (typeof options === "function") {
|
||||
options = options(makeAPI(cache));
|
||||
options = ((options: any): (api: PluginAPI) => {})(makeAPI(cache));
|
||||
|
||||
if (!cache.configured()) throwConfigError();
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ const loadDescriptor = makeWeakCache(
|
||||
if (typeof item.then === "function") {
|
||||
throw new Error(
|
||||
`You appear to be using an async plugin, ` +
|
||||
`which your current version of Babel does not support.` +
|
||||
`which your current version of Babel does not support. ` +
|
||||
`If you're using a published plugin, ` +
|
||||
`you may need to upgrade your @babel/core version.`,
|
||||
);
|
||||
|
||||
@@ -231,7 +231,7 @@ function assertIgnoreItem(loc: GeneralPath, value: mixed): IgnoreItem {
|
||||
throw new Error(
|
||||
`${msg(
|
||||
loc,
|
||||
)} must be an array of string/Funtion/RegExp values, or undefined`,
|
||||
)} must be an array of string/Function/RegExp values, or undefined`,
|
||||
);
|
||||
}
|
||||
return value;
|
||||
@@ -337,7 +337,7 @@ function assertPluginItem(loc: GeneralPath, value: mixed): PluginItem {
|
||||
if (
|
||||
opts !== undefined &&
|
||||
opts !== false &&
|
||||
(typeof opts !== "object" || Array.isArray(opts))
|
||||
(typeof opts !== "object" || Array.isArray(opts) || opts === null)
|
||||
) {
|
||||
throw new Error(
|
||||
`${msg(access(loc, 1))} must be an object, false, or undefined`,
|
||||
|
||||
@@ -183,7 +183,7 @@ export default class File {
|
||||
// and this fails because a prerelease version can only satisfy a range
|
||||
// if it is a prerelease within the same major/minor/patch range.
|
||||
//
|
||||
// Note: If this is found to have issues, please also revist the logic in
|
||||
// Note: If this is found to have issues, please also revisit the logic in
|
||||
// transform-runtime's definitions.js file.
|
||||
if (semver.valid(versionRange)) versionRange = `^${versionRange}`;
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ function transformFile(file: File, pluginPasses: PluginPasses): void {
|
||||
if (isThenable(result)) {
|
||||
throw new Error(
|
||||
`You appear to be using an plugin with an async .pre, ` +
|
||||
`which your current version of Babel does not support.` +
|
||||
`which your current version of Babel does not support. ` +
|
||||
`If you're using a published plugin, you may need to upgrade ` +
|
||||
`your @babel/core version.`,
|
||||
);
|
||||
@@ -117,7 +117,7 @@ function transformFile(file: File, pluginPasses: PluginPasses): void {
|
||||
if (isThenable(result)) {
|
||||
throw new Error(
|
||||
`You appear to be using an plugin with an async .post, ` +
|
||||
`which your current version of Babel does not support.` +
|
||||
`which your current version of Babel does not support. ` +
|
||||
`If you're using a published plugin, you may need to upgrade ` +
|
||||
`your @babel/core version.`,
|
||||
);
|
||||
@@ -131,6 +131,7 @@ function isThenable(val: mixed): boolean {
|
||||
return (
|
||||
!!val &&
|
||||
(typeof val === "object" || typeof val === "function") &&
|
||||
!!val.then &&
|
||||
typeof val.then === "function"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ function foo() {
|
||||
var input = ['a', 'b', 'c'];
|
||||
var output = {};
|
||||
|
||||
for (var _i = 0; _i < input.length; _i++) {
|
||||
var c = input[_i];
|
||||
for (var _i = 0, _input = input; _i < _input.length; _i++) {
|
||||
var c = _input[_i];
|
||||
var name = c;
|
||||
output[name] = name;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports["default"] = void 0;
|
||||
|
||||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
||||
|
||||
@@ -40,7 +40,7 @@ function () {
|
||||
return _context.stop();
|
||||
}
|
||||
}
|
||||
}, _callee, this);
|
||||
}, _callee);
|
||||
}));
|
||||
|
||||
function bar() {
|
||||
@@ -54,7 +54,7 @@ function () {
|
||||
return Foo;
|
||||
}();
|
||||
|
||||
exports.default = Foo;
|
||||
exports["default"] = Foo;
|
||||
|
||||
function foo() {
|
||||
return _foo.apply(this, arguments);
|
||||
@@ -86,7 +86,7 @@ function _foo() {
|
||||
return _context2.stop();
|
||||
}
|
||||
}
|
||||
}, _callee2, this);
|
||||
}, _callee2);
|
||||
}));
|
||||
return _bar2.apply(this, arguments);
|
||||
};
|
||||
@@ -100,7 +100,7 @@ function _foo() {
|
||||
return _context3.stop();
|
||||
}
|
||||
}
|
||||
}, _callee3, this);
|
||||
}, _callee3);
|
||||
}));
|
||||
return _foo.apply(this, arguments);
|
||||
}
|
||||
|
||||
@@ -38,6 +38,17 @@ describe("option-manager", () => {
|
||||
expect(calls).toEqual([]);
|
||||
});
|
||||
|
||||
it("throws for null options", () => {
|
||||
const { calls, plugin } = makePlugin();
|
||||
expect(() => {
|
||||
loadOptions({
|
||||
plugins: [[plugin, null]],
|
||||
}).toThrow(/.plugins[0][1] must be an object, false, or undefined/);
|
||||
});
|
||||
|
||||
expect(calls).toEqual([]);
|
||||
});
|
||||
|
||||
it("should not throw if a repeated plugin has a different name", () => {
|
||||
const { calls: calls1, plugin: plugin1 } = makePlugin();
|
||||
const { calls: calls2, plugin: plugin2 } = makePlugin();
|
||||
@@ -87,7 +98,6 @@ describe("option-manager", () => {
|
||||
expect(calls1).toEqual([{ arg: 1 }]);
|
||||
expect(calls2).toEqual([{ arg: 2 }]);
|
||||
});
|
||||
|
||||
it("should merge .env[] presets with parent presets", () => {
|
||||
const { calls: calls1, plugin: preset1 } = makePlugin();
|
||||
const { calls: calls2, plugin: preset2 } = makePlugin();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@babel/generator",
|
||||
"version": "7.2.2",
|
||||
"version": "7.5.0",
|
||||
"description": "Turns an AST into code.",
|
||||
"author": "Sebastian McKenzie <sebmck@gmail.com>",
|
||||
"homepage": "https://babeljs.io/",
|
||||
@@ -14,14 +14,14 @@
|
||||
"lib"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.2.2",
|
||||
"@babel/types": "^7.5.0",
|
||||
"jsesc": "^2.5.1",
|
||||
"lodash": "^4.17.10",
|
||||
"lodash": "^4.17.11",
|
||||
"source-map": "^0.5.0",
|
||||
"trim-right": "^1.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/helper-fixtures": "^7.2.0",
|
||||
"@babel/parser": "^7.2.2"
|
||||
"@babel/helper-fixtures": "^7.4.4",
|
||||
"@babel/parser": "^7.5.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ export default class Buffer {
|
||||
source(prop: string, loc: Location, force?: boolean): void {
|
||||
if (prop && !loc) return;
|
||||
|
||||
// Since this is called extremly often, we re-use the same _sourcePosition
|
||||
// Since this is called extremely often, we re-use the same _sourcePosition
|
||||
// object for the whole lifetime of the buffer.
|
||||
this._normalizePosition(prop, loc, this._sourcePosition, force);
|
||||
}
|
||||
|
||||
@@ -50,8 +50,45 @@ export function Directive(node: Object) {
|
||||
this.semicolon();
|
||||
}
|
||||
|
||||
// These regexes match an even number of \ followed by a quote
|
||||
const unescapedSingleQuoteRE = /(?:^|[^\\])(?:\\\\)*'/;
|
||||
const unescapedDoubleQuoteRE = /(?:^|[^\\])(?:\\\\)*"/;
|
||||
|
||||
export function DirectiveLiteral(node: Object) {
|
||||
const raw = this.getPossibleRaw(node);
|
||||
if (raw != null) {
|
||||
this.token(raw);
|
||||
return;
|
||||
}
|
||||
|
||||
const { value } = node;
|
||||
|
||||
// NOTE: In directives we can't change escapings,
|
||||
// because they change the behavior.
|
||||
// e.g. "us\x65 string" (\x65 is e) is not a "use strict" directive.
|
||||
|
||||
if (!unescapedDoubleQuoteRE.test(value)) {
|
||||
this.token(`"${value}"`);
|
||||
} else if (!unescapedSingleQuoteRE.test(value)) {
|
||||
this.token(`'${value}'`);
|
||||
} else {
|
||||
throw new Error(
|
||||
"Malformed AST: it is not possible to print a directive containing" +
|
||||
" both unescaped single and double quotes.",
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export function InterpreterDirective(node: Object) {
|
||||
this.token(`#!${node.value}\n`);
|
||||
}
|
||||
|
||||
export { StringLiteral as DirectiveLiteral } from "./types";
|
||||
export function Placeholder(node: Object) {
|
||||
this.token("%%");
|
||||
this.print(node.name);
|
||||
this.token("%%");
|
||||
|
||||
if (node.expectedNode === "Statement") {
|
||||
this.semicolon();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,7 +409,7 @@ export function ObjectTypeAnnotation(node: Object) {
|
||||
indent: true,
|
||||
statement: true,
|
||||
iterator: () => {
|
||||
if (props.length !== 1) {
|
||||
if (props.length !== 1 || node.inexact) {
|
||||
this.token(",");
|
||||
this.space();
|
||||
}
|
||||
@@ -419,6 +419,15 @@ export function ObjectTypeAnnotation(node: Object) {
|
||||
this.space();
|
||||
}
|
||||
|
||||
if (node.inexact) {
|
||||
this.indent();
|
||||
this.token("...");
|
||||
if (props.length) {
|
||||
this.newline();
|
||||
}
|
||||
this.dedent();
|
||||
}
|
||||
|
||||
if (node.exact) {
|
||||
this.token("|}");
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,10 @@ export function Identifier(node: Object) {
|
||||
});
|
||||
}
|
||||
|
||||
export function ArgumentPlaceholder() {
|
||||
this.token("?");
|
||||
}
|
||||
|
||||
export function RestElement(node: Object) {
|
||||
this.token("...");
|
||||
this.print(node.argument, node);
|
||||
|
||||
@@ -231,7 +231,7 @@ export function tsPrintBraced(members, node) {
|
||||
}
|
||||
|
||||
export function TSArrayType(node) {
|
||||
this.print(node.elementType);
|
||||
this.print(node.elementType, node);
|
||||
this.token("[]");
|
||||
}
|
||||
|
||||
@@ -476,6 +476,21 @@ export function TSModuleBlock(node) {
|
||||
this.tsPrintBraced(node.body, node);
|
||||
}
|
||||
|
||||
export function TSImportType(node) {
|
||||
const { argument, qualifier, typeParameters } = node;
|
||||
this.word("import");
|
||||
this.token("(");
|
||||
this.print(argument, node);
|
||||
this.token(")");
|
||||
if (qualifier) {
|
||||
this.token(".");
|
||||
this.print(qualifier, node);
|
||||
}
|
||||
if (typeParameters) {
|
||||
this.print(typeParameters, node);
|
||||
}
|
||||
}
|
||||
|
||||
export function TSImportEqualsDeclaration(node) {
|
||||
const { isExport, id, moduleReference } = node;
|
||||
if (isExport) {
|
||||
|
||||
@@ -35,7 +35,16 @@ export function NullableTypeAnnotation(node: Object, parent: Object): boolean {
|
||||
return t.isArrayTypeAnnotation(parent);
|
||||
}
|
||||
|
||||
export { NullableTypeAnnotation as FunctionTypeAnnotation };
|
||||
export function FunctionTypeAnnotation(node: Object, parent: Object): boolean {
|
||||
return (
|
||||
// (() => A) | (() => B)
|
||||
t.isUnionTypeAnnotation(parent) ||
|
||||
// (() => A) & (() => B)
|
||||
t.isIntersectionTypeAnnotation(parent) ||
|
||||
// (() => A)[]
|
||||
t.isArrayTypeAnnotation(parent)
|
||||
);
|
||||
}
|
||||
|
||||
export function UpdateExpression(node: Object, parent: Object): boolean {
|
||||
return (
|
||||
@@ -127,6 +136,18 @@ export function TSTypeAssertion() {
|
||||
return true;
|
||||
}
|
||||
|
||||
export function TSUnionType(node: Object, parent: Object): boolean {
|
||||
return (
|
||||
t.isTSArrayType(parent) ||
|
||||
t.isTSOptionalType(parent) ||
|
||||
t.isTSIntersectionType(parent) ||
|
||||
t.isTSUnionType(parent) ||
|
||||
t.isTSRestType(parent)
|
||||
);
|
||||
}
|
||||
|
||||
export { TSUnionType as TSIntersectionType };
|
||||
|
||||
export function BinaryExpression(node: Object, parent: Object): boolean {
|
||||
// let i = (1 in []);
|
||||
// for ((1 in []);;);
|
||||
|
||||
@@ -367,7 +367,7 @@ export default class Printer {
|
||||
|
||||
const loc = t.isProgram(node) || t.isFile(node) ? null : node.loc;
|
||||
this.withSource("start", loc, () => {
|
||||
this[node.type](node, parent);
|
||||
printMethod.call(this, node, parent);
|
||||
});
|
||||
|
||||
this._printTrailingComments(node);
|
||||
|
||||
12
packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/input.js
vendored
Normal file
12
packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/input.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
// One
|
||||
(1);
|
||||
|
||||
/* Two */
|
||||
(2);
|
||||
|
||||
(
|
||||
// Three
|
||||
3
|
||||
);
|
||||
|
||||
(/* Four */ 4);
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parserOpts": {"createParenthesizedExpressions": true}
|
||||
}
|
||||
10
packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js
vendored
Normal file
10
packages/babel-generator/test/fixtures/comments/create-parenthesized-expressions/output.js
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
// One
|
||||
(1);
|
||||
/* Two */
|
||||
|
||||
(2);
|
||||
( // Three
|
||||
3);
|
||||
(
|
||||
/* Four */
|
||||
4);
|
||||
@@ -4,7 +4,7 @@ function foo(l) {
|
||||
);
|
||||
}
|
||||
|
||||
function foo() {
|
||||
function foo2() {
|
||||
return (
|
||||
1 && 2
|
||||
) || 3;
|
||||
|
||||
@@ -4,7 +4,7 @@ function foo(l) {
|
||||
|
||||
}
|
||||
|
||||
function foo() {
|
||||
function foo2() {
|
||||
return (
|
||||
1 && 2 ||
|
||||
3);
|
||||
|
||||
@@ -2,8 +2,8 @@ var fn = async (
|
||||
arg
|
||||
) => {}
|
||||
|
||||
async (x)
|
||||
=> {}
|
||||
async (x) =>
|
||||
{}
|
||||
|
||||
async x => {}
|
||||
|
||||
|
||||
3
packages/babel-generator/test/fixtures/edgecase/unary-op/options.json
vendored
Normal file
3
packages/babel-generator/test/fixtures/edgecase/unary-op/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"strictMode": false
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
0; // Not a directive
|
||||
"©";
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
0;// Not a directive
|
||||
"\u00A9";
|
||||
@@ -17,6 +17,7 @@ declare export * from 'asd';
|
||||
declare export { a, b };
|
||||
declare export {};
|
||||
declare export { c, d } from 'bar';
|
||||
var a, b;
|
||||
|
||||
declare module B {
|
||||
declare export type B = {};
|
||||
@@ -24,9 +25,9 @@ declare module B {
|
||||
}
|
||||
|
||||
declare module "foo" { declare export type * from "bar"; }
|
||||
declare export opaque type Foo;
|
||||
declare export opaque type Foo1;
|
||||
declare export opaque type Bar<T>;
|
||||
declare export opaque type Baz: Foo;
|
||||
declare export opaque type Foo<T>: Bar<T>;
|
||||
declare export opaque type Foo<T>: Bar;
|
||||
declare export opaque type Foo: Bar<T>;
|
||||
declare export opaque type Foo3<T>: Bar<T>;
|
||||
declare export opaque type Foo4<T>: Bar;
|
||||
declare export opaque type Foo5: Bar<T>;
|
||||
|
||||
@@ -26,6 +26,7 @@ declare export * from 'asd';
|
||||
declare export { a, b };
|
||||
declare export {};
|
||||
declare export { c, d } from 'bar';
|
||||
var a, b;
|
||||
declare module B {
|
||||
declare export type B = {};
|
||||
declare export interface Moon {}
|
||||
@@ -33,9 +34,9 @@ declare module B {
|
||||
declare module "foo" {
|
||||
declare export type * from "bar";
|
||||
}
|
||||
declare export opaque type Foo;
|
||||
declare export opaque type Foo1;
|
||||
declare export opaque type Bar<T>;
|
||||
declare export opaque type Baz: Foo;
|
||||
declare export opaque type Foo<T>: Bar<T>;
|
||||
declare export opaque type Foo<T>: Bar;
|
||||
declare export opaque type Foo: Bar<T>;
|
||||
declare export opaque type Foo3<T>: Bar<T>;
|
||||
declare export opaque type Foo4<T>: Bar;
|
||||
declare export opaque type Foo5: Bar<T>;
|
||||
@@ -1,10 +1,10 @@
|
||||
class C1<+T, -U> {}
|
||||
function f<+T, -U>() {}
|
||||
type T<+T, -U> = {};
|
||||
type T = { +p: T };
|
||||
type T = { -p: T };
|
||||
type T = { +[k:K]: V };
|
||||
type T = { -[k:K]: V };
|
||||
type T2 = { +p: T };
|
||||
type T3 = { -p: T };
|
||||
type T4 = { +[k:K]: V };
|
||||
type T5 = { -[k:K]: V };
|
||||
interface I { +p: T }
|
||||
interface I { -p: T }
|
||||
interface I { +[k:K]: V }
|
||||
|
||||
@@ -3,16 +3,16 @@ class C1<+T, -U> {}
|
||||
function f<+T, -U>() {}
|
||||
|
||||
type T<+T, -U> = {};
|
||||
type T = {
|
||||
type T2 = {
|
||||
+p: T
|
||||
};
|
||||
type T = {
|
||||
type T3 = {
|
||||
-p: T
|
||||
};
|
||||
type T = {
|
||||
type T4 = {
|
||||
+[k: K]: V
|
||||
};
|
||||
type T = {
|
||||
type T5 = {
|
||||
-[k: K]: V
|
||||
};
|
||||
interface I {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class A implements B {}
|
||||
class A implements B, C {}
|
||||
declare class A implements B {}
|
||||
declare class A mixins B implements C {}
|
||||
declare class A implements B, C {}
|
||||
class A1 implements B {}
|
||||
class A2 implements B, C {}
|
||||
declare class A3 implements B {}
|
||||
declare class A4 mixins B implements C {}
|
||||
declare class A5 implements B, C {}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
class A implements B {}
|
||||
class A1 implements B {}
|
||||
|
||||
class A implements B, C {}
|
||||
class A2 implements B, C {}
|
||||
|
||||
declare class A implements B {}
|
||||
declare class A mixins B implements C {}
|
||||
declare class A implements B, C {}
|
||||
declare class A3 implements B {}
|
||||
declare class A4 mixins B implements C {}
|
||||
declare class A5 implements B, C {}
|
||||
@@ -1,3 +1,4 @@
|
||||
type A = interface { p: string };
|
||||
type B = interface extends X { p: string };
|
||||
type C = interface extends X, Y { p: string };
|
||||
type D = interface extends X.Y<Z> { p: string };
|
||||
|
||||
@@ -6,4 +6,7 @@ type B = interface extends X {
|
||||
};
|
||||
type C = interface extends X, Y {
|
||||
p: string
|
||||
};
|
||||
};
|
||||
type D = interface extends X.Y<Z> {
|
||||
p: string
|
||||
};
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
interface A {}
|
||||
interface A extends B {}
|
||||
interface A<T> extends B<T>, C<T> {}
|
||||
interface A { foo: () => number; }
|
||||
interface A1 {}
|
||||
interface A2 extends B {}
|
||||
interface A3<T> extends B<T>, C<T> {}
|
||||
interface A4 { foo: () => number; }
|
||||
interface Dictionary { [index: string]: string; length: number; }
|
||||
class Foo implements Bar {}
|
||||
class Foo extends Bar implements Bat, Man<number> {}
|
||||
class Foo extends class Bar implements Bat {} {}
|
||||
class Foo extends class Bar implements Bat {} implements Man {}
|
||||
class Foo1 implements Bar {}
|
||||
class Foo2 extends Bar implements Bat, Man<number> {}
|
||||
class Foo3 extends class Bar implements Bat {} {}
|
||||
class Foo4 extends class Bar implements Bat {} implements Man {}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
interface A {}
|
||||
interface A extends B {}
|
||||
interface A<T> extends B<T>, C<T> {}
|
||||
interface A {
|
||||
interface A1 {}
|
||||
interface A2 extends B {}
|
||||
interface A3<T> extends B<T>, C<T> {}
|
||||
interface A4 {
|
||||
foo: () => number
|
||||
}
|
||||
interface Dictionary {
|
||||
@@ -9,10 +9,10 @@ interface Dictionary {
|
||||
[index: string]: string,
|
||||
}
|
||||
|
||||
class Foo implements Bar {}
|
||||
class Foo1 implements Bar {}
|
||||
|
||||
class Foo extends Bar implements Bat, Man<number> {}
|
||||
class Foo2 extends Bar implements Bat, Man<number> {}
|
||||
|
||||
class Foo extends class Bar implements Bat {} {}
|
||||
class Foo3 extends class Bar implements Bat {} {}
|
||||
|
||||
class Foo extends class Bar implements Bat {} implements Man {}
|
||||
class Foo4 extends class Bar implements Bat {} implements Man {}
|
||||
@@ -1,7 +1,7 @@
|
||||
declare class C { static [[foo]]: T }
|
||||
declare class C { [[foo]]: T }
|
||||
interface T { [[foo]]: X }
|
||||
interface T { [[foo]](): X }
|
||||
type T = { [[foo]]: X }
|
||||
type T = { [[foo]](): X }
|
||||
type T = { [[foo]]?: X }
|
||||
interface I { [[foo]]: X }
|
||||
interface I { [[foo]](): X }
|
||||
type T1 = { [[foo]]: X }
|
||||
type T2 = { [[foo]](): X }
|
||||
type T3 = { [[foo]]?: X }
|
||||
|
||||
@@ -4,18 +4,18 @@ declare class C {
|
||||
declare class C {
|
||||
[[foo]]: T
|
||||
}
|
||||
interface T {
|
||||
interface I {
|
||||
[[foo]]: X
|
||||
}
|
||||
interface T {
|
||||
interface I {
|
||||
[[foo]]() => X
|
||||
}
|
||||
type T = {
|
||||
type T1 = {
|
||||
[[foo]]: X
|
||||
};
|
||||
type T = {
|
||||
type T2 = {
|
||||
[[foo]]() => X
|
||||
};
|
||||
type T = {
|
||||
type T3 = {
|
||||
[[foo]]?: X
|
||||
};
|
||||
};
|
||||
4
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/input.js
vendored
Normal file
4
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/input.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
type T1 = { ... };
|
||||
type T2 = { a: { b: { c: {...}, ... }, ... } }
|
||||
type T3 = { foo: number, ... };
|
||||
type T4 = { foo: number, bar: string, ... };
|
||||
3
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/options.json
vendored
Normal file
3
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/options.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"compact": true
|
||||
}
|
||||
1
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/output.js
vendored
Normal file
1
packages/babel-generator/test/fixtures/flow/object-literal-types-compact/output.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
type T1={...};type T2={a:{b:{c:{...},...},...}};type T3={foo:number,...};type T4={foo:number,bar:string,...};
|
||||
@@ -1,11 +1,15 @@
|
||||
type U = {};
|
||||
type V = {};
|
||||
type T = { ...U, };
|
||||
type T = { ...U, ...V };
|
||||
type T = { p: V, ...U };
|
||||
type T = { ...U, p: V, };
|
||||
type T = { ...{}|{ p: V, }};
|
||||
type T = { foo(): number }
|
||||
type T = { foo: () => number }
|
||||
type T = { [string]: U };
|
||||
type T = { [param: string]: U };
|
||||
type T1 = { ...U, };
|
||||
type T2 = { ...U, ...V };
|
||||
type T3 = { p: V, ...U };
|
||||
type T4 = { ...U, p: V, };
|
||||
type T5 = { ...{}|{ p: V, }};
|
||||
type T6 = { foo(): number }
|
||||
type T7 = { foo: () => number }
|
||||
type T8 = { [string]: U };
|
||||
type T9 = { [param: string]: U };
|
||||
type T10 = { ... };
|
||||
type T11 = { a: { b: { c: {...}, ... }, ... } }
|
||||
type T12 = { foo: number, ... };
|
||||
type T13 = { foo: number, bar: string, ... };
|
||||
|
||||
@@ -1,30 +1,49 @@
|
||||
type U = {};
|
||||
type V = {};
|
||||
type T = { ...U
|
||||
type T1 = { ...U
|
||||
};
|
||||
type T = { ...U,
|
||||
type T2 = { ...U,
|
||||
...V,
|
||||
};
|
||||
type T = {
|
||||
type T3 = {
|
||||
p: V,
|
||||
...U,
|
||||
};
|
||||
type T = { ...U,
|
||||
type T4 = { ...U,
|
||||
p: V,
|
||||
};
|
||||
type T = { ...{} | {
|
||||
type T5 = { ...{} | {
|
||||
p: V
|
||||
}
|
||||
};
|
||||
type T = {
|
||||
type T6 = {
|
||||
foo(): number
|
||||
};
|
||||
type T = {
|
||||
type T7 = {
|
||||
foo: () => number
|
||||
};
|
||||
type T = {
|
||||
type T8 = {
|
||||
[string]: U
|
||||
};
|
||||
type T = {
|
||||
type T9 = {
|
||||
[param: string]: U
|
||||
};
|
||||
};
|
||||
type T10 = {...};
|
||||
type T11 = {
|
||||
a: {
|
||||
b: {
|
||||
c: {...},
|
||||
...
|
||||
},
|
||||
...
|
||||
}
|
||||
};
|
||||
type T12 = {
|
||||
foo: number,
|
||||
...
|
||||
};
|
||||
type T13 = {
|
||||
foo: number,
|
||||
bar: string,
|
||||
...
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
opaque type ID = string;
|
||||
opaque type Foo<T> = Bar<T>;
|
||||
opaque type Maybe<T> = _Maybe<T, *>;
|
||||
export opaque type Foo = number;
|
||||
export opaque type Foo2 = number;
|
||||
|
||||
opaque type union =
|
||||
| {type: "A"}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
opaque type ID = string;
|
||||
opaque type Foo<T> = Bar<T>;
|
||||
opaque type Maybe<T> = _Maybe<T, *>;
|
||||
export opaque type Foo = number;
|
||||
export opaque type Foo2 = number;
|
||||
opaque type union = {
|
||||
type: "A"
|
||||
} | {
|
||||
type: "B"
|
||||
};
|
||||
opaque type overloads = (x: string) => number & (x: number) => string;
|
||||
opaque type overloads = ((x: string) => number) & ((x: number) => string);
|
||||
3
packages/babel-generator/test/fixtures/flow/parantheses/input.js
vendored
Normal file
3
packages/babel-generator/test/fixtures/flow/parantheses/input.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
type A = (<T>(T) => $Foo<T>) & (<T>(T) => $Foo<T>);
|
||||
type B = (<T>(T) => $Foo<T>) | (<T>(T) => $Foo<T>);
|
||||
type C = (<T>(T) => $Foo<T>)[];
|
||||
3
packages/babel-generator/test/fixtures/flow/parantheses/output.js
vendored
Normal file
3
packages/babel-generator/test/fixtures/flow/parantheses/output.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
type A = (<T>(T) => $Foo<T>) & (<T>(T) => $Foo<T>);
|
||||
type B = (<T>(T) => $Foo<T>) | (<T>(T) => $Foo<T>);
|
||||
type C = (<T>(T) => $Foo<T>)[];
|
||||
@@ -12,6 +12,6 @@ function is_string(x): boolean %checks {
|
||||
|
||||
var f = (x: mixed): %checks => typeof x === "string";
|
||||
|
||||
const foo = (x: mixed): boolean %checks => typeof x === "string";
|
||||
const foo2 = (x: mixed): boolean %checks => typeof x === "string";
|
||||
|
||||
(x): %checks => x !== null;
|
||||
|
||||
@@ -12,6 +12,6 @@ function is_string(x): boolean %checks {
|
||||
|
||||
var f = (x: mixed): %checks => typeof x === "string";
|
||||
|
||||
const foo = (x: mixed): boolean %checks => typeof x === "string";
|
||||
const foo2 = (x: mixed): boolean %checks => typeof x === "string";
|
||||
|
||||
x: %checks => x !== null;
|
||||
@@ -1,2 +1,2 @@
|
||||
function createElement(tagName: "div"): HTMLDivElement {}
|
||||
function createElement(tagName: 'div'): HTMLDivElement {}
|
||||
function createElement1(tagName: "div"): HTMLDivElement {}
|
||||
function createElement2(tagName: 'div'): HTMLDivElement {}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
function createElement(tagName: "div"): HTMLDivElement {}
|
||||
function createElement1(tagName: "div"): HTMLDivElement {}
|
||||
|
||||
function createElement(tagName: 'div'): HTMLDivElement {}
|
||||
function createElement2(tagName: 'div'): HTMLDivElement {}
|
||||
@@ -1,7 +1,7 @@
|
||||
type FBID = number;
|
||||
type Foo<T> = Bar<T>;
|
||||
type Maybe<T> = _Maybe<T, *>;
|
||||
export type Foo = number;
|
||||
export type Foo2 = number;
|
||||
|
||||
type union =
|
||||
| {type: "A"}
|
||||
@@ -14,3 +14,5 @@ type overloads =
|
||||
;
|
||||
|
||||
type func = string => string;
|
||||
|
||||
type D = X.Y<Z>;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
type FBID = number;
|
||||
type Foo<T> = Bar<T>;
|
||||
type Maybe<T> = _Maybe<T, *>;
|
||||
export type Foo = number;
|
||||
export type Foo2 = number;
|
||||
type union = {
|
||||
type: "A"
|
||||
} | {
|
||||
type: "B"
|
||||
};
|
||||
type overloads = (x: string) => number & (x: number) => string;
|
||||
type overloads = ((x: string) => number) & ((x: number) => string);
|
||||
type func = (string) => string;
|
||||
type D = X.Y<Z>;
|
||||
@@ -1,130 +1,130 @@
|
||||
function foo(numVal: any) {}
|
||||
function foo(numVal: number) {}
|
||||
function foo(numVal: number, strVal: string) {}
|
||||
function foo(numVal: number, untypedVal) {}
|
||||
function foo(untypedVal, numVal: number) {}
|
||||
function foo(nullableNum: ?number) {}
|
||||
function foo(callback: () => void) {}
|
||||
function foo(callback: () => number) {}
|
||||
function foo(callback: (_: bool) => number) {}
|
||||
function foo(callback: (_1: bool, _2: string) => number) {}
|
||||
function foo(callback: (_1: bool, ...foo: Array<number>) => number) {}
|
||||
function foo(): number{}
|
||||
function foo():() => void {}
|
||||
function foo():(_:bool) => number{}
|
||||
function foo():(_?:bool) => number{}
|
||||
function foo(): {} {}
|
||||
function foo<T>() {}
|
||||
function foo<T,S>() {}
|
||||
function foo<T: F>() {}
|
||||
a = function<T,S>() {};
|
||||
a = { set fooProp(value: number) {} };
|
||||
a = { set fooProp(value: number): void {} };
|
||||
a = { get fooProp():number{} };
|
||||
a = { id<T>(x: T): T {} };
|
||||
a = { *id<T>(x: T): T {} };
|
||||
a = { async id<T>(x: T): T {} };
|
||||
a = { 123<T>(x: T): T {} };
|
||||
class Foo {
|
||||
function foo1(numVal: any) {}
|
||||
function foo2(numVal: number) {}
|
||||
function foo3(numVal: number, strVal: string) {}
|
||||
function foo4(numVal: number, untypedVal) {}
|
||||
function foo5(untypedVal, numVal: number) {}
|
||||
function foo6(nullableNum: ?number) {}
|
||||
function foo7(callback: () => void) {}
|
||||
function foo8(callback: () => number) {}
|
||||
function foo9(callback: (_: bool) => number) {}
|
||||
function foo10(callback: (_1: bool, _2: string) => number) {}
|
||||
function foo11(callback: (_1: bool, ...foo: Array<number>) => number) {}
|
||||
function foo12(): number{}
|
||||
function foo13():() => void {}
|
||||
function foo14():(_:bool) => number{}
|
||||
function foo15():(_?:bool) => number{}
|
||||
function foo16(): {} {}
|
||||
function foo17<T>() {}
|
||||
function foo18<T,S>() {}
|
||||
function foo19<T: F>() {}
|
||||
a1 = function<T,S>() {};
|
||||
a2 = { set fooProp(value: number) {} };
|
||||
a3 = { set fooProp(value: number): void {} };
|
||||
a4 = { get fooProp():number{} };
|
||||
a5 = { id<T>(x: T): T {} };
|
||||
a6 = { *id<T>(x: T): T {} };
|
||||
a7 = { async id<T>(x: T): T {} };
|
||||
a8 = { 123<T>(x: T): T {} };
|
||||
class Foo1 {
|
||||
set fooProp(value: number) {}
|
||||
}
|
||||
class Foo {
|
||||
class Foo2 {
|
||||
set fooProp(value: number): void {}
|
||||
}
|
||||
class Foo {
|
||||
class Foo3 {
|
||||
get fooProp(): number {}
|
||||
}
|
||||
var numVal: number;
|
||||
var numVal: empty;
|
||||
var numVal: mixed;
|
||||
var numVal: number = otherNumVal;
|
||||
var a: { numVal: number };
|
||||
var a: { numVal: number; };
|
||||
var a: { numVal: number; [indexer: string]: number };
|
||||
var a: ?{ numVal: number };
|
||||
var a: { numVal: number; strVal: string }
|
||||
var a: { subObj: {strVal: string} }
|
||||
var a: { subObj: ?{strVal: string} }
|
||||
var a: { param1: number; param2: string }
|
||||
var a: { param1: number; param2?: string }
|
||||
var a: { [a: number]: string; [b: number]: string; };
|
||||
var a: { add(x: number, ...y: Array<string>): void };
|
||||
var a: { subtract: (x: number, ...y: Array<string>) => void };
|
||||
var a: { id<T>(x: T): T; };
|
||||
var a:Array<number> = [1, 2, 3]
|
||||
a = class Foo<T> {}
|
||||
a = class Foo<T> extends Bar<T> {}
|
||||
class Foo<T> {}
|
||||
class Foo<T> extends Bar<T> {}
|
||||
class Foo<T> extends mixin(Bar) {}
|
||||
class Foo<T> {
|
||||
var numVal1: number;
|
||||
var numVal2: empty;
|
||||
var numVal3: mixed;
|
||||
var numVal4: number = otherNumVal;
|
||||
var a1: { numVal: number };
|
||||
var a2: { numVal: number; };
|
||||
var a3: { numVal: number; [indexer: string]: number };
|
||||
var a4: ?{ numVal: number };
|
||||
var a5: { numVal: number; strVal: string }
|
||||
var a6: { subObj: {strVal: string} }
|
||||
var a7: { subObj: ?{strVal: string} }
|
||||
var a8: { param1: number; param2: string }
|
||||
var a9: { param1: number; param2?: string }
|
||||
var a10: { [a: number]: string; [b: number]: string; };
|
||||
var a11: { add(x: number, ...y: Array<string>): void };
|
||||
var a12: { subtract: (x: number, ...y: Array<string>) => void };
|
||||
var a13: { id<T>(x: T): T; };
|
||||
var a14:Array<number> = [1, 2, 3]
|
||||
a13 = class Foo<T> {}
|
||||
a14 = class Foo<T> extends Bar<T> {}
|
||||
class Foo4<T> {}
|
||||
class Foo5<T> extends Bar<T> {}
|
||||
class Foo6<T> extends mixin(Bar) {}
|
||||
class Foo7<T> {
|
||||
bar<U>():number { return 42; }
|
||||
}
|
||||
class Foo {
|
||||
class Foo8 {
|
||||
"bar"<T>() {}
|
||||
}
|
||||
function foo(requiredParam, optParam?) {}
|
||||
class Foo {
|
||||
function foo20(requiredParam, optParam?) {}
|
||||
class Foo9 {
|
||||
prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
class Foo {
|
||||
class Foo10 {
|
||||
static prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
class Foo {
|
||||
class Foo11 {
|
||||
#prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
var x: number | string = 4;
|
||||
var x1: number | string = 4;
|
||||
class Array { concat(items:number | string) {}; }
|
||||
var x: () => number | () => string = fn;
|
||||
var x: typeof Y = Y;
|
||||
var x: typeof Y | number = Y;
|
||||
var {x}: {x: string; } = { x: "hello" };
|
||||
var {x}: {x: string } = { x: "hello" };
|
||||
var [x]: Array<string> = [ "hello" ];
|
||||
function foo({x}: { x: string; }) {}
|
||||
function foo([x]: Array<string>) {}
|
||||
function foo(...rest: Array<number>) {}
|
||||
var x2: () => number | () => string = fn;
|
||||
var x3: typeof Y = Y;
|
||||
var x4: typeof Y | number = Y;
|
||||
var {x5}: {x5: string; } = { x5: "hello" };
|
||||
var {x6}: {x6: string } = { x6: "hello" };
|
||||
var [x7]: Array<string> = [ "hello" ];
|
||||
function foo21({x}: { x: string; }) {}
|
||||
function foo22([x]: Array<string>) {}
|
||||
function foo23(...rest: Array<number>) {}
|
||||
(function (...rest: Array<number>) {});
|
||||
((...rest: Array<number>) => rest);
|
||||
var a: Map<string, Array<string> >
|
||||
var a: Map<string, Array<string>>
|
||||
var a: number[]
|
||||
var a: ?string[]
|
||||
var a: Promise<bool>[]
|
||||
var a:(...rest:Array<number>) => number
|
||||
var identity: <T>(x: T) => T
|
||||
var identity: <T>(x: T, ...y:T[]) => T
|
||||
import type foo from "bar";
|
||||
import type { foo, bar } from "baz";
|
||||
import type { foo as bar } from "baz";
|
||||
var a15: Map<string, Array<string> >
|
||||
var a16: Map<string, Array<string>>
|
||||
var a17: number[]
|
||||
var a18: ?string[]
|
||||
var a19: Promise<bool>[]
|
||||
var a20:(...rest:Array<number>) => number
|
||||
var identity1: <T>(x: T) => T
|
||||
var identity2: <T>(x: T, ...y:T[]) => T
|
||||
import type foo24 from "bar";
|
||||
import type { foo25, bar1 } from "baz";
|
||||
import type { foo as bar2 } from "baz";
|
||||
import type from "foo";
|
||||
import type, { foo } from "bar";
|
||||
import type2, { foo26 } from "bar";
|
||||
import typeof * as namespace from "bar";
|
||||
import { type Foo } from "bar";
|
||||
import { typeof Foo } from "bar";
|
||||
import { type Foo as Bar } from "bar";
|
||||
import { typeof Foo as Bar } from "bar";
|
||||
export type { foo };
|
||||
import { type Foo12 } from "bar";
|
||||
import { typeof Foo13 } from "bar";
|
||||
import { type Foo as Bar1 } from "bar";
|
||||
import { typeof Foo as Bar2 } from "bar";
|
||||
export type { foo1 };
|
||||
export type { bar } from "bar";
|
||||
export interface baz { p: number }
|
||||
export interface qux<T> { p: T }
|
||||
var a: ?Array<?string>;
|
||||
var a: {| numVal: number |};
|
||||
var a: {| numVal: number; |};
|
||||
var a: {| numVal: number; [indexer: string]: number |};
|
||||
var a: ?{| numVal: number |};
|
||||
var a: {| numVal: number; strVal: string |}
|
||||
var a: {| subObj: {strVal: string} |}
|
||||
var a: {| subObj: ?{strVal: string} |}
|
||||
var a: {| param1: number; param2: string |}
|
||||
var a: {| param1: number; param2?: string |}
|
||||
var a: {| [a: number]: string; [b: number]: string; |};
|
||||
var a: {| add(x: number, ...y: Array<string>): void |};
|
||||
var a: {| subtract: (x: number, ...y: Array<string>) => void |};
|
||||
var a: {| id<T>(x: T): T; |};
|
||||
function foo(numVal: number = 2) {}
|
||||
function foo(numVal?: number = 2) {}
|
||||
var a21: ?Array<?string>;
|
||||
var a22: {| numVal: number |};
|
||||
var a23: {| numVal: number; |};
|
||||
var a24: {| numVal: number; [indexer: string]: number |};
|
||||
var a25: ?{| numVal: number |};
|
||||
var a26: {| numVal: number; strVal: string |}
|
||||
var a27: {| subObj: {strVal: string} |}
|
||||
var a28: {| subObj: ?{strVal: string} |}
|
||||
var a29: {| param1: number; param2: string |}
|
||||
var a30: {| param1: number; param2?: string |}
|
||||
var a31: {| [a: number]: string; [b: number]: string; |};
|
||||
var a32: {| add(x: number, ...y: Array<string>): void |};
|
||||
var a33: {| subtract: (x: number, ...y: Array<string>) => void |};
|
||||
var a34: {| id<T>(x: T): T; |};
|
||||
function foo27(numVal: number = 2) {}
|
||||
function foo28(numVal?: number = 2) {}
|
||||
export type * from "foo";
|
||||
|
||||
@@ -1,237 +1,237 @@
|
||||
function foo(numVal: any) {}
|
||||
function foo1(numVal: any) {}
|
||||
|
||||
function foo(numVal: number) {}
|
||||
function foo2(numVal: number) {}
|
||||
|
||||
function foo(numVal: number, strVal: string) {}
|
||||
function foo3(numVal: number, strVal: string) {}
|
||||
|
||||
function foo(numVal: number, untypedVal) {}
|
||||
function foo4(numVal: number, untypedVal) {}
|
||||
|
||||
function foo(untypedVal, numVal: number) {}
|
||||
function foo5(untypedVal, numVal: number) {}
|
||||
|
||||
function foo(nullableNum: ?number) {}
|
||||
function foo6(nullableNum: ?number) {}
|
||||
|
||||
function foo(callback: () => void) {}
|
||||
function foo7(callback: () => void) {}
|
||||
|
||||
function foo(callback: () => number) {}
|
||||
function foo8(callback: () => number) {}
|
||||
|
||||
function foo(callback: (_: boolean) => number) {}
|
||||
function foo9(callback: (_: boolean) => number) {}
|
||||
|
||||
function foo(callback: (_1: boolean, _2: string) => number) {}
|
||||
function foo10(callback: (_1: boolean, _2: string) => number) {}
|
||||
|
||||
function foo(callback: (_1: boolean, ...foo: Array<number>) => number) {}
|
||||
function foo11(callback: (_1: boolean, ...foo: Array<number>) => number) {}
|
||||
|
||||
function foo(): number {}
|
||||
function foo12(): number {}
|
||||
|
||||
function foo(): () => void {}
|
||||
function foo13(): () => void {}
|
||||
|
||||
function foo(): (_: boolean) => number {}
|
||||
function foo14(): (_: boolean) => number {}
|
||||
|
||||
function foo(): (_?: boolean) => number {}
|
||||
function foo15(): (_?: boolean) => number {}
|
||||
|
||||
function foo(): {} {}
|
||||
function foo16(): {} {}
|
||||
|
||||
function foo<T>() {}
|
||||
function foo17<T>() {}
|
||||
|
||||
function foo<T, S>() {}
|
||||
function foo18<T, S>() {}
|
||||
|
||||
function foo<T: F>() {}
|
||||
function foo19<T: F>() {}
|
||||
|
||||
a = function <T, S>() {};
|
||||
a1 = function <T, S>() {};
|
||||
|
||||
a = {
|
||||
a2 = {
|
||||
set fooProp(value: number) {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a3 = {
|
||||
set fooProp(value: number): void {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a4 = {
|
||||
get fooProp(): number {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a5 = {
|
||||
id<T>(x: T): T {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a6 = {
|
||||
*id<T>(x: T): T {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a7 = {
|
||||
async id<T>(x: T): T {}
|
||||
|
||||
};
|
||||
a = {
|
||||
a8 = {
|
||||
123<T>(x: T): T {}
|
||||
|
||||
};
|
||||
|
||||
class Foo {
|
||||
class Foo1 {
|
||||
set fooProp(value: number) {}
|
||||
|
||||
}
|
||||
|
||||
class Foo {
|
||||
class Foo2 {
|
||||
set fooProp(value: number): void {}
|
||||
|
||||
}
|
||||
|
||||
class Foo {
|
||||
class Foo3 {
|
||||
get fooProp(): number {}
|
||||
|
||||
}
|
||||
|
||||
var numVal: number;
|
||||
var numVal: empty;
|
||||
var numVal: mixed;
|
||||
var numVal: number = otherNumVal;
|
||||
var a: {
|
||||
var numVal1: number;
|
||||
var numVal2: empty;
|
||||
var numVal3: mixed;
|
||||
var numVal4: number = otherNumVal;
|
||||
var a1: {
|
||||
numVal: number
|
||||
};
|
||||
var a: {
|
||||
var a2: {
|
||||
numVal: number
|
||||
};
|
||||
var a: {
|
||||
var a3: {
|
||||
numVal: number,
|
||||
[indexer: string]: number,
|
||||
};
|
||||
var a: ?{
|
||||
var a4: ?{
|
||||
numVal: number
|
||||
};
|
||||
var a: {
|
||||
var a5: {
|
||||
numVal: number,
|
||||
strVal: string,
|
||||
};
|
||||
var a: {
|
||||
var a6: {
|
||||
subObj: {
|
||||
strVal: string
|
||||
}
|
||||
};
|
||||
var a: {
|
||||
var a7: {
|
||||
subObj: ?{
|
||||
strVal: string
|
||||
}
|
||||
};
|
||||
var a: {
|
||||
var a8: {
|
||||
param1: number,
|
||||
param2: string,
|
||||
};
|
||||
var a: {
|
||||
var a9: {
|
||||
param1: number,
|
||||
param2?: string,
|
||||
};
|
||||
var a: {
|
||||
var a10: {
|
||||
[a: number]: string,
|
||||
[b: number]: string,
|
||||
};
|
||||
var a: {
|
||||
var a11: {
|
||||
add(x: number, ...y: Array<string>): void
|
||||
};
|
||||
var a: {
|
||||
var a12: {
|
||||
subtract: (x: number, ...y: Array<string>) => void
|
||||
};
|
||||
var a: {
|
||||
var a13: {
|
||||
id<T>(x: T): T
|
||||
};
|
||||
var a: Array<number> = [1, 2, 3];
|
||||
a = class Foo<T> {};
|
||||
a = class Foo<T> extends Bar<T> {};
|
||||
var a14: Array<number> = [1, 2, 3];
|
||||
a13 = class Foo<T> {};
|
||||
a14 = class Foo<T> extends Bar<T> {};
|
||||
|
||||
class Foo<T> {}
|
||||
class Foo4<T> {}
|
||||
|
||||
class Foo<T> extends Bar<T> {}
|
||||
class Foo5<T> extends Bar<T> {}
|
||||
|
||||
class Foo<T> extends mixin(Bar) {}
|
||||
class Foo6<T> extends mixin(Bar) {}
|
||||
|
||||
class Foo<T> {
|
||||
class Foo7<T> {
|
||||
bar<U>(): number {
|
||||
return 42;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Foo {
|
||||
class Foo8 {
|
||||
"bar"<T>() {}
|
||||
|
||||
}
|
||||
|
||||
function foo(requiredParam, optParam?) {}
|
||||
function foo20(requiredParam, optParam?) {}
|
||||
|
||||
class Foo {
|
||||
class Foo9 {
|
||||
prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
|
||||
class Foo {
|
||||
class Foo10 {
|
||||
static prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
|
||||
class Foo {
|
||||
class Foo11 {
|
||||
#prop1: string;
|
||||
prop2: number;
|
||||
}
|
||||
|
||||
var x: number | string = 4;
|
||||
var x1: number | string = 4;
|
||||
|
||||
class Array {
|
||||
concat(items: number | string) {}
|
||||
|
||||
}
|
||||
|
||||
var x: () => number | () => string = fn;
|
||||
var x: typeof Y = Y;
|
||||
var x: typeof Y | number = Y;
|
||||
var x2: () => number | (() => string) = fn;
|
||||
var x3: typeof Y = Y;
|
||||
var x4: typeof Y | number = Y;
|
||||
var {
|
||||
x
|
||||
x5
|
||||
}: {
|
||||
x: string
|
||||
x5: string
|
||||
} = {
|
||||
x: "hello"
|
||||
x5: "hello"
|
||||
};
|
||||
var {
|
||||
x
|
||||
x6
|
||||
}: {
|
||||
x: string
|
||||
x6: string
|
||||
} = {
|
||||
x: "hello"
|
||||
x6: "hello"
|
||||
};
|
||||
var [x]: Array<string> = ["hello"];
|
||||
var [x7]: Array<string> = ["hello"];
|
||||
|
||||
function foo({
|
||||
function foo21({
|
||||
x
|
||||
}: {
|
||||
x: string
|
||||
}) {}
|
||||
|
||||
function foo([x]: Array<string>) {}
|
||||
function foo22([x]: Array<string>) {}
|
||||
|
||||
function foo(...rest: Array<number>) {}
|
||||
function foo23(...rest: Array<number>) {}
|
||||
|
||||
(function (...rest: Array<number>) {});
|
||||
|
||||
(...rest: Array<number>) => rest;
|
||||
|
||||
var a: Map<string, Array<string>>;
|
||||
var a: Map<string, Array<string>>;
|
||||
var a: number[];
|
||||
var a: ?string[];
|
||||
var a: Promise<boolean>[];
|
||||
var a: (...rest: Array<number>) => number;
|
||||
var identity: <T>(x: T) => T;
|
||||
var identity: <T>(x: T, ...y: T[]) => T;
|
||||
import type foo from "bar";
|
||||
import type { foo, bar } from "baz";
|
||||
import type { foo as bar } from "baz";
|
||||
var a15: Map<string, Array<string>>;
|
||||
var a16: Map<string, Array<string>>;
|
||||
var a17: number[];
|
||||
var a18: ?string[];
|
||||
var a19: Promise<boolean>[];
|
||||
var a20: (...rest: Array<number>) => number;
|
||||
var identity1: <T>(x: T) => T;
|
||||
var identity2: <T>(x: T, ...y: T[]) => T;
|
||||
import type foo24 from "bar";
|
||||
import type { foo25, bar1 } from "baz";
|
||||
import type { foo as bar2 } from "baz";
|
||||
import type from "foo";
|
||||
import type, { foo } from "bar";
|
||||
import type2, { foo26 } from "bar";
|
||||
import typeof * as namespace from "bar";
|
||||
import { type Foo } from "bar";
|
||||
import { typeof Foo } from "bar";
|
||||
import { type Foo as Bar } from "bar";
|
||||
import { typeof Foo as Bar } from "bar";
|
||||
export type { foo };
|
||||
import { type Foo12 } from "bar";
|
||||
import { typeof Foo13 } from "bar";
|
||||
import { type Foo as Bar1 } from "bar";
|
||||
import { typeof Foo as Bar2 } from "bar";
|
||||
export type { foo1 };
|
||||
export type { bar } from "bar";
|
||||
export interface baz {
|
||||
p: number
|
||||
@@ -239,58 +239,58 @@ export interface baz {
|
||||
export interface qux<T> {
|
||||
p: T
|
||||
}
|
||||
var a: ?Array<?string>;
|
||||
var a: {|
|
||||
var a21: ?Array<?string>;
|
||||
var a22: {|
|
||||
numVal: number
|
||||
|};
|
||||
var a: {|
|
||||
var a23: {|
|
||||
numVal: number
|
||||
|};
|
||||
var a: {|
|
||||
var a24: {|
|
||||
numVal: number,
|
||||
[indexer: string]: number,
|
||||
|};
|
||||
var a: ?{|
|
||||
var a25: ?{|
|
||||
numVal: number
|
||||
|};
|
||||
var a: {|
|
||||
var a26: {|
|
||||
numVal: number,
|
||||
strVal: string,
|
||||
|};
|
||||
var a: {|
|
||||
var a27: {|
|
||||
subObj: {
|
||||
strVal: string
|
||||
}
|
||||
|};
|
||||
var a: {|
|
||||
var a28: {|
|
||||
subObj: ?{
|
||||
strVal: string
|
||||
}
|
||||
|};
|
||||
var a: {|
|
||||
var a29: {|
|
||||
param1: number,
|
||||
param2: string,
|
||||
|};
|
||||
var a: {|
|
||||
var a30: {|
|
||||
param1: number,
|
||||
param2?: string,
|
||||
|};
|
||||
var a: {|
|
||||
var a31: {|
|
||||
[a: number]: string,
|
||||
[b: number]: string,
|
||||
|};
|
||||
var a: {|
|
||||
var a32: {|
|
||||
add(x: number, ...y: Array<string>): void
|
||||
|};
|
||||
var a: {|
|
||||
var a33: {|
|
||||
subtract: (x: number, ...y: Array<string>) => void
|
||||
|};
|
||||
var a: {|
|
||||
var a34: {|
|
||||
id<T>(x: T): T
|
||||
|};
|
||||
|
||||
function foo(numVal: number = 2) {}
|
||||
function foo27(numVal: number = 2) {}
|
||||
|
||||
function foo(numVal?: number = 2) {}
|
||||
function foo28(numVal?: number = 2) {}
|
||||
|
||||
export type * from "foo";
|
||||
@@ -1,21 +1,21 @@
|
||||
type A<T = string> = T;
|
||||
type A<T = *> = T;
|
||||
type A<T: ?string = string> = T;
|
||||
type A<S, T: ?string = string> = T;
|
||||
type A<S = number, T: ?string = string> = T;
|
||||
class A<T = string> {}
|
||||
class A<T: ?string = string> {}
|
||||
class A<S, T: ?string = string> {}
|
||||
class A<S = number, T: ?string = string> {}
|
||||
(class A<T = string> {});
|
||||
(class A<T: ?string = string> {});
|
||||
(class A<S, T: ?string = string> {});
|
||||
(class A<S = number, T: ?string = string> {});
|
||||
declare class A<T = string> {}
|
||||
declare class A<T: ?string = string> {}
|
||||
declare class A<S, T: ?string = string> {}
|
||||
declare class A<S = number, T: ?string = string> {}
|
||||
interface A<T = string> {}
|
||||
interface A<T: ?string = string> {}
|
||||
interface A<S, T: ?string = string> {}
|
||||
interface A<S = number, T: ?string = string> {}
|
||||
type A1<T = string> = T;
|
||||
type A2<T = *> = T;
|
||||
type A3<T: ?string = string> = T;
|
||||
type A4<S, T: ?string = string> = T;
|
||||
type A5<S = number, T: ?string = string> = T;
|
||||
class A6<T = string> {}
|
||||
class A7<T: ?string = string> {}
|
||||
class A8<S, T: ?string = string> {}
|
||||
class A9<S = number, T: ?string = string> {}
|
||||
(class A10<T = string> {});
|
||||
(class A11<T: ?string = string> {});
|
||||
(class A12<S, T: ?string = string> {});
|
||||
(class A13<S = number, T: ?string = string> {});
|
||||
declare class A14<T = string> {}
|
||||
declare class A15<T: ?string = string> {}
|
||||
declare class A16<S, T: ?string = string> {}
|
||||
declare class A17<S = number, T: ?string = string> {}
|
||||
interface A18<T = string> {}
|
||||
interface A19<T: ?string = string> {}
|
||||
interface A20<S, T: ?string = string> {}
|
||||
interface A21<S = number, T: ?string = string> {}
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
type A<T = string> = T;
|
||||
type A<T = *> = T;
|
||||
type A<T: ?string = string> = T;
|
||||
type A<S, T: ?string = string> = T;
|
||||
type A<S = number, T: ?string = string> = T;
|
||||
type A1<T = string> = T;
|
||||
type A2<T = *> = T;
|
||||
type A3<T: ?string = string> = T;
|
||||
type A4<S, T: ?string = string> = T;
|
||||
type A5<S = number, T: ?string = string> = T;
|
||||
|
||||
class A<T = string> {}
|
||||
class A6<T = string> {}
|
||||
|
||||
class A<T: ?string = string> {}
|
||||
class A7<T: ?string = string> {}
|
||||
|
||||
class A<S, T: ?string = string> {}
|
||||
class A8<S, T: ?string = string> {}
|
||||
|
||||
class A<S = number, T: ?string = string> {}
|
||||
class A9<S = number, T: ?string = string> {}
|
||||
|
||||
(class A<T = string> {});
|
||||
(class A10<T = string> {});
|
||||
|
||||
(class A<T: ?string = string> {});
|
||||
(class A11<T: ?string = string> {});
|
||||
|
||||
(class A<S, T: ?string = string> {});
|
||||
(class A12<S, T: ?string = string> {});
|
||||
|
||||
(class A<S = number, T: ?string = string> {});
|
||||
(class A13<S = number, T: ?string = string> {});
|
||||
|
||||
declare class A<T = string> {}
|
||||
declare class A<T: ?string = string> {}
|
||||
declare class A<S, T: ?string = string> {}
|
||||
declare class A<S = number, T: ?string = string> {}
|
||||
interface A<T = string> {}
|
||||
interface A<T: ?string = string> {}
|
||||
interface A<S, T: ?string = string> {}
|
||||
interface A<S = number, T: ?string = string> {}
|
||||
declare class A14<T = string> {}
|
||||
declare class A15<T: ?string = string> {}
|
||||
declare class A16<S, T: ?string = string> {}
|
||||
declare class A17<S = number, T: ?string = string> {}
|
||||
interface A18<T = string> {}
|
||||
interface A19<T: ?string = string> {}
|
||||
interface A20<S, T: ?string = string> {}
|
||||
interface A21<S = number, T: ?string = string> {}
|
||||
@@ -4,15 +4,15 @@ function t2({responseText}) {
|
||||
}
|
||||
function t3([a, b]) {
|
||||
}
|
||||
var [i, j, k] = array;
|
||||
var [i1, j1, k1] = array;
|
||||
var {
|
||||
i,
|
||||
j,
|
||||
k
|
||||
i2,
|
||||
j2,
|
||||
k2
|
||||
} = obj;
|
||||
let {i, j, k} = obj;
|
||||
const {i, j, k} = obj;
|
||||
var { value } = obj;
|
||||
let {i3, j3, k3} = obj;
|
||||
const {i4, j4, k4} = obj;
|
||||
var { value1 } = obj;
|
||||
var {
|
||||
value
|
||||
value2
|
||||
} = obj;
|
||||
|
||||
@@ -8,25 +8,25 @@ function t2({
|
||||
|
||||
function t3([a, b]) {}
|
||||
|
||||
var [i, j, k] = array;
|
||||
var [i1, j1, k1] = array;
|
||||
var {
|
||||
i,
|
||||
j,
|
||||
k
|
||||
i2,
|
||||
j2,
|
||||
k2
|
||||
} = obj;
|
||||
let {
|
||||
i,
|
||||
j,
|
||||
k
|
||||
i3,
|
||||
j3,
|
||||
k3
|
||||
} = obj;
|
||||
const {
|
||||
i,
|
||||
j,
|
||||
k
|
||||
i4,
|
||||
j4,
|
||||
k4
|
||||
} = obj;
|
||||
var {
|
||||
value
|
||||
value1
|
||||
} = obj;
|
||||
var {
|
||||
value
|
||||
value2
|
||||
} = obj;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user