014f428 | Alex Lam S.L | 07 May 2017, 23:05:57 UTC | v3.0.1 | 07 May 2017, 23:05:57 UTC |
a3b2eb7 | Alex Lam S.L | 07 May 2017, 23:05:19 UTC | return `Error` from `minify()` (#1880) Have `minify()` return `Error` in `result.error` rather than throwing it. | 07 May 2017, 23:05:19 UTC |
da295de | Alex Lam S.L | 07 May 2017, 22:23:01 UTC | support dumping AST (#1879) Re-order `AST_Binary` properties to make dump more readable. closes #769 | 07 May 2017, 22:23:01 UTC |
4f8ca46 | Alex Lam S.L | 07 May 2017, 19:24:42 UTC | deprecate low level API (#1877) fixes #1872 | 07 May 2017, 19:24:42 UTC |
e547483 | Alex Lam S.L | 07 May 2017, 18:11:45 UTC | support `minify()` output as AST (#1878) - `options.output.ast` (default `false`) - `options.output.code` (default `true`) | 07 May 2017, 18:11:45 UTC |
2d99d06 | Alex Lam S.L | 06 May 2017, 19:02:46 UTC | update documentation Remove deprecated CLI option | 06 May 2017, 19:02:46 UTC |
98cf95e | Alex Lam S.L | 06 May 2017, 18:56:02 UTC | fix test for #1865 (#1873) | 06 May 2017, 18:56:02 UTC |
7313465 | Alex Lam S.L | 06 May 2017, 15:51:10 UTC | v3.0.0 | 06 May 2017, 15:51:10 UTC |
2c7ee95 | Alex Lam S.L | 06 May 2017, 15:18:55 UTC | fix `unsafe` on `evaluate` of `reduce_vars` (#1870) Determine if variables with non-constant values can escape and be modified. fixes #1865 | 06 May 2017, 15:18:55 UTC |
ecf3563 | Alex Lam S.L | 06 May 2017, 09:42:07 UTC | kill `opera` (#1869) | 06 May 2017, 09:42:07 UTC |
dee5a27 | Alex Lam S.L | 06 May 2017, 08:15:43 UTC | enhance `collapse_vars` (#1862) - extend expression types - `a++` - `a=x;` - extend scan range - `for(init;;);` - `switch(expr){case expr:}` - `a = x; a = a || y;` - terminate upon `debugger;` closes #1821 fixes #27 fixes #315 fixes #1858 | 06 May 2017, 08:15:43 UTC |
5a25d24 | Alex Lam S.L | 02 May 2017, 12:47:10 UTC | rename variables for better readability (#1863) | 02 May 2017, 12:47:10 UTC |
bffdc8d | Alex Lam S.L | 02 May 2017, 11:48:12 UTC | update `test/benchmark.js` resources (#1864) | 02 May 2017, 11:48:12 UTC |
69b5663 | Alex Lam S.L | 01 May 2017, 17:42:29 UTC | restore report of supported options (#1861) fixes #1859 | 01 May 2017, 17:42:29 UTC |
ea92897 | kzc | 01 May 2017, 16:10:11 UTC | improve literal return optimization (#1860) | 01 May 2017, 16:10:11 UTC |
2cb55b2 | Alex Lam S.L | 30 April 2017, 14:52:36 UTC | enforce `toplevel` on other compress options (#1855) Respect "funcs" and "vars" properly. fixes #1850 | 30 April 2017, 14:52:36 UTC |
bbb5f2a | kzc | 25 April 2017, 17:30:43 UTC | Update ISSUE_TEMPLATE.md (#1846) | 25 April 2017, 17:30:43 UTC |
76d19b6 | Alex Lam S.L | 23 April 2017, 19:15:03 UTC | fix fuzzer on `this` (#1842) - forbid redeclaration of `this` - suppress probability for `this` within nested functions | 23 April 2017, 19:15:03 UTC |
9e62628 | Alex Lam S.L | 23 April 2017, 19:14:01 UTC | fix `unused` on for-in statements (#1843) Only need to avoid `var` within the initialisation block. fixes #1841 | 23 April 2017, 19:14:01 UTC |
9bf72cf | Alex Lam S.L | 23 April 2017, 12:05:22 UTC | improve parser under "use strict" (#1836) - `const` without value - `delete` of expression - redefining `arguments` or `eval` extend `test/ufuzz.js` - optionally generate "use strict" - improve handling of test cases with syntax errors - group IIFE generation - generate bare anonymous functions - workaround `console.log()` for `new function()` - generate expressions with `this` fixes #1810 | 23 April 2017, 12:05:22 UTC |
64d7443 | kzc | 22 April 2017, 20:28:32 UTC | update README for 3.x (#1840) | 22 April 2017, 20:28:32 UTC |
45ce369 | Alex Lam S.L | 22 April 2017, 17:51:56 UTC | fix `AST_For.init` patch-up in `drop_unused()` (#1839) fixes #1838 | 22 April 2017, 17:51:56 UTC |
ca32a09 | Alex Lam S.L | 22 April 2017, 14:15:04 UTC | fix label-related bugs (#1835) - deep cloning of `AST_LabeledStatement` - `L:do{...}while(false)` - empty statement with label within block extend `test/ufuzz.js` - generate labels for blocks & loops - generate for-in statements - skip suspicious option search if `minify()` errs fixes #1833 | 22 April 2017, 14:15:04 UTC |
6f954aa | Roman Dvornov | 20 April 2017, 18:23:41 UTC | Fix API reference examples (#1834) | 20 April 2017, 18:23:41 UTC |
f05d4f7 | Alex Lam S.L | 20 April 2017, 05:06:14 UTC | improve `unused` (#1832) - extract leading value with side-effects out of `var` statement - reduce scanning of `AST_Definitions` from 3 passes to just once | 20 April 2017, 05:06:14 UTC |
88e7a54 | Alex Lam S.L | 19 April 2017, 20:18:38 UTC | fix `unused` on labeled for-loop (#1831) fixes #1830 | 19 April 2017, 20:18:38 UTC |
4dcff03 | Alex Lam S.L | 18 April 2017, 20:49:09 UTC | improve `collapse_vars` on `AST_Var` (#1828) Perform the same cascaded scanning within `var` statement as we do on array of statements. | 18 April 2017, 20:49:09 UTC |
b4b9305 | Alex Lam S.L | 18 April 2017, 20:27:13 UTC | fix parser bugs & CLI reporting (#1827) fixes #1825 | 18 April 2017, 20:27:13 UTC |
28cfb65 | Alex Lam S.L | 18 April 2017, 20:17:15 UTC | extend `cascade` into `a.b` (#1829) fixes #27 | 18 April 2017, 20:17:15 UTC |
0f4f01b | Alex Lam S.L | 18 April 2017, 13:45:34 UTC | clean up `collapse_vars` (#1826) - remove overlap in functionality of singular, consecutive reference of constant value - remove workarounds for previous bugs in `lib/scope.js` - distribute recursive `collapse_single_use_vars()` calls to their respective `OPT(AST_Node)` - enable collapsing of variables within a single `AST_Definitions` | 18 April 2017, 13:45:34 UTC |
5d9f1da | Alex Lam S.L | 18 April 2017, 05:38:42 UTC | support safe reassignments in `reduce_vars` (#1823) `var a=1;a=2;x(a)` => `x(2)` fix pre-existing issues - reference counting on assignment - walking of anonymous functions - chained assignment | 18 April 2017, 05:38:42 UTC |
d1aa09c | Alex Lam S.L | 17 April 2017, 17:44:23 UTC | fix `reduce_vars` on conditionals (#1822) | 17 April 2017, 17:44:23 UTC |
6d5f341 | Alex Lam S.L | 17 April 2017, 09:24:29 UTC | fix `reduce_vars` on boolean binary expressions (#1819) Side effects of `&&` and `||` have not mattered until #1814, which takes assignment expressions into account. | 17 April 2017, 09:24:29 UTC |
4ffb6fc | Alex Lam S.L | 17 April 2017, 09:11:29 UTC | compress duplicated variable definitions (#1817) These are surprisingly common, as people reuse the same variable name within loops or switch branches. | 17 April 2017, 09:11:29 UTC |
71a8d0d | Alex Lam S.L | 17 April 2017, 06:03:29 UTC | fix `reduce_vars` within try-block (#1818) Possible partial execution due to exceptions. | 17 April 2017, 06:03:29 UTC |
1a498db | Alex Lam S.L | 16 April 2017, 17:36:50 UTC | enhance `reduce_vars` (#1814) - allow immediate assignment after declaration of variable - relax modification rule for immutable value - fix order of visit for TreeWalker - remove extraneous code | 16 April 2017, 17:36:50 UTC |
44dfa5a | Alex Lam S.L | 16 April 2017, 09:25:39 UTC | fix variable substitution (#1816) - let `collapse_vars` take care of value containing any symbols - improve overhead accounting | 16 April 2017, 09:25:39 UTC |
251ff1d | Alex Lam S.L | 15 April 2017, 20:04:28 UTC | update README (#1813) - mention major version bump - remove reference to internal API | 15 April 2017, 20:04:28 UTC |
ec443e4 | Alex Lam S.L | 15 April 2017, 15:50:50 UTC | unify CLI & API under `minify()` (#1811) - rename `screw_ie8` to `ie8` - rename `mangle.except` to `mangle.reserved` - rename `mangle.properties.ignore_quoted` to `mangle.properties.keep_quoted` - compact `sourceMap` options - more stringent verification on input `options` - toplevel shorthands - `ie8` - `keep_fnames` - `toplevel` - `warnings` - support arrays and unquoted string values on CLI - drop `fromString` from `minify()` - `minify()` no longer handles any `fs` operations - unify order of operations for `mangle_properties()` on CLI & API - `bin/uglifyjs` used to `mangle_properties()` before even `Compressor` - `minify()` used to `mangle_properties()` after `Compressor` but before `mangle_names()` - both will now do `Compressor`, `mangle_names()` then `mangle_properties()` - `options.parse` / `--parse` for parser options beyond `bare_returns` - add `mangle.properties.builtins` to disable built-in reserved list - disable with `--mangle-props builtins` on CLI - `warnings` now off by default - add `--warn` and `--verbose` on CLI - drop `--enclose` - drop `--export-all` - drop `--reserved-file` - use `--mangle reserved` instead - drop `--reserve-domprops` - enabled by default, disable with `--mangle-props domprops` - drop `--prefix` - use `--source-map base` instead - drop `--lint` - remove `bin/extract-props.js` - limit exposure of internal APIs - update documentations closes #96 closes #102 closes #136 closes #166 closes #243 closes #254 closes #261 closes #311 closes #700 closes #748 closes #912 closes #1072 closes #1366 fixes #101 fixes #123 fixes #124 fixes #263 fixes #379 fixes #419 fixes #423 fixes #461 fixes #465 fixes #576 fixes #737 fixes #772 fixes #958 fixes #1036 fixes #1142 fixes #1175 fixes #1220 fixes #1223 fixes #1280 fixes #1359 fixes #1368 | 15 April 2017, 15:50:50 UTC |
32deb36 | Alex Lam S.L | 14 April 2017, 21:52:29 UTC | drop `angular` (#1812) Remove support for `@ngInject` as there are proper alternatives anyway. | 14 April 2017, 21:52:29 UTC |
2244743 | Alex Lam S.L | 12 April 2017, 13:56:27 UTC | convert `AST_Seq` from binary tree to array (#1460) - rename `AST_Seq` to `AST_Sequence` - raise default sequences_limit from 200 to 800 | 12 April 2017, 13:56:27 UTC |
04b8964 | Alex Lam S.L | 09 April 2017, 03:36:57 UTC | v2.8.22 | 09 April 2017, 03:36:57 UTC |
d6fbc36 | Alex Lam S.L | 08 April 2017, 19:18:14 UTC | fix LHS cases for NaN & friends (#1804) `Infinity = beyond` should not become `1/0 = beyond` | 08 April 2017, 19:18:14 UTC |
9a97884 | Alex Lam S.L | 08 April 2017, 17:36:38 UTC | enhance `test/ufuzz.js` (#1803) - `-E` to report test cases with runtime errors - favor returning expressions rather than empty return - emit a newline upon fuzzer completion to not erase the iteration count closes #1800 | 08 April 2017, 17:36:38 UTC |
0479ff0 | Alex Lam S.L | 08 April 2017, 08:46:25 UTC | fix a couple of bugs in `global_defs` (#1802) - `optimize()` substituted expression - compute nested property string correctly fixes #1801 Miscellaneous - reset optimisation flags on all node types | 08 April 2017, 08:46:25 UTC |
cf72fe5 | Alex Lam S.L | 08 April 2017, 06:25:28 UTC | fix `delete` corner cases (#1799) - assignment - boolean - conditional - sequence | 08 April 2017, 06:25:28 UTC |
a1532eb | Alex Lam S.L | 07 April 2017, 10:47:30 UTC | extend ufuzz generator (#1783) - property access - property assignment - allow bare expression within try-block - normalise `Error` in `console.log()` - generate more unary expressions - add parenthesis to enforce precedence - adjust variable reuse/creation - add parameters to function declaration & expression - add return expression - add trivial arguments to function call | 07 April 2017, 10:47:30 UTC |
c2a1bce | Alex Lam S.L | 07 April 2017, 09:06:01 UTC | fix `pure_getters` for chained property access (#1798) | 07 April 2017, 09:06:01 UTC |
e3c9c22 | Alex Lam S.L | 07 April 2017, 07:39:59 UTC | fix corner cases with `delete` (#1796) `delete Infinity` returns `false` where as `delete (1/0)` returns `true` | 07 April 2017, 07:39:59 UTC |
0f4cd73 | Alex Lam S.L | 07 April 2017, 05:31:58 UTC | introduce "strict" to `pure_getters` (#1795) | 07 April 2017, 05:31:58 UTC |
281e882 | Alex Lam S.L | 07 April 2017, 04:32:56 UTC | fix `reduce_vars` on catch variable (#1794) Improved catch handling in `figure_out_scope()` means special case treatment of IE8 is no longer valid in `reset_opt_flags()`. Also fixed recursive assignment in variable definition. | 07 April 2017, 04:32:56 UTC |
cc6aa3e | Alex Lam S.L | 06 April 2017, 19:42:17 UTC | fix incorrect context in variable substitution (#1791) `AST_Node.optimize()` is context-aware, so don't cache its results to be used elsewhere. Also fixed a few cases of AST corruption and beef up safety of `pure_getters`. | 06 April 2017, 19:42:17 UTC |
e869779 | Alex Lam S.L | 06 April 2017, 16:45:51 UTC | enable `inline_script` by default (#1793) | 06 April 2017, 16:45:51 UTC |
06cdb74 | Alex Lam S.L | 06 April 2017, 03:18:59 UTC | improve `pure_getters` (#1786) - property access to `null` & `undefined` always has side effects - utilise `reduce_vars` to determine safe property access - may-be cases treated as side effects unless `unsafe` | 06 April 2017, 03:18:59 UTC |
ff289b9 | Alex Lam S.L | 05 April 2017, 13:06:42 UTC | implement delayed resolution for `reduce_vars` (#1788) Although it would be nice to enforce `AST_Node` cloning during transformation, that ship has sailed a long time ago. We now get the assigned value when resolving `AST_SymbolRef` instead of `reset_opt_flags()`, which has the added advantage of improved compressor efficiency. fixes #1787 | 05 April 2017, 13:06:42 UTC |
9b6bc67 | Alex Lam S.L | 04 April 2017, 15:48:22 UTC | optimise `do{...}while(false)` (#1785) - better heuristics to avoid issues like #1532 - fix `TreeWalker.loopcontrol_target()` - `continue` cannot refer to `switch` blocks | 04 April 2017, 15:48:22 UTC |
4b90dc1 | Alex Lam S.L | 04 April 2017, 08:24:16 UTC | remove `--mangle-props` from fuzzing (#1777) The inherently unsafe nature makes this feature unsuitable to be tested this way. fixes #1774 | 04 April 2017, 08:24:16 UTC |
951770f | Alex Lam S.L | 03 April 2017, 19:50:19 UTC | exclude mangling of special property names (#1779) - `null` - `true` - `false` - numeric literals | 03 April 2017, 19:50:19 UTC |
48b3fe9 | Alex Lam S.L | 03 April 2017, 15:17:47 UTC | fix `mangleProperties` on identifiers (#1776) - fix handling of "-Infinity" - add test case for "-0" reverts #1481 | 03 April 2017, 15:17:47 UTC |
a400741 | Alex Lam S.L | 03 April 2017, 10:56:11 UTC | workaround Node.js bugs (#1775) Wrap test code in IIFE before passing to `vm` fixes #1768 fixes #1771 | 03 April 2017, 10:56:11 UTC |
59a4e56 | Alex Lam S.L | 03 April 2017, 04:31:05 UTC | fix mangleProperties of `undefined` & `Infinity` (#1772) `NaN` already works by the happy accident of `Number.NaN` fixes #1770 | 03 April 2017, 04:31:05 UTC |
1f1fccc | Alex Lam S.L | 02 April 2017, 20:00:33 UTC | extend `test/ufuzz.js` (#1769) New expressions: - property access - array literal - object literal Miscellaneous: - reduce execution timeout - test `toplevel` and `mangleProperties` | 02 April 2017, 20:00:33 UTC |
b7f6b73 | Alex Lam S.L | 02 April 2017, 09:07:55 UTC | v2.8.21 | 02 April 2017, 09:07:55 UTC |
9469c03 | Alex Lam S.L | 02 April 2017, 09:07:20 UTC | fix corner case in `switch` (#1765) | 02 April 2017, 09:07:20 UTC |
d575276 | Alex Lam S.L | 02 April 2017, 08:14:09 UTC | avoid confusion of `NaN` & `Infinity` with `catch` symbol of the same name (#1763) fixes #1760 fixes #1761 | 02 April 2017, 08:14:09 UTC |
f7ca4f2 | Alex Lam S.L | 02 April 2017, 06:52:25 UTC | fix corner cases in switch and undefined (#1762) - fix side effects in switch condition for singular blocks - fix `undefined` confusion with local variable - gate `OPT(AST_Switch)` with `switches` fixes #1758 fixes #1759 | 02 April 2017, 06:52:25 UTC |
c076e7b | Alex Lam S.L | 01 April 2017, 21:11:29 UTC | speed up fuzzer code generation (#1757) - only output one top-level function or statement block - reduce `rng()` granularity from 2^32 to 65536 - fix overflow in `rng()` - track `canThrow` during `typeof` creation | 01 April 2017, 21:11:29 UTC |
4a55bb0 | Alex Lam S.L | 01 April 2017, 19:17:01 UTC | minor tweaks to `test/ufuzz.js` (#1756) - count iterations from `1` instead of `0` - remove `unsafe` from default set of `minify()` tests - improve usability of help | 01 April 2017, 19:17:01 UTC |
28ecea5 | Alex Lam S.L | 01 April 2017, 18:10:50 UTC | upgrade fuzzer (#1754) - configurable set of `minify()` options - test and report suspects upon failure - continue after failure if infinite iterations is specified | 01 April 2017, 18:10:50 UTC |
9a31170 | kzc | 01 April 2017, 18:08:46 UTC | fuzz regexp literals, more constant numbers, typeof expression (#1755) | 01 April 2017, 18:08:46 UTC |
ee3fe0f | Alex Lam S.L | 01 April 2017, 09:19:57 UTC | fix switch branch elimination (#1752) Merge unreachable case body with previous fallthrough case fixes #1750 | 01 April 2017, 09:19:57 UTC |
87f6e1b | Alex Lam S.L | 01 April 2017, 09:09:52 UTC | minor tweaks to fuzzer (#1751) - remove `let` as variable name - employ `crypto.randomBytes()` | 01 April 2017, 09:09:52 UTC |
c934fc8 | Alex Lam S.L | 31 March 2017, 21:47:11 UTC | implement `test/sandbox.js` (#1749) - `test/run-tests.js` and `test/ufuzz.js` now shares the same `run_code()` and `same_stdout()` - re-enable fuzzer to generate top-level `NaN`, `Infinity` & `undefined` - attempt to show beautified output only when `run_code()` output is preserved | 31 March 2017, 21:47:11 UTC |
257ddc3 | Alex Lam S.L | 31 March 2017, 19:02:14 UTC | improve compression of undefined, NaN & Infinitiy (#1748) - migrate transformation logic from `OutputStream` to `Compressor` - always turn `undefined` into `void 0` (unless `unsafe`) - always keep `NaN` except when avoiding local variable redefinition - introduce `keep_infinity` to suppress `1/0` transform, except when avoiding local variable redefinition supersedes #1723 fixes #1730 | 31 March 2017, 19:02:14 UTC |
1ddc057 | Alex Lam S.L | 31 March 2017, 10:47:44 UTC | combine rules for binary boolean operations (#1744) | 31 March 2017, 10:47:44 UTC |
e6b76a4 | Peter van der Zee | 31 March 2017, 09:23:50 UTC | Massive extension of the fuzzer (#1697) Fix bug where a `throw` was generated without expression Reenable try/catch/finally and fix them up Skip serialization errors Allow function decl in other funcs but not in blocks etc Rename function to be more appropriate Fix global functions not getting certain names Make the canaries more likely to appear as expressions Add a silly rounding edge case Add a new canary, `c`, which should only ever be incremented Refactoring Fix (another) iife not actually being invoked When a statement hits recursion max return an expression instead of `;` When a expression hits recursion max also inc `c` Generate global code as well as function code Also fixes some argument juggling related bugs. No longer reduces the recursion max when generating sub functions. Generates a function arg. Add used names to var name pool while in that scope This is a little wonky, possibly a hack, but since it's synchronous code I think it's alright to do this. The alternative is to slice the varnames array and juggle them through almost all the generator functions and there are various reasons why this patch is a better alternative. Minify generated code, not beautified code. Prevents beautifier bias. Prevent unnecessary duplication Remove serialization protection because I think it got handled elsewhere Abstract toplevel code generation Add example line of running test case Add poor man options parser, and some options Reindent to 4 spaces Lower chance of `default` generation Comment example of testing a case and output improvement Enable `default` clause appearing at any clause index Removing some training wheels; dont add parens where we dont absolutely need them Support `-s1` and `-s2` to force specific statements being generated at that recursion level Add round number to output when failing. For stats and fun and profit. Solidify statement depth counting. The argument juggling is real. Renamed option to something long. -scf was ugly and probably confusing. Fix missing arguments causing `canThrow` to be truthy, generating crashing code Generate more binary nested expressions Add black and white list cli options for statement generation Allows you to explicitly require or forbid certain statements from/to being made. ``` node test/ufuzz.js --without-stmt switch,try -t 5 -r 5 -V ``` ``` node test/ufuzz.js --only-stmt ifelse,expr -t 5 -r 5 -V ``` Similar granularity for expression may be added later. There can be no comma between names; it just does a split on that arg. Trim down the binary expression generator Prevent scoping issues in nodejs by preventing certain names in global space Oh this list was incomplete? Allow bin-expr to generate assignments too. More vigilant with storing and reusing vars. Add more global builtin names Update wrapper code Also patch Function valueOf | 31 March 2017, 09:23:50 UTC |
a0c3836 | Alex Lam S.L | 31 March 2017, 08:41:04 UTC | sort options in alphabetical order (#1743) They started off as functional groups I guess, but given the sheer number of options this is becoming too difficult to read. | 31 March 2017, 08:41:04 UTC |
f8a71b5 | Alex Lam S.L | 31 March 2017, 07:27:40 UTC | v2.8.20 | 31 March 2017, 07:27:40 UTC |
11e9bdc | Alex Lam S.L | 31 March 2017, 07:26:57 UTC | fix missing preamble when shebang is absent (#1742) | 31 March 2017, 07:26:57 UTC |
a84564d | Alex Lam S.L | 31 March 2017, 04:26:10 UTC | v2.8.19 | 31 March 2017, 04:26:10 UTC |
c595b84 | Alex Lam S.L | 30 March 2017, 18:57:47 UTC | fix catch symbol mangling (#1734) Only need to look up the immediate non-block/catch scope for the same-name special case. fixes #1733 | 30 March 2017, 18:57:47 UTC |
7cb1adf | Alex Lam S.L | 30 March 2017, 08:09:00 UTC | remove paranthesis for `-(x*y)` (#1732) | 30 March 2017, 08:09:00 UTC |
7bea38a | Alex Lam S.L | 30 March 2017, 04:16:58 UTC | optimize try-catch-finally (#1731) - eliminate empty blocks - flatten out if try-block does not throw | 30 March 2017, 04:16:58 UTC |
0f910ee | Alex Lam S.L | 29 March 2017, 16:13:46 UTC | improve tests from #1726 (#1729) | 29 March 2017, 16:13:46 UTC |
beb9659 | Alex Lam S.L | 29 March 2017, 15:27:35 UTC | speed up IIFE elimination (#1728) - `side_effects` will clean up inner statements, so checking for an empty function body should suffice - drop side effects when dropping `return` from statement | 29 March 2017, 15:27:35 UTC |
f1a833a | Alex Lam S.L | 29 March 2017, 14:08:26 UTC | speed up `equivalent_to()` and `AST_Switch` (#1727) | 29 March 2017, 14:08:26 UTC |
2e41cd6 | Alex Lam S.L | 29 March 2017, 12:53:03 UTC | fix missing parentheses around NaN/Infinity shorthands (#1726) fixes #1724 fixes #1725 | 29 March 2017, 12:53:03 UTC |
09f77c7 | Alex Lam S.L | 29 March 2017, 10:31:55 UTC | output optimal representations of NaN & Infinity (#1723) - move these optimisations out from `Compressor` to `OutputStream` - fixes behaviour inconsistency when running uglified code from global or module levels due to redefinition | 29 March 2017, 10:31:55 UTC |
fef0bf9 | Alex Lam S.L | 28 March 2017, 20:40:05 UTC | improve beautified output of switch blocks (#1721) | 28 March 2017, 20:40:05 UTC |
ae740b9 | Alex Lam S.L | 28 March 2017, 19:13:30 UTC | v2.8.18 | 28 March 2017, 19:13:30 UTC |
ec7f37f | Alex Lam S.L | 28 March 2017, 17:27:24 UTC | remove UGLIFY_DEBUG (#1720) fixes #1719 | 28 March 2017, 17:27:24 UTC |
eb48a03 | Alex Lam S.L | 28 March 2017, 17:00:21 UTC | fix corner case in `unused` (#1718) When fixing catch-related issue in #1715, it tries to optimise for duplicate definitions but did not take anonymous functions into account. Remove such optimisation for now and we can cover this as a more general rule later. | 28 March 2017, 17:00:21 UTC |
6ab3224 | Alex Lam S.L | 28 March 2017, 13:49:04 UTC | v2.8.17 | 28 March 2017, 13:49:04 UTC |
c909ffb | Alex Lam S.L | 28 March 2017, 13:25:49 UTC | fix `unused` on var of the same name within catch (#1716) fixes #1715 | 28 March 2017, 13:25:49 UTC |
f71f490 | Alex Lam S.L | 28 March 2017, 09:08:16 UTC | fix `is_number()` on `+=` (#1714) fixes #1710 | 28 March 2017, 09:08:16 UTC |
fb177a6 | Alex Lam S.L | 28 March 2017, 09:02:20 UTC | drop anonymous function name when overshadowed by other declarations (#1712) fixes #1709 | 28 March 2017, 09:02:20 UTC |
65da9ac | Alex Lam S.L | 28 March 2017, 08:42:39 UTC | handle var within catch of the same name (#1711) The following code prints `1`: var a = 1; !function(){ a = 4; try{ throw 2; } catch (a) { var a = 3; } }(); console.log(a); fixes #1708 | 28 March 2017, 08:42:39 UTC |
67d0237 | Alex Lam S.L | 27 March 2017, 19:59:13 UTC | fix tail trimming of switch blocks (#1707) now guarded under `dead_code` fixes #1705 | 27 March 2017, 19:59:13 UTC |
984a217 | Alex Lam S.L | 27 March 2017, 19:26:35 UTC | fix mangle for variable declared within catch block (#1706) fixes #1704 | 27 March 2017, 19:26:35 UTC |
aa3f647 | Alex Lam S.L | 27 March 2017, 13:49:08 UTC | ufuzz: workaround for Function.toString() v2 (#1700) | 27 March 2017, 13:49:08 UTC |