fix(shaker): named exports are removed (#800) #801
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.
Motivation
See #800
Summary
In some cases, Babel generates code that depends on hoisted variables. Since
shaker
uses simplified tree traversing, it doesn't properly process those cases and isn't able to evaluate the dependencies of a shaking file.The best solution here would be migration to
@babel/traverse
. However, it will take a while.So that, this PR implements the worst solution :) I've added a dirty hack to
preeval
, that checks that generated code has those "wrong" variables and hoists them.Test plan
One test was added, one test was fixed.