- #1882 [3.x] fix documentation for beautify options (#1882) (@kzc)
- #1880 return
Error
fromminify()
(#1880) (@alexlamsl) - #1879 support dumping AST (#1879) (@alexlamsl)
- #1877 deprecate low level API (#1877) (@alexlamsl)
- #1878 support
minify()
output as AST (#1878) (@alexlamsl)
- #1873 fix test for #1865 (#1873) (@alexlamsl)
- #1870 fix
unsafe
onevaluate
ofreduce_vars
(#1870) (@alexlamsl) - #1869 kill
opera
(#1869) (@alexlamsl) - #1862 enhance
collapse_vars
(#1862) (@alexlamsl) - #1863 rename variables for better readability (#1863) (@alexlamsl)
- #1864 update
test/benchmark.js
resources (#1864) (@alexlamsl) - #1861 restore report of supported options (#1861) (@alexlamsl)
- #1860 improve literal return optimization (#1860) (@kzc)
- #1855 enforce
toplevel
on other compress options (#1855) (@alexlamsl) - #1846 Update ISSUE_TEMPLATE.md (#1846) (@kzc)
- #1842 fix fuzzer on
this
(#1842) (@alexlamsl) - #1843 fix
unused
on for-in statements (#1843) (@alexlamsl) - #1836 improve parser under "use strict" (#1836) (@alexlamsl)
- #1840 update README for 3.x (#1840) (@kzc)
- #1839 fix
AST_For.init
patch-up indrop_unused()
(#1839) (@alexlamsl) - #1835 fix label-related bugs (#1835) (@alexlamsl)
- #1834 Fix API reference examples (#1834) (@lahmatiy)
- #1832 improve
unused
(#1832) (@alexlamsl) - #1831 fix
unused
on labeled for-loop (#1831) (@alexlamsl) - #1828 improve
collapse_vars
onAST_Var
(#1828) (@alexlamsl) - #1827 fix parser bugs & CLI reporting (#1827) (@alexlamsl)
- #1829 extend
cascade
intoa.b
(#1829) (@alexlamsl) - #1826 clean up
collapse_vars
(#1826) (@alexlamsl) - #1823 support safe reassignments in
reduce_vars
(#1823) (@alexlamsl) - #1822 fix
reduce_vars
on conditionals (#1822) (@alexlamsl) - #1819 fix
reduce_vars
on boolean binary expressions (#1819) (@alexlamsl) - #1817 compress duplicated variable definitions (#1817) (@alexlamsl)
- #1818 fix
reduce_vars
within try-block (#1818) (@alexlamsl) - #1814 enhance
reduce_vars
(#1814) (@alexlamsl) - #1816 fix variable substitution (#1816) (@alexlamsl)
- #1813 update README (#1813) (@alexlamsl)
- #1811 unify CLI & API under
minify()
(#1811) (@alexlamsl) - #1812 drop
angular
(#1812) (@alexlamsl) - #1460 convert
AST_Seq
from binary tree to array (#1460) (@alexlamsl)
- #1804 fix LHS cases for NaN & friends (#1804) (@alexlamsl)
- #1803 enhance
test/ufuzz.js
(#1803) (@alexlamsl) - #1802 fix a couple of bugs in
global_defs
(#1802) (@alexlamsl) - #1799 fix
delete
corner cases (#1799) (@alexlamsl) - #1783 extend ufuzz generator (#1783) (@alexlamsl)
- #1798 fix
pure_getters
for chained property access (#1798) (@alexlamsl) - #1796 fix corner cases with
delete
(#1796) (@alexlamsl) - #1795 introduce "strict" to
pure_getters
(#1795) (@alexlamsl) - #1794 fix
reduce_vars
on catch variable (#1794) (@alexlamsl) - #1791 fix incorrect context in variable substitution (#1791) (@alexlamsl)
- #1793 enable
inline_script
by default (#1793) (@alexlamsl) - #1786 improve
pure_getters
(#1786) (@alexlamsl) - #1788 implement delayed resolution for
reduce_vars
(#1788) (@alexlamsl) - #1785 optimise
do{...}while(false)
(#1785) (@alexlamsl) - #1777 remove
--mangle-props
from fuzzing (#1777) (@alexlamsl) - #1779 exclude mangling of special property names (#1779) (@alexlamsl)
- #1776 fix
mangleProperties
on identifiers (#1776) (@alexlamsl) - #1775 workaround Node.js bugs (#1775) (@alexlamsl)
- #1772 fix mangleProperties of
undefined
&Infinity
(#1772) (@alexlamsl) - #1769 extend
test/ufuzz.js
(#1769) (@alexlamsl)
- #1765 fix corner case in
switch
(#1765) (@alexlamsl) - #1763 avoid confusion of
NaN
&Infinity
withcatch
symbol of the same name (#1763) (@alexlamsl) - #1762 fix corner cases in switch and undefined (#1762) (@alexlamsl)
- #1757 speed up fuzzer code generation (#1757) (@alexlamsl)
- #1756 minor tweaks to
test/ufuzz.js
(#1756) (@alexlamsl) - #1754 upgrade fuzzer (#1754) (@alexlamsl)
- #1755 fuzz regexp literals, more constant numbers, typeof expression (#1755) (@kzc)
- #1752 fix switch branch elimination (#1752) (@alexlamsl)
- #1751 minor tweaks to fuzzer (#1751) (@alexlamsl)
- #1749 implement
test/sandbox.js
(#1749) (@alexlamsl) - #1748 improve compression of undefined, NaN & Infinitiy (#1748) (@alexlamsl)
- #1744 combine rules for binary boolean operations (#1744) (@alexlamsl)
- #1697 Massive extension of the fuzzer (#1697) (@qfox)
- #1743 sort options in alphabetical order (#1743) (@alexlamsl)
- #1742 fix missing preamble when shebang is absent (#1742) (@alexlamsl)
- #1734 fix catch symbol mangling (#1734) (@alexlamsl)
- #1732 remove paranthesis for
-(x*y)
(#1732) (@alexlamsl) - #1731 optimize try-catch-finally (#1731) (@alexlamsl)
- #1729 improve tests from #1726 (#1729) (@alexlamsl)
- #1728 speed up IIFE elimination (#1728) (@alexlamsl)
- #1727 speed up
equivalent_to()
andAST_Switch
(#1727) (@alexlamsl) - #1726 fix missing parentheses around NaN/Infinity shorthands (#1726) (@alexlamsl)
- #1723 output optimal representations of NaN & Infinity (#1723) (@alexlamsl)
- #1721 improve beautified output of switch blocks (#1721) (@alexlamsl)
- #1716 fix
unused
on var of the same name within catch (#1716) (@alexlamsl) - #1714 fix
is_number()
on+=
(#1714) (@alexlamsl) - #1712 drop anonymous function name when overshadowed by other declarations (#1712) (@alexlamsl)
- #1711 handle var within catch of the same name (#1711) (@alexlamsl)
- #1707 fix tail trimming of switch blocks (#1707) (@alexlamsl)
- #1706 fix mangle for variable declared within catch block (#1706) (@alexlamsl)
- #1700 ufuzz: workaround for Function.toString() v2 (#1700) (@alexlamsl)
- #1699
has_side_effects()
should takeAST_Switch.expression
into account (#1699) (@alexlamsl) - #1696 fix typeof side effects (#1696) (@alexlamsl)
- #1694 preserve side effects in switch expression (#1694) (@alexlamsl)
- #1693 fix
cascade
on anonymous function reference (#1693) (@alexlamsl) - #1691 handle overlapped variable definitions (#1691) (@alexlamsl)
- #1689 fix
delete
related issues incollapse_vars
andreduce_vars
(#1689) (@alexlamsl) - #1688 ufuzz: workaround function name and toString() (#1688) (@alexlamsl)
- #1687 fix
cascade
ondelete
operator (#1687) (@alexlamsl) - #1683 fallthrough should not execute case expression (#1683) (@alexlamsl)
- #1684 optimize conditional when condition symbol matches consequent (#1684) (@kzc)
- #1682 suppress switch branch de-duplication upon side effects (#1682) (@alexlamsl)
- #1678 fix side-effects detection on switch statements (#1678) (@alexlamsl)
- #1665 Improve fuzzer. :) (#1665) (@qfox)
- #1677 improve switch optimisations (#1677) (@alexlamsl)
- #1675 fix
has_side_effects()
(#1675) (@alexlamsl) - #1671 fix
reduce_vars
onAST_Switch
(#1671) (@alexlamsl) - #1669 fix typeof side-effects (#1669) (@alexlamsl)
- #1667 fix
dead_code
onAST_Switch
(#1667) (@alexlamsl)
- #1657 fix invalid
AST_For.init
(#1657) (@alexlamsl) - #1655 introduce ufuzz.js (#1655) (@alexlamsl)
- #1654 fix cascade of
evaluate
optimisation (#1654) (@alexlamsl) - #1652 fix corner case in
AST_For.init
(#1652) (@alexlamsl) - #1651 fix assignment extraction from conditional (#1651) (@alexlamsl)
- #1643 fix assignment substitution in sequences (#1643) (@alexlamsl)
- #1644 improve error marker placement (#1644) (@alexlamsl)
- #1642 fix expect_stdout (#1642) (@alexlamsl)
- #1640 fix regression: CLI options with hyphens like -b ascii-only (#1640) (@kzc)
- #1638 improve collapsible value detection (#1638) (@alexlamsl)
- #1634 account for cross-scope modifications in
collapse_vars
(#1634) (@alexlamsl) - #1633 introduce compressor.info() (#1633) (@alexlamsl)
- #1632 fix a bug in simple_glob (#1632) (@alexlamsl)
- #1630 metadata cleanup (#1630) (@alexlamsl)
- #1627 throw parse error on invalid assignments (#1627) (@alexlamsl)
- #1623 make
expect_stdout
work on Node.js 0.12 (#1623) (@alexlamsl) - #1622 fix commit 88fb83a (#1622) (@alexlamsl)
- #1621 fix AST_Binary.lift_sequences() (#1621) (@alexlamsl)
- #1620 transform String.charAt() to index access (#1620) (@alexlamsl)
- #1618 handle runtime errors in
expect_stdout
(#1618) (@alexlamsl) - #1615 fix top-level directives in compress tests (#1615) (@alexlamsl)
- #1611 Add
--in-source-map inline
documentation (#1611) (@CMTegner)
- #1610 fix chained evaluation (#1610) (@alexlamsl)
- #1604 extend
test/run-tests.js
to optionally execute uglified output (#1604) (@alexlamsl) - #1608 make
collapse_vars
consistent withtoplevel
(#1608) (@alexlamsl) - #1607 fix
hoist_vars
onreduce_vars
(#1607) (@alexlamsl) - #1603 fix stack issues with
AST_Node.evaluate()
(#1603) (@alexlamsl) - #1602 fix
AST_Node.optimize()
(#1602) (@alexlamsl)
- #1600 minor clean-ups (#1600) (@alexlamsl)
- #1597 temporary fix for boolean bug (#1597) (@alexlamsl)
- #1596 disallow parameter substitution for named IIFEs (#1596) (@alexlamsl)
- #1590 support multi-line string in tests (#1590) (@alexlamsl)
- #1589 fixup for #1585 (#1589) (@alexlamsl)
- #1587 fix catch variable reference in IE8 (#1587) (@alexlamsl)
- #1585 Correctly raise a parse exception with a missing loop body (#1585) (@michaelmior)
- #1584 fix & improve function argument compression (#1584) (@alexlamsl)
- #1581 scan RHS of dropped assignments (#1581) (@alexlamsl)
- #1579 explain how to make a proper bug report (#1579) (@alexlamsl)
- #1578 scan assignment value in drop_unused() (#1578) (@alexlamsl)
- #1576 fix function name eliminiation (#1576) (@alexlamsl)
- #1571 only run benchmark & jetstream on CI (#1571) (@alexlamsl)
- #1572 plan B for IE8 do-while semi-colon fix (#1572) (@alexlamsl)
- #1570 fix return from recursive IIFE (#1570) (@alexlamsl)
- #1564 include benchmark.js in test suite (#1564) (@alexlamsl)
- #1565 fix deep cloning of labels (#1565) (@alexlamsl)
- #1560 transform function calls to IIFEs (#1560) (@alexlamsl)
- #1557 avoid substitution of global variables (#1557) (@alexlamsl)
- #1562 collapse_vars: do not replace a constant in loop condition or init (#1562) (@kzc)
- #1556 suppress semicolons after do/while (#1556) (@alexlamsl)
- #1555 fixup for #1553 (#1555) (@alexlamsl)
- #1553 collapse assignment with adjacent subsequent usage (#1553) (@alexlamsl)
- #1546 handle variable declaration within catch blocks (#1546) (@alexlamsl)
- #1548 improve
unsafe
on undefined (#1548) (@alexlamsl) - #1547 stay safe with constants in IE8- (#1547) (@alexlamsl)
- #1545 fix handling of shebang and preamble (#1545) (@alexlamsl)
- #1552 fix a corner case in #1530 (#1552) (@alexlamsl)
- #1549 resolve issue with outdated version of async (#1549) (@alexlamsl)
- #1543 disallow collapse_vars constant replacement in for-in statements (#1543) (@kzc)
- #1522 process code with implicit return statement (#1522) (@alexlamsl)
- #1513 compress numerical expressions (#1513) (@alexlamsl)
- #1542 facilitate fix for #1531 (#1542) (@alexlamsl)
- #1540 fix chained assignment with
unused
(#1540) (@alexlamsl) - #1538 collapse_vars should not replace constant in for-in init section (#1538) (@kzc)
- #1536 properly cover all cases of for-in loop variables (#1536) (@alexlamsl)
- #1535 fix reference marking in for-in loops (#1535) (@alexlamsl)
- #1534 disable do{...}while(false) optimisation (#1534) (@alexlamsl)
- #1530 optimize trivial IIFEs returning constants (#1530) (@kzc)
- #1526 trim unused invocation parameters (#1526) (@alexlamsl)
- #1514 minor improvement to string optimisation (#1514) (@alexlamsl)
- #1524 fix corner cases in
reduce_vars
(#1524) (@alexlamsl)
- #1523 fix crash on missing
props
tostring_template()
(#1523) (@alexlamsl)
- #1519 invert
reduce_vars
tracking flag (#1519) (@alexlamsl) - #1515 fix
evaluate
on object getter & setter (#1515) (@alexlamsl)
- #1517 temporarily disables
reduce_vars
(#1517) (@alexlamsl) - #1511 warn & drop
#__PURE__
iff IIFE is dropped (#1511) (@alexlamsl)
- #1506 improve error messages (#1506) (@alexlamsl)
- #1507 add harmony branch details in README (#1507) (@kzc)
- #1462 faster tree transversal (#1462) (@alexlamsl)
- #1505 consolidate
evaluate
&reduce_vars
(#1505) (@alexlamsl) - #1503 update docs for
pure_funcs
&drop_console
(#1503) (@alexlamsl) - #1490 allow --in-source-map inline (#1490) (@alexlamsl)
- #1471 Avoid using exports when undefined (#1471) (@OndrejSpanel)
- #1485 2.8.0 staging (@alexlamsl, @kzc, @OndrejSpanel, @avdg)
- #1481 verify that property names after mangle are legal (@anatdagan)
- #1441 update test (#1441) (@alexlamsl)
- #1431 fix mangling collision with keep_fnames (#1431) (@alexlamsl)
- #1427 optimise binary operands with evaluate() (#1427) (@alexlamsl)
- #1425 augment evaluate to extract within objects (#1425) (@alexlamsl)
- #1314 Add note about name mangling when using --mangle-props=unquoted (#1314) (@wiktor-k)
- #1384 remove npm-shrinkwrap.json to work around npm@4.0.2 bug (#1384) (@kzc)
- #1277 Account for side effects in
string + expr
optimization (@kzc)
- #1155 Fix conditional expressions of form (x ? -1 : -1) (@kzc)
- #1053 Hoist functions when reversing if (x) return; ... vs. if (!x) ... (@rvanvelzen)
- #1032 Simplify member(name, array) implementation. (@kzc)
- #1011 Do not produce
let
as a variable name in mangle. (@kzc) - #1019 Escape all ASCII control characters within strings for ascii_only (@kzc)
- #948 collapse_vars: document the compress option in README (@kzc)
- #949 collapse_vars: fix if/else and ternary operator side effects (@kzc)
- #928 Mark vars with /** @const */ pragma as consts so they can be eliminated. (@STRML)
- #918 Never mangle arguments and keep them in their scope (@avdg)
- #905 Add unit tests (@avdg)
- #874 #873 Fix
conditionals
optimizations with default compress options (@kzc) - #896 Semicolon after do...while statement is optional (@avdg)
- #879 Update README URLs based on HTTP redirects (@ReadmeCritic)
- #864 Fix docs for keep_fargs (@plievone)
- #854 Have mozilla AST RegExpLiteral parser use regex.pattern and regex.flags (@kzc)
- #829 Fix other operator output producing (@kzc)
- #808 Add node 4.x in Travis (@avdg)
- #786 Allow for anonymous map generation using string type check (@istr)
- #767 [Fix] --define replaces SymbolRefs in LHS of assignments (@vjeux)
- #736 fromString option, use index from argument array for filename instead of "?" (@AlbertoGP)
- #729 Add keep_fnames compressor option to README.md (@DrewML)
- #753 Support wrap and exportAll options for node.js tools. (@Surgo)
- #757 Fix semicolon printing when restricting max line length (@rvanvelzen)
- #735 optimizations for && and || where left side is constant expression (@kzc)
- #733 Add --mangle-regex option (@jcxplorer)
- #669 Document passing source maps directly to minify() using inSourceMap (@caldwell)
- #660 Fix long options (@ntkme)
- #615 Give parser more unicode support (@avdg)
- #612 Replace the correct node when replacing in
void
sequences (@rvanvelzen) - #482 added @ngInject support for inline functions (@arty-name)
- #606 Document
--
for usage in CLI class (@rvanvelzen) - #570 Fix #569 (@rvanvelzen)
- #584 fix base54 (@clyfish)
- #592 Fix max_line_len not working for JSON files (@micschro)
- #600 Use yargs instead of optimist. (@knpwrs)
- #599 Fix #597 (@rvanvelzen)
- #546 Use uglify source map token names if missing (@jacobk)
- #549 Don't warn for an unreferenced exception symbol in a catch block. (@Arnavion)
- #541 Conditional assignment of equivalent constants compressed ( x=y?1:1 --> x=1 ) (@TalAter)
- #529 Added example for usage with SpiderMonkey AST (@RReverser)
- #499 Update .travis.yml to pass the test on Travis CI (@shinnn)
- #445 Handle TryStatements trees from acorn >=0.2.0 (@ConradIrwin)
- #470 Fix sourceMapIncludeSources exception in Node API (@OiNutter)
- #454 Allow colons in the pairs passed to AST_Toplevel.wrap_enclose (@Arnavion)
- #439 Handle the case when SourceMapConsumer.originalPositionFor returns null source. (@Arnavion)
- #424 Simplify nested conditionals if possible (@mattbasta)
- #422 Fix readme typo (when -> with) (@mourner)
- #408 Don't unescape \x00 in regexes (it breaks IE8) (@danielstutzman)
- #402 Don't unescape byte order marks in regexps (@lautis)
- #330 Unit test to detect issue in 8d14efe for #126 that causes aggressive parenthesis removal, functional differences (@markjaquith)
- #331 Fix RHS concat (raised in #330) (@rvanvelzen)
- #325 Fix #269 (@rvanvelzen)
- #323 Fix #280 (@rvanvelzen)
- #322 Add an exit code to the test suite (@rvanvelzen)
- #308 Only allow identifier start characters at the beginning of identifiers. (@glasser)
- #270 fixes #259: don't unnecessarily quote object properties when --screw-ie8 (@michaelficarra)
- #220 Escape null characters as \x00 (@lautis)
- #213 SourceMapping pragma has changed to //# (@mattrobenolt)
- #202 Add CI build for supported Node versions (@nschonni)
- #191 use dotted member access when --screw-ie8 option given (@michaelficarra)
- #190 unbalanced parentheses in readme (@michaelficarra)
- #163 renamed --screw-ie to --screw-oldie, documented it in README.md, indicat... (@mgol)
- #125 Allow inSourceMap option to be a generated JSON source map (@devongovett)
- #146 Read the entire STDIN. (@mbostock)
- #111 Wraps sourceMappingURL in a multiline comment. Fixes #108 (@mattrobenolt)
- #94 Add better fromstring docs. (@paulmillr)
- #106 Fix #105: property comparison to undefined is not always safe (@gibson042)
- #98 Update installation instructions (@ForbesLindesay)
- #90 Compressor options use underscores rather than hyphens (@jakearchibald)
- #87 Add a --version option (@BenoitZugmeyer)
- #58 Fixed reading from STDIN (@roxeteer)
- #41 Convert x.toString() to ""+x instead of x+"" (@Skalman)
- #19 Allow to specify sourceRoot in minify (@SevInf)
- #8 Fix crash in minify function (@SevInf)