aboutsummaryrefslogtreecommitdiff
path: root/test/compress
AgeCommit message (Collapse)Author
2013-11-06Better fix for #343Mihai Bazon
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.
2013-10-29Disallow reversal where lhs has higher or equal precedenceRichard van Velzen
Fixes #267
2013-10-25Add a unit test for issue-126 Mark Jaquith
Add a unit test to test to test for aggressive parenthesis removal that causes functional changes.
2013-10-24Fix #269Richard van Velzen
Shorten most primitives where possible. Also optimize some edge cases.
2013-09-22More attempts to determine when addition is associativeMihai Bazon
Somebody hit me with bug reports on this. :) Refs #300
2013-09-22Actually let's move away those monsters from the evaluate functionMihai Bazon
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.
2013-09-22More dirty handling of [ ... ].join() in unsafe modeMihai Bazon
Close #300
2013-09-22Evaluate [...].join() if possible: minor bugfixDan Wolff
Follow-up to 78e98d2.
2013-09-19When `unsafe` is set, evaluate [...].join() if possibleMihai Bazon
Close #298
2013-09-19Concatenate strings also on the right-hand side of an expression that cannot ↵Dan Wolff
be evaluated. Fix #126 E.g. converts: a+'Hello'+'World' to a+'HelloWorld'
2013-08-20Move support for `negate_iife` in the compressor, rather than code generatorMihai Bazon
(the code generator doesn't maintain enough context to know whether the return value is important or discarded) Fixes #272
2013-08-07Don't drop unused setter argument.Mihai Bazon
Fix #257
2013-07-18Fix output for arrays whose last element is a hole: [1,,]David Glasser
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,,].
2013-05-14Fix a["1_1"]Mihai Bazon
Close #204
2013-05-08add a test for zero-length string in is_identifier_string, which is used in ↵Trey Griffith
property compression. Also added a test exercising the change.
2013-05-08Better fix for equality of typeof ... against "undefined"Mihai Bazon
2013-05-08Fixed typeof undefined optimization and updated related test case toJustin Lau
accomodates the sort behaviour changes made in commit mishoo/UglifyJS2@aebafad41eab48f43ed649ce8c77e8f1528b50da. Signed-off-by: Justin Lau <justin@tclau.com>
2013-05-08Added test cases for #104.Justin Lau
Signed-off-by: Justin Lau <justin@tclau.com>
2013-05-06Added test scenario with unicode in properties name.Justin Lau
Signed-off-by: Justin Lau <justin@tclau.com>
2013-05-05Added scenario in test case where properties shouldn't be accessed withJustin Lau
dotted syntax even with screw_ie8 option. Signed-off-by: Justin Lau <justin@tclau.com>
2013-04-20fixes #189: use dotted member access when --screw-ie8 option givenMichael Ficarra
2013-04-03Add tests for typeof evaluationRoman Bataev
2013-03-01Drop last `default:` if it's the last branch and emptyMihai Bazon
Close #141
2013-01-23Fix #105: property comparison to undefined is not always safeRichard Gibson
2013-01-17Fix output for arrays containing undefined values.David Glasser
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.
2012-11-30Add test for issue #59Mihai Bazon
2012-11-14better solution for the last test in constant switch foldingMihai Bazon
2012-11-14optimize constant switch blocksMihai Bazon
ref. mishoo/UglifyJS#441
2012-11-12fix invalid AST produced by dropping unused variableMihai Bazon
close #44
2012-11-08optimization for if/break as first statement in a loop bodyMihai Bazon
for(...; x; ...) if (y) break; → for(...; x&&!y; ...); similarly for `while` and some combinations (i.e. the `break` appears in the `else` clause, etc.)
2012-10-30don't move expressions containing the binary `in` operator into the `for` ↵Mihai Bazon
initializer (opera can't parse it) close #25
2012-10-24fix for `if (...) return; else return ...;`Mihai Bazon
(it was assumed that the first `return` always contains a value) close #22
2012-10-22more sequence optimizations (lift some sequences above binary/unary ↵Mihai Bazon
expressions so that we can avoid parens)
2012-10-18more optimizations for some break/continue casesMihai Bazon
2012-10-13drop unused function argumentsMihai Bazon
also add test for "drop_unused" (the last one fails for now)
2012-10-12actually enable the option that drops unused names in the test of issue #12Mihai Bazon
2012-10-12add test for issue #12Mihai Bazon
2012-10-03added option for side-effect-free statements, fix testMihai Bazon
2012-10-03disable `hoist_vars` by default and change `comparations` to `comparisons`Mihai Bazon
2012-09-24minor tests fixMihai Bazon
2012-09-17minorMihai Bazon
2012-09-17one more test for sequencesMihai Bazon
2012-09-16rewrite handle_if_returnMihai Bazon
optimizations of if/return/continue seem to be even better now
2012-09-13few more optimizations:Mihai Bazon
- 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
2012-09-12minorMihai Bazon
2012-09-10more progress on the compressor (WIP)Mihai Bazon
2012-09-07always keep declarations found in unreachable codeMihai Bazon
a few more tests and some cleanups.
2012-08-27minorMihai Bazon
2012-08-22wrote more of the compressor and added some testsMihai Bazon