Age | Commit message (Collapse) | Author | |
---|---|---|---|
2013-05-14 | Only compress code in `new Function` if all arguments are strings. | Mihai Bazon | |
2013-05-14 | Compress code passed to `new Function` if it's a constant. | Mihai Bazon | |
Only for `--unsafe`. Close #203 | |||
2013-05-14 | Fix a["1_1"] | Mihai Bazon | |
Close #204 | |||
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 | Justin Lau | |
accomodates the sort behaviour changes made in commit mishoo/UglifyJS2@aebafad41eab48f43ed649ce8c77e8f1528b50da. Signed-off-by: Justin Lau <justin@tclau.com> | |||
2013-05-07 | Fixed dot properties not optimizing unicode identifiers. Signed-off-by: ↵ | Justin Lau | |
Justin Lau <justin@tclau.com> | |||
2013-05-05 | Fixed dot property issue with invlid identifier names. | Justin Lau | |
Signed-off-by: Justin Lau <justin@tclau.com> | |||
2013-04-20 | fixes #189: use dotted member access when --screw-ie8 option given | Michael Ficarra | |
2013-04-03 | Fix typeof evaluation for regex and function | Roman Bataev | |
2013-03-11 | Disable `unsafe` by default | Mihai Bazon | |
Close #147 | |||
2013-03-04 | Fix reordering comparisons | Mihai Bazon | |
Close #143 | |||
2013-03-01 | Drop last `default:` if it's the last branch and empty | Mihai Bazon | |
Close #141 | |||
2013-03-01 | Compress boolean constants after evaluation | Mihai Bazon | |
Close #137 | |||
2013-02-19 | Fix compressing `do {...} while (false)` | Mihai Bazon | |
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 | |||
2013-02-06 | Give up evaluating (unary-prefix '-' 0) | Mihai Bazon | |
Close #117 ------ JS, WHY YOU SUCK SO BADLY? ;-( | |||
2013-02-06 | Fix handling of constants | Mihai Bazon | |
Close #113 | |||
2013-01-23 | Fix #105: property comparison to undefined is not always safe | Richard Gibson | |
2013-01-17 | Handle String() with no arguments. | Mihai Bazon | |
Fix #91 | |||
2012-12-21 | Optimize new Array(1, 2, 3) → [1, 2, 3] | Mihai Bazon | |
Close #74 | |||
2012-12-05 | small improvement on merging assignments into hoisted vars | Mihai Bazon | |
2012-12-05 | When hoisting variables, try to merge in assignments that follow. | Mihai Bazon | |
2012-11-30 | Don't messup compressor stack while optimizing Switch | Mihai Bazon | |
Fix #59 | |||
2012-11-23 | fix for https://github.com/mishoo/UglifyJS/issues/474 | Mihai Bazon | |
2012-11-17 | retain (1,eval) as is when it's the expression of an AST_Call | Mihai Bazon | |
otherwise we change the meaning of eval from global to lexical. | |||
2012-11-14 | better solution for the last test in constant switch folding | Mihai Bazon | |
2012-11-14 | optimize constant switch blocks | Mihai Bazon | |
ref. mishoo/UglifyJS#441 | |||
2012-11-13 | Merge branch 'optimize_concat' of https://github.com/rvanvelzen/UglifyJS2 ↵ | Mihai Bazon | |
into rvanvelzen-optimize_concat | |||
2012-11-13 | don't change order in binary expressions if both operands have side effects | Mihai Bazon | |
2012-11-12 | Add simple optimization for empty-string concats. | Richard van Velzen | |
ref. #43 | |||
2012-11-12 | fix invalid AST produced by dropping unused variable | Mihai Bazon | |
close #44 | |||
2012-11-11 | convert x.toString() to ""+x instead of x+"" | Dan Wolff | |
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(); } | |||
2012-11-08 | AST_LabelRef no longer inherits from AST_SymbolRef | Mihai Bazon | |
2012-11-08 | optimization for if/break as first statement in a loop body | Mihai 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-11-05 | convert `while` into `for` | Mihai Bazon | |
2012-11-05 | minor | Mihai Bazon | |
2012-11-05 | minor optimization | Mihai Bazon | |
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. | |||
2012-11-02 | use a Dictionary object instead of plain object for hashes | Mihai Bazon | |
to mitigate the `__proto__` issue related to #30 | |||
2012-11-01 | it's safe to negate expression in !EXP only in boolean context | Mihai Bazon | |
#kendo | |||
2012-11-01 | added unsafe_comps for negating `<=` with `>` | Mihai Bazon | |
since it has the potential to break code, let's keep it disabled by default | |||
2012-11-01 | fix compressing UnaryPrefix | Mihai Bazon | |
only try negating the expression if the operator is `!` #kendo | |||
2012-10-30 | don't move expressions containing the binary `in` operator into the `for` ↵ | Mihai Bazon | |
initializer (opera can't parse it) close #25 | |||
2012-10-24 | fix for `if (...) return; else return ...;` | Mihai Bazon | |
(it was assumed that the first `return` always contains a value) close #22 | |||
2012-10-22 | more sequence optimizations (lift some sequences above binary/unary ↵ | Mihai Bazon | |
expressions so that we can avoid parens) | |||
2012-10-19 | minor fix for dropping unused definitions. | Mihai Bazon | |
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 }` | |||
2012-10-18 | more optimizations for some break/continue cases | Mihai Bazon | |
2012-10-17 | more small optimizations | Mihai Bazon | |
(unlikely to help for hand-written code) | |||
2012-10-17 | define aborts on AST_If: true if both branches abort | Mihai Bazon | |
2012-10-17 | employ a better parser for command-line arguments | Mihai Bazon | |
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 | |||
2012-10-13 | drop unused function arguments | Mihai Bazon | |
also add test for "drop_unused" (the last one fails for now) | |||
2012-10-13 | fix compressing benchmark.js (it tried to evaluate a statement) | Mihai Bazon | |
the following code in benchmark.js triggered the issue: support.decompilation = Function( 'return (' + (function(x) { return { 'x': '' + (1 + x) + '', 'y': 0 }; }) + ')' )()(0).x === '1'; technically that could be resolved into a constant expression, but seems it's being used here for browser bugs detection :-\ |