Age | Commit message (Expand) | Author |
2013-03-25 | renamed --screw-ie to --screw-ie8, documented it in README.md, indicated it d... | Michał Gołębiowski |
2013-03-24 | Add support for enclose option. Closes #139. | Jake Harding |
2013-03-24 | Don't print the warning on parse error, just throw a JS_Parse_Error....Fix #159
| Mihai Bazon |
2013-03-22 | Keep legit code working even when --screw-ie is not passed....Previously:
Without `--screw-ie`, UglifyJS would always leak names of function
expressions into the containing scope, as if they were function
declarations. That was to emulate IE<9 behavior. Code relying on this
IE bug would continue to work properly after mangling, although it would
only work in IE (since other engines don't share the bug). Sometimes
this broke legitimage code (see #153 and #155).
With `--screw-ie` the names would not be leaked into the current scope,
working properly in legit cases; but still it broke legit code when
running in IE<9 (see #24).
Currently:
Regardless of the `--screw-ie` setting, the names will not be leaked.
Code relying on the IE bug will not work properly after mangling.
<evil laughter here>
Without `--screw-ie`: a hack has been added to the mangler to avoid
using the same name for a function expression and some other variable in
the same scope. This keeps legit code working, at the (negligible,
indeed) cost of one more identifier.
With `--screw-ie` you allow the mangler to name function expressions
with the same identifier as another variable in scope. After mangling
code might break in IE<9.
Oh man, the commit message is longer than the patch.
Fix #153, #155
| Mihai Bazon |
2013-03-13 | Support mangling toplevel names...Close #127
| Mihai Bazon |
2013-03-11 | Disable `unsafe` by default...Close #147
| Mihai Bazon |
2013-03-04 | Fix reordering comparisons...Close #143
| Mihai Bazon |
2013-03-02 | Add `--screw-ie` option...For now the implication is that UglifyJS will not leak a function
expression's name in the surrounding scope (IE < 9 does that).
(ref. mishoo/UglifyJS#485)
| Mihai Bazon |
2013-03-01 | Drop last `default:` if it's the last branch and empty...Close #141
| Mihai Bazon |
2013-03-01 | Compress boolean constants after evaluation...Close #137
| Mihai Bazon |
2013-02-19 | Fix 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-06 | Force space after literal regexp when used in "instanceof" or "in"...Close #118
| Mihai Bazon |
2013-02-06 | Give up evaluating (unary-prefix '-' 0)...Close #117
------
JS, WHY YOU SUCK SO BADLY? ;-(
| Mihai Bazon |
2013-02-06 | Fix parens for NaN...Close #116
| Mihai Bazon |
2013-02-06 | Fix parens for negative numbers...Close #115
| Mihai Bazon |
2013-02-06 | Fix parens for AST_New...Close #114
| Mihai Bazon |
2013-02-06 | Fix handling of constants...Close #113
| Mihai Bazon |
2013-02-05 | Ugly hack to print comments before return/throw statements...Close #112
| Mihai Bazon |
2013-02-01 | Fix end token for Assign nodes | Mihai Bazon |
2013-01-23 | Fix #105: property comparison to undefined is not always safe | Richard Gibson |
2013-01-17 | [AST_Hole] the print function can be a no-op. | Mihai Bazon |
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 |
2013-01-17 | Handle String() with no arguments....Fix #91
| Mihai Bazon |
2013-01-04 | Fix handling of labels in nested scopes | Mihai Bazon |
2013-01-02 | Implement `-m sort=true`...close #83
| Mihai Bazon |
2012-12-22 | Accept string or number as name of an accessor....[not sure I'm happy about this fix]
Reference mishoo/UglifyJS#478
| Mihai Bazon |
2012-12-21 | Optimize new Array(1, 2, 3) → [1, 2, 3]...Close #74
| Mihai Bazon |
2012-12-21 | Fix output when semicolons is off....(need to force a semicolon for the empty body of an `if`)
Close #72
| Mihai Bazon |
2012-12-12 | Small cleanup | Mihai Bazon |
2012-12-06 | Add proper parens in "NoIn" expressions....fix #60.
| Mihai Bazon |
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...Fix #59
| Mihai Bazon |
2012-11-24 | fix #55 | Mihai Bazon |
2012-11-23 | fix for https://github.com/mishoo/UglifyJS/issues/474 | Mihai Bazon |
2012-11-18 | fix #51 | Mihai Bazon |
2012-11-17 | retain (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-14 | Add support for somewhat preserving line numbers....Usage: uglifyjs2 -b "beautify=0,preserve_line=1" /path/to/js
ref #46
| Richard van Velzen |
2012-11-14 | better solution for the last test in constant switch folding | Mihai Bazon |
2012-11-14 | optimize constant switch blocks...ref. mishoo/UglifyJS#441
| Mihai Bazon |
2012-11-13 | Merge branch 'optimize_concat' of https://github.com/rvanvelzen/UglifyJS2 int... | Mihai Bazon |
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....ref. #43
| Richard van Velzen |
2012-11-12 | fix invalid AST produced by dropping unused variable...close #44
| Mihai Bazon |
2012-11-11 | convert 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-08 | AST_LabelRef no longer inherits from AST_SymbolRef | Mihai Bazon |
2012-11-08 | fix API breakage...close #36, #38
| Mihai Bazon |
2012-11-08 | optimization 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-07 | fix another small regression...we do need parens here: `new (foo.bar().baz)`, but not here: `new foo.bar.baz`
| Mihai Bazon |
2012-11-07 | fix regression from 5346fb94 (shouldn't parenthesize i++ in x[i++]) | Mihai Bazon |