Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 | Mihai Bazon | |
a few more tests and some cleanups. | |||
2012-09-07 | fixed tests (need to drop the toplevel block in "expected" if it's a single ↵ | Mihai Bazon | |
statement) | |||
2012-09-05 | don't duplicate argument names | Mihai Bazon | |
2012-09-05 | fix for variable names like `toString` | Mihai Bazon | |
2012-09-05 | support for hoisting declarations | Mihai Bazon | |
and finally it seems we beat v1 in terms of compression | |||
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-04 | checkpoint | Mihai Bazon | |
2012-09-04 | more fiddling with boolean expressions, etc. | Mihai Bazon | |
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). | |||
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 | Mihai Bazon | |
(XXX: should add tests before anything else) | |||
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 | 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-09-03 | Reverting "minor perf. improvements" | Mihai Bazon | |
Revert "minor perf. improvements" This reverts commit 24bfd55a22afd791d4a97694641831cfbd27fb14. broke the parser somehow; too early to optimize, let's get the other stuff running. | |||
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) | Mihai Bazon | |
plugged in @fitzgen's source-map library | |||
2012-08-29 | don't mangle names of setters/getters | Mihai Bazon | |
2012-08-28 | docstring for AST_StatementWithBody | Mihai Bazon | |
2012-08-28 | fix output for arrays containing undefined values | Mihai Bazon | |
[1,,2,] ==> [1,,2] instead of [1,undefined,2] | |||
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-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 | Mihai Bazon | |
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. | |||
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 | warn about unreferenced symbols | Mihai Bazon | |
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-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) | Mihai Bazon | |
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 | |||
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 | |