fix(parser): support async arrow functions in default exports#5443
Open
AdityaOP007 wants to merge 2 commits into
Open
fix(parser): support async arrow functions in default exports#5443AdityaOP007 wants to merge 2 commits into
AdityaOP007 wants to merge 2 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#5442
This PR fixes a parser issue where valid ECMAScript syntax using an async arrow function as a default export was incorrectly rejected.
Previously, statements like:
resulted in a parser error because
export default asyncalways assumed an async function declaration instead of allowing anAssignmentExpression. According to the ECMAScript specification, an async arrow function is a validAssignmentExpressionand should parse successfully.What Changed
async.asyncis followed byfunction(with no line terminator).AssignmentExpressionin all other cases, allowing async arrow functions to be handled by the existing parser logic.Result
The following syntax now parses successfully:
Existing valid forms such as:
continue to work as expected.
Validation
cargo fmtcargo clippy -- -D warningsThis change brings the parser behavior in line with the ECMAScript specification while preserving existing functionality and adding regression coverage to prevent similar issues in the future.