Rich-Harris / butternut

The fast, future-friendly minifier
https://butternut.now.sh
MIT License
1.17k stars 17 forks source link

[WIP] Don't use synthetic nodes #71

Closed Rich-Harris closed 7 years ago

Rich-Harris commented 7 years ago

Butternut wrapped non-block bodies for loops and if statements (etc) in 'synthetic' nodes, the theory being that it makes things easier if e.g. an if statement consequent is always a BlockStatement. In practice, that's not true. This PR removes them, and takes a step towards more effective removal of dead chunks of code.

codecov[bot] commented 7 years ago

Codecov Report

Merging #71 into master will decrease coverage by 1.81%. The diff coverage is 83.92%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #71      +/-   ##
==========================================
- Coverage   87.74%   85.93%   -1.82%     
==========================================
  Files          67       66       -1     
  Lines        1420     1415       -5     
==========================================
- Hits         1246     1216      -30     
- Misses        174      199      +25
Impacted Files Coverage Δ
src/program/wrap.js 100% <ø> (ø) :arrow_up:
src/program/Node.js 73.21% <100%> (-13.83%) :arrow_down:
src/program/types/DoWhileStatement.js 100% <100%> (ø) :arrow_up:
src/program/types/Literal.js 100% <100%> (ø) :arrow_up:
src/program/Scope.js 94.11% <100%> (+0.07%) :arrow_up:
src/program/types/ArrowFunctionExpression.js 100% <100%> (ø) :arrow_up:
src/program/Program.js 94.73% <100%> (ø) :arrow_up:
src/program/types/WhileStatement.js 100% <100%> (ø) :arrow_up:
src/program/types/shared/LoopStatement.js 100% <100%> (ø) :arrow_up:
src/analysis/breaksExecution.js 100% <100%> (+21.42%) :arrow_up:
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 3fbfcfc...531caa3. Read the comment docs.