aboutsummary
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2017-05-06enhance `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 Alex Lam S.L
2017-05-02rename variables for better readability (#1863)Alex Lam S.L
2017-05-02update `test/benchmark.js` resources (#1864)Alex Lam S.L
2017-05-02restore report of supported options (#1861)...fixes #1859Alex Lam S.L
2017-05-02improve literal return optimization (#1860)kzc
2017-04-30enforce `toplevel` on other compress options (#1855)...Respect "funcs" and "vars" properly. fixes #1850Alex Lam S.L
2017-04-26Update ISSUE_TEMPLATE.md (#1846)kzc
2017-04-24fix fuzzer on `this` (#1842)...- forbid redeclaration of `this` - suppress probability for `this` within nested functionsAlex Lam S.L
2017-04-24fix `unused` on for-in statements (#1843)...Only need to avoid `var` within the initialisation block. fixes #1841Alex Lam S.L
2017-04-23improve 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 #1810Alex Lam S.L
2017-04-23update README for 3.x (#1840)kzc
2017-04-23fix `AST_For.init` patch-up in `drop_unused()` (#1839)...fixes #1838Alex Lam S.L
2017-04-22fix 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 #1833Alex Lam S.L
2017-04-21Fix API reference examples (#1834)Roman Dvornov
2017-04-20improve `unused` (#1832)...- extract leading value with side-effects out of `var` statement - reduce scanning of `AST_Definitions` from 3 passes to just onceAlex Lam S.L
2017-04-20fix `unused` on labeled for-loop (#1831)...fixes #1830Alex Lam S.L
2017-04-19improve `collapse_vars` on `AST_Var` (#1828)...Perform the same cascaded scanning within `var` statement as we do on array of statements.Alex Lam S.L
2017-04-19fix parser bugs & CLI reporting (#1827)...fixes #1825Alex Lam S.L
2017-04-19extend `cascade` into `a.b` (#1829)...fixes #27Alex Lam S.L
2017-04-18clean 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`Alex Lam S.L
2017-04-18support 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 assignmentAlex Lam S.L
2017-04-18fix `reduce_vars` on conditionals (#1822)Alex Lam S.L
2017-04-17fix `reduce_vars` on boolean binary expressions (#1819)...Side effects of `&&` and `||` have not mattered until #1814, which takes assignment expressions into account.Alex Lam S.L
2017-04-17compress duplicated variable definitions (#1817)...These are surprisingly common, as people reuse the same variable name within loops or switch branches.Alex Lam S.L
2017-04-17fix `reduce_vars` within try-block (#1818)...Possible partial execution due to exceptions.Alex Lam S.L
2017-04-17enhance `reduce_vars` (#1814)...- allow immediate assignment after declaration of variable - relax modification rule for immutable value - fix order of visit for TreeWalker - remove extraneous codeAlex Lam S.L
2017-04-16fix variable substitution (#1816)...- let `collapse_vars` take care of value containing any symbols - improve overhead accountingAlex Lam S.L
2017-04-16update README (#1813)...- mention major version bump - remove reference to internal APIAlex Lam S.L
2017-04-15unify 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 #1368Alex Lam S.L
2017-04-15drop `angular` (#1812)...Remove support for `@ngInject` as there are proper alternatives anyway.Alex Lam S.L
2017-04-12convert `AST_Seq` from binary tree to array (#1460)...- rename `AST_Seq` to `AST_Sequence` - raise default sequences_limit from 200 to 800Alex Lam S.L
2017-04-09v2.8.22Alex Lam S.L
2017-04-09fix LHS cases for NaN & friends (#1804)...`Infinity = beyond` should not become `1/0 = beyond`Alex Lam S.L
2017-04-09enhance `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 #1800Alex Lam S.L
2017-04-08fix 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 typesAlex Lam S.L
2017-04-08fix `delete` corner cases (#1799)...- assignment - boolean - conditional - sequenceAlex Lam S.L
2017-04-07extend 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 callAlex Lam S.L
2017-04-07fix `pure_getters` for chained property access (#1798)Alex Lam S.L
2017-04-07fix corner cases with `delete` (#1796)...`delete Infinity` returns `false` where as `delete (1/0)` returns `true`Alex Lam S.L
2017-04-07introduce "strict" to `pure_getters` (#1795)Alex Lam S.L
2017-04-07fix `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.Alex Lam S.L
2017-04-07fix 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`.Alex Lam S.L
2017-04-07enable `inline_script` by default (#1793)Alex Lam S.L
2017-04-06improve `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`Alex Lam S.L
2017-04-05implement 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 #1787Alex Lam S.L
2017-04-04optimise `do{...}while(false)` (#1785)...- better heuristics to avoid issues like #1532 - fix `TreeWalker.loopcontrol_target()` - `continue` cannot refer to `switch` blocksAlex Lam S.L
2017-04-04remove `--mangle-props` from fuzzing (#1777)...The inherently unsafe nature makes this feature unsuitable to be tested this way. fixes #1774Alex Lam S.L
2017-04-04exclude mangling of special property names (#1779)...- `null` - `true` - `false` - numeric literalsAlex Lam S.L
2017-04-03fix `mangleProperties` on identifiers (#1776)...- fix handling of "-Infinity" - add test case for "-0" reverts #1481Alex Lam S.L
2017-04-03workaround Node.js bugs (#1775)...Wrap test code in IIFE before passing to `vm` fixes #1768 fixes #1771Alex Lam S.L