Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-10-10 | fix node name | Mihai Bazon | |
2012-10-10 | seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclaration | Mihai Bazon | |
2012-10-10 | small improvements in wrap_commonjs: | Mihai Bazon | |
- use MAP.splice instead of a BlockStatement to inject code (avoids some warnings in the linter) - use the original symbol in exports, so that we get the proper source mapping | |||
2012-10-09 | add AST_Infinity node | Mihai Bazon | |
2012-10-09 | added $propdoc to AST nodes and some cleanups | Mihai Bazon | |
hopefully we can make the AST documentation self-generating | |||
2012-10-09 | minor AST cleanup (AST_BlockStatement may inherit from AST_Block) | Mihai Bazon | |
2012-10-09 | add `--ast-help` | Mihai Bazon | |
displays a rather cruel description of the AST classes, derived directly from the node definitions. | |||
2012-10-08 | added --self to easily get a browser-runnable version of UglifyJS | Mihai Bazon | |
2012-10-03 | more cleanup (dropped AST_SwitchBlock) | Mihai Bazon | |
2012-10-03 | AST cleanup (dropped AST_StatementBase) | Mihai Bazon | |
2012-10-02 | "use strict"; | Mihai Bazon | |
2012-10-02 | add AST_SymbolConst for names defined with `const` | Mihai Bazon | |
2012-09-28 | minor | Mihai Bazon | |
2012-09-26 | checkpoint (refactoring, WIP) | Mihai Bazon | |
2012-09-23 | properly drop mutually-referring declarations that are not otherwise | Mihai Bazon | |
referenced and have no side effects | |||
2012-09-21 | better support for multiple input files: | Mihai Bazon | |
- use a single AST_Toplevel node for all files - keep original source filename in the tokens | |||
2012-09-18 | fixed label scope/mangling | Mihai Bazon | |
2012-09-18 | support for directives | Mihai Bazon | |
2012-09-18 | added AST_NaN (output as 0/0) | Mihai Bazon | |
2012-09-15 | figure out label targets | Mihai Bazon | |
2012-09-14 | more optimizations that v1 does and some cleanups | Mihai Bazon | |
- 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 | |||
2012-09-11 | fixed some mess with symbols/scope | Mihai Bazon | |
- 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 | |||
2012-09-07 | checkpoint | Mihai Bazon | |
2012-09-07 | fixed tests (need to drop the toplevel block in "expected" if it's a single ↵ | Mihai Bazon | |
statement) | |||
2012-09-05 | cleaned up usage of AST_BlockStatement | Mihai Bazon | |
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). | |||
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 | Mihai Bazon | |
This fixes output for: if (foo) { moo: if (bar) { break moo; } } else { baz(); } (the labeled statement must be outputted inside brackets) | |||
2012-09-03 | switch branches must be declared `required` so that the compressor doesn't | Mihai Bazon | |
replace nodes with a single statement. looks stable for now, though mess begins to sink in. need to review the AST hierarchy. | |||
2012-08-28 | docstring for AST_StatementWithBody | Mihai Bazon | |
2012-08-28 | fix code generator for this case: | Mihai Bazon | |
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`) | |||
2012-08-27 | update (c) years | 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 | 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 | |
2012-08-21 | cleaned up some mess and started the actual compressor | Mihai Bazon | |
2012-08-21 | some reorganization | Mihai Bazon | |
(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.) | |||
2012-08-21 | handle labels properly | Mihai Bazon | |
(they can't be handled the same way as variables in a scope) | |||
2012-08-21 | more fixes: | Mihai Bazon | |
- 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. | |||
2012-08-20 | added mangler and other stuff | Mihai Bazon | |
2012-08-20 | doc (WIP) | Mihai Bazon | |
2012-08-19 | simple visitor API and code to figure out scope and references | 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 | |
2012-05-27 | init repo | Mihai Bazon | |