Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port babel-parser changes from 2021-08-20 to 2021-12-30 #714

Merged
merged 1 commit into from
Jul 1, 2022

Conversation

alangpierce
Copy link
Owner

Instructions: https://github.com/alangpierce/sucrase/wiki/Porting-changes-from-Babel's-parser

976bfbbf69 fix: assure left bracket is not consumed after dot (#13695)
🚫 Bug doesn't seem to apply to Sucrase, and fix is validation only.

1d4bd31950 add missing ExportNamespaceSpecifier in spec.md (#13691)
🚫 Docs only.

b141c85b17 fix(babel-parser): delete static property from class static block for TS (#13680)
🚫 Only affects AST.

64d116bd6a fix(parser): [Babel8] Align error codes between Flow and TypeScript (#13294)
🚫 Only affects error reporting.

a54f041440 test(parser): add no_plugin tests for module blocks (#13714)
🚫 Test only.

b2376757d7 v7.15.4
🚫 Release only.

44388e6e81 Disallow #a in #b in c and similar expressions (#13727)
🚫 Only affects validation.

e82e43ca33 v7.15.5
🚫 Release only.

62e42a3f60 fix(babel-parser): Fix end of range of SequenceExpression (#13731)
🚫 AST only.

c25ec3e069 [babel-parser] add tests for static blocks with line breaks (#13734)
βœ… Added similar test for Sucrase (though nothing was broken).

3c3f5205c9 Fix right precedence of Hack pipes (#13668)
βœ… Given the active spec work, I filed #674 to revisit in the future.

34a27e46f8 v7.15.6
🚫 Release only.

710b3919fa [estree] Fix conversion of PrivateName in MemberExpression (#13755)
🚫 Only affects estree.

da79c90f2a fix(babel-parser): Allow line break before assert return type (#13771)
βœ… Ported fix.

d2076a531f Store token type as number (#13768)
🚫 Optimization that's pretty much already in Sucrase.

8d0294edf8 v7.15.7
🚫 Release only.

2e2d202694 [babel 8] Materialize ESTree's classFeatures option (#13752)
🚫 Not relevant for Sucrase.

178d43ff17 Tokenize keywords-like identifier as new tokens (#13769)
🚫 Interesting alternative approach to Sucrase's contextual keyword enums. Doesn't seem worth it to switch to Babel's approach for now.

64f14b05fa Collect comments around parentheses in expressions (#13803)
🚫 AST only.

c4b13725aa v7.15.8
🚫 Release only.

b5907ef967 remove executable permission from files that shouldn't have it (#13873)
🚫 Babel-internal change.

62b2c5ebb9 Regenerate parser fixtures (#13882)
🚫 Babel-internal change.

c7ddb1ae93 Use workspace:^ to specify @babel/ dependencies (#13772)
🚫 Babel-internal change.

fb7ddf4d38 [ts] Support private methods overloads (#13876)
🚫 Issue doesn't affect Sucrase.

ddc45a5a50 Enable class static blocks by default (#13713)
🚫 Already enabled by default for Sucrase.

ad59a2c618 Caret topic (pipe operator) (#13749)
🚫 Not implementing topic token changes for now until it's finalized, see #674

718c6cb7de Handle .mts and .cts files in @babel/preset-typescript (#13838)
🚫 Only adds error handling to the parser. Sucrase integrations should better handle .mts and .cts, but that can be done in follow-up work.

872086a9a0 feat: support startColumn option (#13887)
🚫 Not relevant to Sucrase.

d5ba355867 Support TypeScript 4.5 type-only import/export specifiers (#13802)
βœ… Implemented separately as #713

45308f3cba v7.16.0
🚫 Release only.

cba7f9e503 Add missing assertions type (#13905)
🚫 AST only.

68fad796b1 v7.16.2
🚫 Release only.

1fa759f989 refactor: extract tt.lt and tt.gt from tt.relation (#13892)
🚫 Already done in Sucrase. Also includes a refactor that could be reasonable to incorporate, but I'll skip that for now.

7250d2562b Simplifiy tracking of valid JSX positions (#13891)
🚫 The relevant code has changed enough that this probably isn't worth porting.

a6a526968d fix: incorrect await rejection following arrow function in parameters (#13928)
🚫 Bug fix is in code not relevant to Sucrase.

3b6f061e18 v7.16.3
🚫 Release only.

135ab837bc Throw on duplicate __proto__ props followed by assignment (#13951)
🚫 Only affects error handling.

54c539ecc1 Refactor bindingProperty parsing (#13929)
🚫 Nothing stands out as relevant to Sucrase.

966387d263 Always expose expressionValue in DirectiveLiteral nodes (#13960)
🚫 AST only.

87fc2e76d7 Add assertions to ExportNamedDeclaration without from (#13957)
🚫 AST only.

99774ee9fa v7.16.4
🚫 Release only.

d30308fe8e fix: update UnexpectedPrivateField error message (#13975)
🚫 Validation only.

a470f7b479 Recover from shorthand assign exprs (#13968)
βœ… We already handled this case, but I added a test to confirm.

75996cb62b Use full import specifier path in tests (#13938)
🚫 Babel-internal change.

ad1798ed48 Only bundle the release build, and don't import src in tests (#13978)
🚫 Babel-internal change.

f4236f43a1 Extend hasPlugin to accept plugin-configuration array pairs (#13982)
🚫 Sucrase uses a different config system.

2d989a983d Run tests in a native Node.js ESM environment (#13966)
🚫 Babel-internal change. (Though very cool to see!)

94af0e5c62 Improve template tokenizing (#13919)
🚫 Sucrase got rid of context, so it looks like this change isn't as relevant.

39080492f4 maintain estree string literal shape when cloned (#14039)
🚫 AST only.

7b7ab94066 v7.16.5
🚫 Release only.

7794201940 fix: handle tokens for invalid template element (#14055)
🚫 Bug not relevant to Sucrase.

5687ade5e7 v7.16.6
🚫 Release only.

ad17fe1cce fix: check preceding line break before exclamation (#14049)
βœ… Fixed bug in the same way and added a test.

d1cabf6bc8 [babel 8] Add "exports" to every package (#14013)
🚫 Babel-internal change.

23e884048a v7.16.7
🚫 Release only.

Instructions: https://github.com/alangpierce/sucrase/wiki/Porting-changes-from-Babel's-parser

976bfbbf69 fix: assure left bracket is not consumed after dot (#13695)
🚫 Bug doesn't seem to apply to Sucrase, and fix is validation only.

1d4bd31950 add missing ExportNamespaceSpecifier in spec.md (#13691)
🚫 Docs only.

b141c85b17 fix(babel-parser): delete `static` property from class static block for TS (#13680)
🚫 Only affects AST.

64d116bd6a fix(parser): [Babel8] Align error codes between Flow and TypeScript (#13294)
🚫 Only affects error reporting.

a54f041440 test(parser): add no_plugin tests for module blocks (#13714)
🚫 Test only.

b2376757d7 v7.15.4
🚫 Release only.

44388e6e81 Disallow `#a in #b in c` and similar expressions (#13727)
🚫 Only affects validation.

e82e43ca33 v7.15.5
🚫 Release only.

62e42a3f60 fix(babel-parser): Fix end of `range` of `SequenceExpression` (#13731)
🚫 AST only.

c25ec3e069 [babel-parser] add tests for static blocks with line breaks (#13734)
βœ… Added similar test for Sucrase (though nothing was broken).

3c3f5205c9 Fix right precedence of Hack pipes (#13668)
βœ… Given the active spec work, I filed #674 to revisit in the future.

34a27e46f8 v7.15.6
🚫 Release only.

710b3919fa [estree] Fix conversion of `PrivateName` in `MemberExpression` (#13755)
🚫 Only affects estree.

da79c90f2a fix(babel-parser): Allow line break before `assert` return type (#13771)
βœ… Ported fix.

d2076a531f Store token type as number (#13768)
🚫 Optimization that's pretty much already in Sucrase.

8d0294edf8 v7.15.7
🚫 Release only.

2e2d202694 [babel 8] Materialize ESTree's `classFeatures` option (#13752)
🚫 Not relevant for Sucrase.

178d43ff17 Tokenize keywords-like identifier as new tokens (#13769)
🚫 Interesting alternative approach to Sucrase's contextual keyword enums. Doesn't seem worth it to switch to Babel's approach for now.

64f14b05fa Collect comments around parentheses in expressions (#13803)
🚫 AST only.

c4b13725aa v7.15.8
🚫 Release only.

b5907ef967 remove executable permission from files that shouldn't have it (#13873)
🚫 Babel-internal change.

62b2c5ebb9 Regenerate parser fixtures (#13882)
🚫 Babel-internal change.

c7ddb1ae93 Use `workspace:^` to specify `@babel/` dependencies (#13772)
🚫 Babel-internal change.

fb7ddf4d38 [ts] Support private methods overloads (#13876)
🚫 Issue doesn't affect Sucrase.

ddc45a5a50 Enable class static blocks by default (#13713)
🚫 Already enabled by default for Sucrase.

ad59a2c618 Caret topic (pipe operator) (#13749)
🚫 Not implementing topic token changes for now until it's finalized, see #674

718c6cb7de Handle `.mts` and `.cts` files in `@babel/preset-typescript` (#13838)
🚫 Only adds error handling to the parser. Sucrase integrations should better handle .mts and .cts, but that can be done in follow-up work.

872086a9a0 feat: support `startColumn` option (#13887)
🚫 Not relevant to Sucrase.

d5ba355867 Support TypeScript 4.5 type-only import/export specifiers (#13802)
βœ… Implemented separately as #713

45308f3cba v7.16.0
🚫 Release only.

cba7f9e503 Add missing assertions type (#13905)
🚫 AST only.

68fad796b1 v7.16.2
🚫 Release only.

1fa759f989 refactor: extract tt.lt and tt.gt from tt.relation (#13892)
🚫 Already done in Sucrase. Also includes a refactor that could be reasonable to incorporate, but I'll skip that for now.

7250d2562b Simplifiy tracking of valid JSX positions (#13891)
🚫 The relevant code has changed enough that this probably isn't worth porting.

a6a526968d fix: incorrect await rejection following arrow function in parameters (#13928)
🚫 Bug fix is in code not relevant to Sucrase.

3b6f061e18 v7.16.3
🚫 Release only.

135ab837bc Throw on duplicate `__proto__` props followed by assignment (#13951)
🚫 Only affects error handling.

54c539ecc1 Refactor bindingProperty parsing (#13929)
🚫 Nothing stands out as relevant to Sucrase.

966387d263 Always expose `expressionValue` in `DirectiveLiteral` nodes (#13960)
🚫 AST only.

87fc2e76d7 Add `assertions` to `ExportNamedDeclaration` without `from` (#13957)
🚫 AST only.

99774ee9fa v7.16.4
🚫 Release only.

d30308fe8e fix: update UnexpectedPrivateField error message (#13975)
🚫 Validation only.

a470f7b479 Recover from shorthand assign exprs (#13968)
βœ… We already handled this case, but I added a test to confirm.

75996cb62b Use full import specifier path in tests (#13938)
🚫 Babel-internal change.

ad1798ed48 Only bundle the release build, and don't import `src` in tests (#13978)
🚫 Babel-internal change.

f4236f43a1 Extend `hasPlugin` to accept plugin-configuration array pairs (#13982)
🚫 Sucrase uses a different config system.

2d989a983d Run tests in a native Node.js ESM environment (#13966)
🚫 Babel-internal change. (Though very cool to see!)

94af0e5c62 Improve template tokenizing (#13919)
🚫 Sucrase got rid of context, so it looks like this change isn't as relevant.

39080492f4 maintain estree string literal shape when cloned (#14039)
🚫 AST only.

7b7ab94066 v7.16.5
🚫 Release only.

7794201940 fix: handle tokens for invalid template element (#14055)
🚫 Bug not relevant to Sucrase.

5687ade5e7 v7.16.6
🚫 Release only.

ad17fe1cce fix: check preceding line break before exclamation (#14049)
βœ… Fixed bug in the same way and added a test.

d1cabf6bc8 [babel 8] Add `"exports"` to every package (#14013)
🚫 Babel-internal change.

23e884048a v7.16.7
🚫 Release only.
@alangpierce alangpierce force-pushed the port-babel-parser-2021-08-20-to-2021-12-30 branch from 26eab7e to d45a21e Compare July 1, 2022 23:32
@codecov
Copy link

codecov bot commented Jul 1, 2022

Codecov Report

Merging #714 (d45a21e) into main (2ddc2d1) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #714   +/-   ##
=======================================
  Coverage   85.53%   85.53%           
=======================================
  Files          55       55           
  Lines        5882     5883    +1     
  Branches     1331     1332    +1     
=======================================
+ Hits         5031     5032    +1     
  Misses        574      574           
  Partials      277      277           
Impacted Files Coverage Ξ”
src/parser/plugins/typescript.ts 86.13% <100.00%> (+0.01%) ⬆️

πŸ“£ Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

@github-actions
Copy link

github-actions bot commented Jul 1, 2022

Benchmark results

Before this PR: 285.1 thousand lines per second
After this PR: 286.7 thousand lines per second

Measured change: 0.57% faster (0.17% slower to 2.23% faster)
Summary: Likely no significant difference

@alangpierce alangpierce merged commit 00a86a2 into main Jul 1, 2022
@alangpierce alangpierce deleted the port-babel-parser-2021-08-20-to-2021-12-30 branch July 1, 2022 23:58
1Lighty pushed a commit to Astra-mod/sucrase that referenced this pull request Aug 14, 2022
)

Instructions: https://github.com/alangpierce/sucrase/wiki/Porting-changes-from-Babel's-parser

976bfbbf69 fix: assure left bracket is not consumed after dot (#13695)
🚫 Bug doesn't seem to apply to Sucrase, and fix is validation only.

1d4bd31950 add missing ExportNamespaceSpecifier in spec.md (#13691)
🚫 Docs only.

b141c85b17 fix(babel-parser): delete `static` property from class static block for TS (#13680)
🚫 Only affects AST.

64d116bd6a fix(parser): [Babel8] Align error codes between Flow and TypeScript (#13294)
🚫 Only affects error reporting.

a54f041440 test(parser): add no_plugin tests for module blocks (#13714)
🚫 Test only.

b2376757d7 v7.15.4
🚫 Release only.

44388e6e81 Disallow `#a in #b in c` and similar expressions (#13727)
🚫 Only affects validation.

e82e43ca33 v7.15.5
🚫 Release only.

62e42a3f60 fix(babel-parser): Fix end of `range` of `SequenceExpression` (#13731)
🚫 AST only.

c25ec3e069 [babel-parser] add tests for static blocks with line breaks (#13734)
βœ… Added similar test for Sucrase (though nothing was broken).

3c3f5205c9 Fix right precedence of Hack pipes (#13668)
βœ… Given the active spec work, I filed alangpierce#674 to revisit in the future.

34a27e46f8 v7.15.6
🚫 Release only.

710b3919fa [estree] Fix conversion of `PrivateName` in `MemberExpression` (#13755)
🚫 Only affects estree.

da79c90f2a fix(babel-parser): Allow line break before `assert` return type (#13771)
βœ… Ported fix.

d2076a531f Store token type as number (#13768)
🚫 Optimization that's pretty much already in Sucrase.

8d0294edf8 v7.15.7
🚫 Release only.

2e2d202694 [babel 8] Materialize ESTree's `classFeatures` option (#13752)
🚫 Not relevant for Sucrase.

178d43ff17 Tokenize keywords-like identifier as new tokens (#13769)
🚫 Interesting alternative approach to Sucrase's contextual keyword enums. Doesn't seem worth it to switch to Babel's approach for now.

64f14b05fa Collect comments around parentheses in expressions (#13803)
🚫 AST only.

c4b13725aa v7.15.8
🚫 Release only.

b5907ef967 remove executable permission from files that shouldn't have it (#13873)
🚫 Babel-internal change.

62b2c5ebb9 Regenerate parser fixtures (#13882)
🚫 Babel-internal change.

c7ddb1ae93 Use `workspace:^` to specify `@babel/` dependencies (#13772)
🚫 Babel-internal change.

fb7ddf4d38 [ts] Support private methods overloads (#13876)
🚫 Issue doesn't affect Sucrase.

ddc45a5a50 Enable class static blocks by default (#13713)
🚫 Already enabled by default for Sucrase.

ad59a2c618 Caret topic (pipe operator) (#13749)
🚫 Not implementing topic token changes for now until it's finalized, see alangpierce#674

718c6cb7de Handle `.mts` and `.cts` files in `@babel/preset-typescript` (#13838)
🚫 Only adds error handling to the parser. Sucrase integrations should better handle .mts and .cts, but that can be done in follow-up work.

872086a9a0 feat: support `startColumn` option (#13887)
🚫 Not relevant to Sucrase.

d5ba355867 Support TypeScript 4.5 type-only import/export specifiers (#13802)
βœ… Implemented separately as alangpierce#713

45308f3cba v7.16.0
🚫 Release only.

cba7f9e503 Add missing assertions type (#13905)
🚫 AST only.

68fad796b1 v7.16.2
🚫 Release only.

1fa759f989 refactor: extract tt.lt and tt.gt from tt.relation (#13892)
🚫 Already done in Sucrase. Also includes a refactor that could be reasonable to incorporate, but I'll skip that for now.

7250d2562b Simplifiy tracking of valid JSX positions (#13891)
🚫 The relevant code has changed enough that this probably isn't worth porting.

a6a526968d fix: incorrect await rejection following arrow function in parameters (#13928)
🚫 Bug fix is in code not relevant to Sucrase.

3b6f061e18 v7.16.3
🚫 Release only.

135ab837bc Throw on duplicate `__proto__` props followed by assignment (#13951)
🚫 Only affects error handling.

54c539ecc1 Refactor bindingProperty parsing (#13929)
🚫 Nothing stands out as relevant to Sucrase.

966387d263 Always expose `expressionValue` in `DirectiveLiteral` nodes (#13960)
🚫 AST only.

87fc2e76d7 Add `assertions` to `ExportNamedDeclaration` without `from` (#13957)
🚫 AST only.

99774ee9fa v7.16.4
🚫 Release only.

d30308fe8e fix: update UnexpectedPrivateField error message (#13975)
🚫 Validation only.

a470f7b479 Recover from shorthand assign exprs (#13968)
βœ… We already handled this case, but I added a test to confirm.

75996cb62b Use full import specifier path in tests (#13938)
🚫 Babel-internal change.

ad1798ed48 Only bundle the release build, and don't import `src` in tests (#13978)
🚫 Babel-internal change.

f4236f43a1 Extend `hasPlugin` to accept plugin-configuration array pairs (#13982)
🚫 Sucrase uses a different config system.

2d989a983d Run tests in a native Node.js ESM environment (#13966)
🚫 Babel-internal change. (Though very cool to see!)

94af0e5c62 Improve template tokenizing (#13919)
🚫 Sucrase got rid of context, so it looks like this change isn't as relevant.

39080492f4 maintain estree string literal shape when cloned (#14039)
🚫 AST only.

7b7ab94066 v7.16.5
🚫 Release only.

7794201940 fix: handle tokens for invalid template element (#14055)
🚫 Bug not relevant to Sucrase.

5687ade5e7 v7.16.6
🚫 Release only.

ad17fe1cce fix: check preceding line break before exclamation (#14049)
βœ… Fixed bug in the same way and added a test.

d1cabf6bc8 [babel 8] Add `"exports"` to every package (#14013)
🚫 Babel-internal change.

23e884048a v7.16.7
🚫 Release only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant