Age | Commit message (Expand) | Author |
2015-03-20 | Keep unused function arguments by default...Discarding unused function arguments affects function.length, which can lead
to some hard to debug issues. This optimization is now done only in "unsafe
mode".
Fix #121
| 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-02-11 | Fix invalid removal of left side in && and || compression...See #637. This does not produce the optimal result, but it does prevent the removal of non-side-effect-free code.
| Richard van Velzen |
2015-01-31 | Drop all `console` statements properly...Because the base reference can be an member expression as well, we have to dig a bit deeper to find the leftmost base reference.
Fixes #451
| Richard van Velzen |
2015-01-20 | Merge pull request #615 from avdg/unicode...Give parser more unicode support | Mihai Bazon |
2015-01-20 | Add test | Anthony Van de Gejuchte |
2015-01-13 | Optimize conditionals where the consequent and alternative are both booleans ... | Tal Ater |
2015-01-12 | Replace the correct node when replacing in `void` sequences...Close #611.
| Richard van Velzen |
2015-01-11 | Merge pull request #482 from arty-name/inline-ng-inject...added @ngInject support for inline functions | Mihai Bazon |
2015-01-04 | Add a "keep_fnames" option to the compressor to retain function expression names...See #552. This is useful for stack traces.
| Richard van Velzen |
2014-12-31 | Fix #597...NaN and Infinity were replaced in the output generation, instead of
during compression. This could lead to results where `1/0` was inserted
without parens leading to invalid output.
The nodes are replaced in the compression step now, and the output
generation returns their regular names. This should not be a problem,
since they're already only constructed from the original name.
| Richard van Velzen |
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-07-08 | added newline at the end of the file | Artemy Tregubenko |
2014-07-01 | Evaluate "foo".length ==> 3 | Dan Wolff |
2014-05-11 | added @ngInject support for inline functions | Artemy Tregubenko |
2014-04-18 | Update tests. | Mihai Bazon |
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 |
2013-12-05 | AST_Catch shouldn't really inherit from AST_Scope. Fix #363...I hereby acknowledge that figure_out_scope has become a mess.
| Mihai Bazon |
2013-11-20 | Fix faulty compression...`String(x + 5)` is not always the same as `x + "5"`. Overlooked that. :-(
Close #350
| Mihai Bazon |
2013-11-06 | Better fix for #343...We can in fact lift sequences, but only if the operation is assignment and
the left-hand side has no side effects nor property access -- that should
guarantee that whatever we place before it cannot affect the sense of the
assignment.
Dropped contrived test case (too hard to support it now), added a more
meaningful one.
| Mihai Bazon |
2013-10-29 | Disallow reversal where lhs has higher or equal precedence...Fixes #267
| Richard van Velzen |
2013-10-25 | Add a unit test for issue-126 ...Add a unit test to test to test for aggressive parenthesis removal that causes functional changes. | Mark Jaquith |
2013-10-24 | Fix #269...Shorten most primitives where possible. Also optimize some edge cases.
| Richard van Velzen |
2013-09-22 | More attempts to determine when addition is associative...Somebody hit me with bug reports on this. :)
Refs #300
| Mihai Bazon |
2013-09-22 | Actually let's move away those monsters from the evaluate function...ev() should do a single thing — evaluate constant expressions. if that's
not possible, just return the original node. it's not the best place for
partial evaluation there, instead doing it in the compress functions.
| Mihai Bazon |
2013-09-22 | More dirty handling of [ ... ].join() in unsafe mode...Close #300
| Mihai Bazon |
2013-09-22 | Evaluate [...].join() if possible: minor bugfix...Follow-up to 78e98d2.
| Dan Wolff |
2013-09-19 | When `unsafe` is set, evaluate [...].join() if possible...Close #298
| Mihai Bazon |
2013-09-19 | Concatenate strings also on the right-hand side of an expression that cannot ......E.g. converts:
a+'Hello'+'World'
to
a+'HelloWorld'
| Dan Wolff |
2013-08-20 | Move support for `negate_iife` in the compressor, rather than code generator...(the code generator doesn't maintain enough context to know whether
the return value is important or discarded)
Fixes #272
| Mihai Bazon |
2013-08-07 | Don't drop unused setter argument....Fix #257
| Mihai Bazon |
2013-07-18 | Fix output for arrays whose last element is a hole: [1,,]...1529ab96 started to do this (by considering holes to be separate from
"undefined") but it still converted
[1,,] (length 2, last element hole, trailing comma)
to
[1,] (length 1, trailing comma)
Unfortunately the test suite doesn't really make this clear: the new test here
passes with or without this patch because run-tests.js beautifys the expected
output (in "make_code"), which does the incorrect transformation! If you make
some manual change to arrays.js to make the test fail and see the INPUT and
OUTPUT, then you can see that without this fix, [1,,] -> [1,], and with this fix
it stays [1,,].
| David Glasser |
2013-05-14 | Fix a["1_1"]...Close #204
| Mihai Bazon |
2013-05-08 | add a test for zero-length string in is_identifier_string, which is used in p... | Trey Griffith |
2013-05-08 | Better fix for equality of typeof ... against "undefined" | Mihai Bazon |
2013-05-08 | Fixed typeof undefined optimization and updated related test case to...accomodates the sort behaviour changes made in commit
mishoo/UglifyJS2@aebafad41eab48f43ed649ce8c77e8f1528b50da.
Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-05-08 | Added test cases for #104....Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-05-06 | Added test scenario with unicode in properties name....Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-05-05 | Added scenario in test case where properties shouldn't be accessed with...dotted syntax even with screw_ie8 option.
Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-04-20 | fixes #189: use dotted member access when --screw-ie8 option given | Michael Ficarra |
2013-04-03 | Add tests for typeof evaluation | Roman Bataev |
2013-03-01 | Drop last `default:` if it's the last branch and empty...Close #141
| Mihai Bazon |
2013-01-23 | Fix #105: property comparison to undefined is not always safe | Richard Gibson |
2013-01-17 | Fix output for arrays containing undefined values....1b6bcca7 was a first attempt at this. That commit made Uglify stop replacing
holes with undefined, but instead it started replacing undefined with
holes. This is slightly problematic, because there is a difference between a
hole and an undefined value. More problematically, it changed [1,undefined] to
[1,] which generally doesn't even parse as a hole (just as a trailing comma), so
it didn't even preserve the length of the array!
Instead, parse holes as their own special AST node which prints invisibly.
| David Glasser |
2012-11-30 | Add test for issue #59 | Mihai Bazon |
2012-11-14 | better solution for the last test in constant switch folding | Mihai Bazon |