Restore labels after included try statement block #3871
Merged
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.
This PR contains:
Are tests included?
Breaking Changes?
List any relevant issue numbers:
Resolves #3869
Description
This solves a tricky issue in the interplay of the default deoptimization of try-catch blocks, see #3869. Basically what was happening is that while during the first tree-shaking run, the break statement with the label was correctly tracked, it was not tracked during the second run as it was nested in a try statement. And try statements are only evaluated once.
This PR fixes this by caching the labels that are used inside a try statement for subsequent runs.