Age | Commit message (Expand) | Author |
2018-01-10 | enhance `conditionals` (#2758)...`x ? y || z : z` --> `x && y || z` | Alex Lam S.L |
2018-01-01 | enhance `join_vars` & `sequences` (#2697)...- nudge declarations without assignments
- within `AST_BlockStatement`
- across `AST_If` | Alex Lam S.L |
2017-12-14 | fold `cascade` functionality into `collapse_vars` (#2586) | Alex Lam S.L |
2017-12-08 | account for side-effects in conditional call inversion (#2562)...fixes #2560 | Alex Lam S.L |
2017-12-01 | improve boolean compression (#2548)...fixes #2535 | Alex Lam S.L |
2017-12-01 | convert to number under boolean context (#2545) | Alex Lam S.L |
2017-12-01 | improve compression of `if` conditions (#2544) | Alex Lam S.L |
2017-04-12 | convert `AST_Seq` from binary tree to array (#1460)...- rename `AST_Seq` to `AST_Sequence`
- raise default sequences_limit from 200 to 800 | Alex Lam S.L |
2017-04-08 | fix `delete` corner cases (#1799)...- assignment
- boolean
- conditional
- sequence | Alex Lam S.L |
2017-04-01 | 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 | Alex Lam S.L |
2017-03-29 | 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 | Alex Lam S.L |
2017-03-26 | optimize conditional when condition symbol matches consequent (#1684) | kzc |
2017-03-24 | fix assignment extraction from conditional (#1651)...fixes #1645
fixes #1646 | Alex Lam S.L |
2017-03-19 | fix commit 88fb83a (#1622)...The following is wrong:
`a == (b ? a : c)` => `b`
Because:
- `b` may not be boolean
- `a` might have side effects
- `a == a` is not always `true` (think `NaN`)
- `a == c` is not always `false` | Alex Lam S.L |
2017-02-28 | warn & drop `#__PURE__` iff IIFE is dropped (#1511)...- consolidate `side-effects` optimisations
- improve string `+` optimisation
- enhance literal & `conditionals` optimisations | Alex Lam S.L |
2017-01-26 | optimise binary operands with evaluate() (#1427)...- remove call to evaluate() in is_constant() and let nested optimize() does its job instead
- reject RegExp in is_constant() and remove special case logic under collapse_vars
- operands to conditionals optimisation are now always evaluate()-ed
- throw error in constant_value() instead of returning undefined to catch possible bugs, similar to make_node_from_constant()
- optimise binary boolean operators under `evaluate` instead of `conditionals` | Alex Lam S.L |
2016-06-21 | Fix conditional expressions of form (x ? -1 : -1)...Fixes #1154, #1153
| kzc |
2016-04-02 | Optimize ternaries with boolean consequent or alternative....Fixes #511
| kzc |
2016-02-22 | boolean_expression ? true : false --> boolean_expression | kzc |
2015-11-24 | #873 Fix `conditionals` optimizations with default compress options | kzc |
2015-06-14 | spacing | kzc |
2015-06-11 | optimizations for && and || where left side is constant expression | kzc |
2015-05-18 | Fix compressing conditionals...Only transform foo() ? EXP(x) : EXP(y) into EXP(foo() ? x : y) if EXP has no
side effects.
Fix #710
| Mihai Bazon |
2015-04-13 | Fix compression of conditionals...Don't move the condition on the right side of an assignment when
the left side may have side effects.
Fix #677
| Mihai Bazon |
2015-02-11 | Clean up unit test breakage...In 992b6b9fcce47ca67ecb14675f10b172ce7a99b5 unit test broke (which I missed). This was due to undeclared variables not being side-effects free.
However, since they're really not side-effect free, just declare them in the test cases.
| Richard van Velzen |
2015-01-13 | Optimize conditionals where the consequent and alternative are both booleans ... | Tal Ater |
2014-09-28 | Referencing a global is assumed to have side effects....Close #550
| Mihai Bazon |
2014-09-04 | Compress conditions that have side effects using sequences | Tal Ater |
2014-09-03 | Added a test for else if | Tal Ater |
2014-09-02 | Compress conditional assignments where all possible outcomes are equivalant a... | Tal Ater |
2014-02-06 | Simplify nested conditionals if possible | Matt Basta |
2013-12-29 | Conditional/call optimization... foo ? bar(x) : bar(y) ==> bar(foo ? x : y)
| Mihai Bazon |
2012-10-03 | added option for side-effect-free statements, fix test | Mihai Bazon |
2012-10-03 | disable `hoist_vars` by default and change `comparations` to `comparisons` | Mihai Bazon |
2012-09-17 | minor | Mihai Bazon |
2012-09-16 | rewrite handle_if_return...optimizations of if/return/continue seem to be even better now
| Mihai Bazon |
2012-09-13 | few more optimizations:...- do multiple passes in tighten_body if it was changed
- transform if (foo) return x; return y; ==> return foo?x:y
- don't optimize !0 as true (use best_of after evaluation of constant expr)
With hoist_vars off we now beat UglifyJS v1 on jQuery-1.8.1
| Mihai Bazon |
2012-09-12 | minor | Mihai Bazon |
2012-09-10 | more progress on the compressor (WIP) | Mihai Bazon |
2012-09-07 | always keep declarations found in unreachable code...a few more tests and some cleanups.
| Mihai Bazon |