Age | Commit message (Expand) | Author |
2012-09-11 | checkpoint...- discard statements with no side effects (unsafe? could be)
- safer hoist_vars (needs some revamping of scope/mangling)
| Mihai Bazon |
2012-09-10 | hoist_vars is pretty bad, it seems. cancelled it for now. | Mihai Bazon |
2012-09-10 | adaptive base54 digits depending on char frequency (WIP) | Mihai Bazon |
2012-09-10 | more progress on the compressor (WIP) | Mihai Bazon |
2012-09-10 | fix "file" in the source map | Mihai Bazon |
2012-09-08 | minor | Mihai Bazon |
2012-09-08 | fix output for division followed by regexp...( v1 report: https://github.com/mishoo/UglifyJS/pull/458 )
| Mihai Bazon |
2012-09-07 | checkpoint | Mihai Bazon |
2012-09-07 | fix bug (forgot arg name) | Mihai Bazon |
2012-09-07 | always keep declarations found in unreachable code...a few more tests and some cleanups.
| Mihai Bazon |
2012-09-07 | fixed tests (need to drop the toplevel block in "expected" if it's a single s... | Mihai Bazon |
2012-09-05 | don't duplicate argument names | Mihai Bazon |
2012-09-05 | declared `--stats` as boolean | Mihai Bazon |
2012-09-05 | fix for variable names like `toString` | Mihai Bazon |
2012-09-05 | support for hoisting declarations...and finally it seems we beat v1 in terms of compression
| Mihai Bazon |
2012-09-05 | cleaned up usage of AST_BlockStatement...The following nodes were instances of AST_BlockStatement: AST_Scope,
AST_SwitchBlock, AST_SwitchBranch. Also, AST_Try, AST_Catch, AST_Finally
were having a body instanceof AST_BlockStatement.
Overloading the meaning of AST_BlockStatement this way turned out to be a
mess; we now have an AST_Block class that is the base class for things
having a block of statements (might or might not be bracketed). The
`this.body` of AST_Scope, AST_Try, AST_Catch, AST_Finally is now an array of
statements (as they inherit from AST_Block).
Avoiding calling superclass's _walk function in walkers (turns out we walked
a node multiple times).
| Mihai Bazon |
2012-09-04 | checkpoint | Mihai Bazon |
2012-09-04 | more fiddling with boolean expressions, etc....optimize away while(false), and transform while(true) ==> for(;;).
UNSAFE:
some expressions are optimized away when we're in boolean context and can
determine that the value will always be true or false. For example:
x() || true ==> always `true` in boolean context
x() && false ==> always `false` in boolean context
It's not technically correct to drop these expressions since we drop the
function call too (that might have side effects); on the other hand, I can't
see any legitimate use for such expressions and they might simply indicate a
bug (we do warn about it).
| Mihai Bazon |
2012-09-04 | if present, the `else` in an `if` should always be forced statement | Mihai Bazon |
2012-09-03 | boolean and if/exit optimizations | Mihai Bazon |
2012-09-03 | minor | Mihai Bazon |
2012-09-03 | more optimizations for ifs/conditionals...(XXX: should add tests before anything else)
| Mihai Bazon |
2012-09-03 | resolve constant expressions | Mihai Bazon |
2012-09-03 | jumps, try and definitions are statements too | Mihai Bazon |
2012-09-03 | an AST_If is too a StatementWithBody | Mihai Bazon |
2012-09-03 | a LabeledStatement should be in fact a StatementWithBody...This fixes output for:
if (foo) {
moo: if (bar) {
break moo;
}
} else {
baz();
}
(the labeled statement must be outputted inside brackets)
| Mihai Bazon |
2012-09-03 | declare boolean options | Mihai Bazon |
2012-09-03 | switch branches must be declared `required` so that the compressor doesn't...replace nodes with a single statement.
looks stable for now, though mess begins to sink in. need to review the AST
hierarchy.
| Mihai Bazon |
2012-09-03 | Reverting "minor perf. improvements"...Revert "minor perf. improvements"
This reverts commit 24bfd55a22afd791d4a97694641831cfbd27fb14.
broke the parser somehow; too early to optimize, let's get the other stuff running.
| Mihai Bazon |
2012-09-03 | add -b | Mihai Bazon |
2012-09-02 | add source mappings for more node types; started CLI utility | Mihai Bazon |
2012-09-02 | minor perf. improvements | Mihai Bazon |
2012-08-29 | started support for generating source maps (WIP)...plugged in @fitzgen's source-map library
| Mihai Bazon |
2012-08-29 | don't mangle names of setters/getters | Mihai Bazon |
2012-08-29 | update with link to discussion about Esprima vs. UglifyJS speed | Mihai Bazon |
2012-08-28 | docstring for AST_StatementWithBody | Mihai Bazon |
2012-08-28 | fix output for arrays containing undefined values...[1,,2,] ==> [1,,2] instead of [1,undefined,2]
| Mihai Bazon |
2012-08-28 | fix code generator for this case:...if (foo) {
with (bar)
if (baz)
x();
} else y();
(the compressor removes the brackets since the consequent consists of a
single statement, but the codegen must include the brackets because
otherwise the `else` would refer to the inner `if`)
| Mihai Bazon |
2012-08-27 | added README | Mihai Bazon |
2012-08-27 | minor | Mihai Bazon |
2012-08-27 | update (c) years | Mihai Bazon |
2012-08-27 | minor | Mihai Bazon |
2012-08-27 | fix compressing `a,b; return c;` into `return a,b,c;` | Mihai Bazon |
2012-08-27 | added print_to_string helper method | Mihai Bazon |
2012-08-23 | fix current_col and force a newline every 32K (support options.max_line_len) | Mihai Bazon |
2012-08-22 | added license | Mihai Bazon |
2012-08-22 | wrote more of the compressor and added some tests | Mihai Bazon |
2012-08-22 | fix output for certain edge cases...the statements if, for, do, while and with might have an AST_EmptyStatement
as body; if that's the case, we need to make sure that the semicolon gets in
the output.
| Mihai Bazon |
2012-08-22 | declare some properties in the node constructor so that they're copied in clone | Mihai Bazon |
2012-08-21 | hint that brackets may be required in AST_BlockStatement | Mihai Bazon |