aboutsummaryrefslogtreecommitdiff
path: root/lib/parse.js
AgeCommit message (Collapse)Author
2012-10-11stealing more hacks from acorn in the name of speedMihai Bazon
2012-10-11using makeComparator from acorn to generate functions that tests whether aMihai Bazon
string is keyword, reserved etc. speeds up the parser a bit, though not spectacular.. still far from acorn.
2012-10-11cleanupMihai Bazon
- use prototype-less objects where feasible (minor speed improvement) - get rid of HOP
2012-10-09make `--comments` keep @cc_on tooMihai Bazon
2012-10-09added $propdoc to AST nodes and some cleanupsMihai Bazon
hopefully we can make the AST documentation self-generating
2012-10-04removed some unused variablesMihai Bazon
2012-10-03more cleanup (dropped AST_SwitchBlock)Mihai Bazon
2012-10-02line numbers start at 1Mihai Bazon
2012-10-02"use strict";Mihai Bazon
2012-10-02add AST_SymbolConst for names defined with `const`Mihai Bazon
2012-09-25discard all \uFEFF characters (https://github.com/mishoo/UglifyJS/issues/462)Mihai Bazon
2012-09-21log filename in parse errors / compressor warningsMihai Bazon
2012-09-21better 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-18support for directivesMihai Bazon
2012-09-14more optimizations that v1 does and some cleanupsMihai 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-05cleaned up usage of AST_BlockStatementMihai 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-03an AST_If is too a StatementWithBodyMihai Bazon
2012-09-03a LabeledStatement should be in fact a StatementWithBodyMihai Bazon
This fixes output for: if (foo) { moo: if (bar) { break moo; } } else { baz(); } (the labeled statement must be outputted inside brackets)
2012-09-03Reverting "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-02minor perf. improvementsMihai Bazon
2012-08-27update (c) yearsMihai Bazon
2012-08-22added licenseMihai Bazon
2012-08-21hint that brackets may be required in AST_BlockStatementMihai Bazon
2012-08-21cleaned up some mess and started the actual compressorMihai Bazon
2012-08-19simple visitor API and code to figure out scope and referencesMihai Bazon
2012-08-17code generator finally seems to work properlyMihai Bazon
2012-08-16lots'o'fixes in the output routines; still a looong way to go.Mihai Bazon
2012-08-16codegen and dropped the useless walkerMihai Bazon
2012-08-15WIPMihai Bazon
2012-06-03WIPMihai Bazon
2012-05-27Fixes some gotchas.Mihai Bazon
DynarchLIB (660K) now passes parsing in 440ms (about 30% slower than the parser in UglifyJS v1).
2012-05-27init repoMihai Bazon