aboutsummaryrefslogtreecommitdiff
path: root/lib/compress.js
AgeCommit message (Expand)Author
2013-06-07Don't swap binary ops when "use asm" is in effect....Refs #167 Mihai Bazon
2013-05-14Only compress code in `new Function` if all arguments are strings.Mihai Bazon
2013-05-14Compress code passed to `new Function` if it's a constant....Only for `--unsafe`. Close #203 Mihai Bazon
2013-05-14Fix a["1_1"]...Close #204 Mihai Bazon
2013-05-08Better fix for equality of typeof ... against "undefined"Mihai Bazon
2013-05-08Fixed 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-07Fixed dot properties not optimizing unicode identifiers. Signed-off-by: Justi...Justin Lau
2013-05-05Fixed dot property issue with invlid identifier names....Signed-off-by: Justin Lau <justin@tclau.com> Justin Lau
2013-04-20fixes #189: use dotted member access when --screw-ie8 option givenMichael Ficarra
2013-04-03Fix typeof evaluation for regex and functionRoman Bataev
2013-03-11Disable `unsafe` by default...Close #147 Mihai Bazon
2013-03-04Fix reordering comparisons...Close #143 Mihai Bazon
2013-03-01Drop last `default:` if it's the last branch and empty...Close #141 Mihai Bazon
2013-03-01Compress boolean constants after evaluation...Close #137 Mihai Bazon
2013-02-19Fix compressing `do {...} while (false)`...It's not safe to transform it to {...} because the body might contain `break`. The solution could be more elaborate (detect if body contains `break`) but I don't think it's worth the trouble. Close #129 Mihai Bazon
2013-02-06Give up evaluating (unary-prefix '-' 0)...Close #117 ------ JS, WHY YOU SUCK SO BADLY? ;-( Mihai Bazon
2013-02-06Fix handling of constants...Close #113 Mihai Bazon
2013-01-23Fix #105: property comparison to undefined is not always safeRichard Gibson
2013-01-17Handle String() with no arguments....Fix #91 Mihai Bazon
2012-12-21Optimize new Array(1, 2, 3) → [1, 2, 3]...Close #74 Mihai Bazon
2012-12-05small improvement on merging assignments into hoisted varsMihai Bazon
2012-12-05When hoisting variables, try to merge in assignments that follow.Mihai Bazon
2012-11-30Don't messup compressor stack while optimizing Switch...Fix #59 Mihai Bazon
2012-11-23fix for https://github.com/mishoo/UglifyJS/issues/474Mihai Bazon
2012-11-17retain (1,eval) as is when it's the expression of an AST_Call...otherwise we change the meaning of eval from global to lexical. Mihai Bazon
2012-11-14better solution for the last test in constant switch foldingMihai Bazon
2012-11-14optimize constant switch blocks...ref. mishoo/UglifyJS#441 Mihai Bazon
2012-11-13Merge branch 'optimize_concat' of https://github.com/rvanvelzen/UglifyJS2 int...Mihai Bazon
2012-11-13don't change order in binary expressions if both operands have side effectsMihai Bazon
2012-11-12Add simple optimization for empty-string concats....ref. #43 Richard van Velzen
2012-11-12fix invalid AST produced by dropping unused variable...close #44 Mihai Bazon
2012-11-11convert x.toString() to ""+x instead of x+""...In some places this can save one byte in whitespace, e.g. after return. Example: function f(arg) { // return""+arg - no space between return and "" return arg.toString(); } Dan Wolff
2012-11-08AST_LabelRef no longer inherits from AST_SymbolRefMihai Bazon
2012-11-08optimization for if/break as first statement in a loop body... for(...; x; ...) if (y) break; → for(...; x&&!y; ...); similarly for `while` and some combinations (i.e. the `break` appears in the `else` clause, etc.) Mihai Bazon
2012-11-05convert `while` into `for`Mihai Bazon
2012-11-05minorMihai Bazon
2012-11-05minor optimization...for `==` or `!=` against a constant, prefer to display the constant first. should help a bit after gzip, i.e.: typeof foo=="undefined" ^^^^^^ ^^^^^^^^^^^^^ vs: "undefined"==typeof foo ^^^^^^^^^^^^^^^^^^^ (longer sequence that could repeat) idea stolen from closure. Mihai Bazon
2012-11-02use a Dictionary object instead of plain object for hashes...to mitigate the `__proto__` issue related to #30 Mihai Bazon
2012-11-01it's safe to negate expression in !EXP only in boolean context...#kendo Mihai Bazon
2012-11-01added unsafe_comps for negating `<=` with `>`...since it has the potential to break code, let's keep it disabled by default Mihai Bazon
2012-11-01fix compressing UnaryPrefix...only try negating the expression if the operator is `!` #kendo Mihai Bazon
2012-10-30don't move expressions containing the binary `in` operator into the `for` ini......(opera can't parse it) close #25 Mihai Bazon
2012-10-24fix for `if (...) return; else return ...;`...(it was assumed that the first `return` always contains a value) close #22 Mihai Bazon
2012-10-22more sequence optimizations (lift some sequences above binary/unary expressio...Mihai Bazon
2012-10-19minor fix for dropping unused definitions.... function f(x, y) { var g = function() { return h() }; var h = function() { return g() }; return x + y; } now compresses to `function f(x, y) { return x + y }` Mihai Bazon
2012-10-18more optimizations for some break/continue casesMihai Bazon
2012-10-17more small optimizations...(unlikely to help for hand-written code) Mihai Bazon
2012-10-17define aborts on AST_If: true if both branches abortMihai Bazon
2012-10-17employ a better parser for command-line arguments...to support passing commas in strings in for example: uglifyjs2 -cd TEST="'a,b'" <<EOF console.log(TEST); EOF → console.log("a,b") close #14 Mihai Bazon
2012-10-13drop unused function arguments...also add test for "drop_unused" (the last one fails for now) Mihai Bazon