Age | Commit message (Expand) | Author |
2012-09-21 | better support for multiple input files:...- use a single AST_Toplevel node for all files
- keep original source filename in the tokens
| Mihai Bazon |
2012-09-18 | support for directives | Mihai Bazon |
2012-09-18 | added AST_NaN (output as 0/0) | Mihai Bazon |
2012-09-16 | rewrite handle_if_return...optimizations of if/return/continue seem to be even better now
| Mihai Bazon |
2012-09-14 | adding an imaginary "return undefined" can sometimes help...function f() {
if (foo) return x();
if (!bar) return y();
}
==>
function f() {
return foo ? x() : bar ? void 0 : y();
}
| Mihai Bazon |
2012-09-14 | more optimizations that v1 does and some cleanups...- a = a + x ==> a+=x
- joining consecutive var statements (hoisting is not always desirable)
- x == false ==> x == 0, x != true ==> x != 1
- x, x ==> x; x = exp(), x ==> x = exp()
- discarding useless break-s
| Mihai Bazon |
2012-09-12 | fixed run-tests and an issue about reversing the condition in AST_If | Mihai Bazon |
2012-09-11 | fixed some mess with symbols/scope...- all symbols now have a `thedef` property which is a SymbolDef object,
instead of the `uniq` that we had before (pointing to the first occurrence
of the name as declaration).
- for undeclared symbols we still create a SymbolDef object in the toplevel
scope but mark it "undeclared"
- we can now call figure_out_scope after squeezing, which is useful in order
not to mangle names that were dropped by the squeezer
| Mihai Bazon |
2012-09-10 | more progress on the compressor (WIP) | 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-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 | if present, the `else` in an `if` should always be forced statement | 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 | 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-02 | add source mappings for more node types; started CLI utility | Mihai Bazon |
2012-08-29 | started support for generating source maps (WIP)...plugged in @fitzgen's source-map library
| 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 | update (c) years | 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 | 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 | cleaned up some mess and started the actual compressor | Mihai Bazon |
2012-08-21 | some reorganization...(moved pretty much everything that relates to scope in scope.js, added a
module for NodeJS that can be used with require() and exports everything.)
| Mihai Bazon |
2012-08-21 | warn about unreferenced symbols | Mihai Bazon |
2012-08-21 | more fixes:...- added walker for AST_ObjectProperty
- handle redefinitions properly (only mangle one symbol, make them all point
to a single definition)
DynarchLIB seems to run fine after mangling + compressed output.
| Mihai Bazon |
2012-08-20 | added mangler and other stuff | Mihai Bazon |
2012-08-19 | simple visitor API and code to figure out scope and references | Mihai Bazon |
2012-08-18 | some fixes (need testing) in AST_If codegen | Mihai Bazon |
2012-08-17 | minor whitespace issues | Mihai Bazon |
2012-08-17 | big speed improvement (observable when beautify = false)...who would have thought that str.charAt(str.length - 1) is not a constant,
instant operation? seems to get slower and slower as the string grows.
0.6s vs. 3s
| Mihai Bazon |
2012-08-17 | don't output both space and semicolon when beautify=false | Mihai Bazon |
2012-08-17 | added some comments about the rules governing parens | Mihai Bazon |
2012-08-17 | fix one more glitch | Mihai Bazon |
2012-08-17 | code generator finally seems to work properly | Mihai Bazon |
2012-08-16 | lots'o'fixes in the output routines; still a looong way to go. | Mihai Bazon |
2012-08-16 | codegen and dropped the useless walker | Mihai Bazon |
2012-08-15 | WIP | Mihai Bazon |
2012-06-03 | WIP | Mihai Bazon |