-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Add option to deoptimize var declarations for tree-shaking #4139
Conversation
Thank you for your contribution! ❤️You can try out this pull request locally by installing Rollup via npm install rollup/rollup#correct-var-value-before-declaration or load it into the REPL: |
Codecov Report
@@ Coverage Diff @@
## master #4139 +/- ##
=======================================
Coverage 98.13% 98.13%
=======================================
Files 201 201
Lines 7114 7116 +2
Branches 2081 2083 +2
=======================================
+ Hits 6981 6983 +2
Misses 64 64
Partials 69 69
Continue to review full report at Codecov.
|
ded6187
to
d8ad9ac
Compare
9d68c3c
to
97a6cd2
Compare
This PR contains:
Are tests included?
Breaking Changes?
List any relevant issue numbers:
Description
This will add a new option
treeshake.correctVarValueBeforeDeclaration
. This option will deoptimize the value of anyvar
declarations to make sure that Rollup does not make wrong assumptions when variables are accessed before their declaration. This will even work in pathological examples likewithout this option, this will be simplified to
which is obviously wrong. As this option can lead to heavy deoptimizations depending on the code, it is not switched on by default. It is still better than turning of tree-shaking altogether as basic tree-shaking will still work well: If a variable is not used, it will be removed.
In the meantime, we can work on finding a proper fix for this situation, at which point this option will be deprecated again.
Currently, it will be part of the "safest" tree-shaking preset introduced in #4131.