aboutsummaryrefslogtreecommitdiff
path: root/lib/compress.js
AgeCommit message (Expand)Author
2012-10-19minor fix for dropping unused definitions.... function f(x, y) { var g = function() { return h() }; var h = function() { return g() }; return x + y; } now compresses to `function f(x, y) { return x + y }` Mihai Bazon
2012-10-18more optimizations for some break/continue casesMihai Bazon
2012-10-17more small optimizations...(unlikely to help for hand-written code) Mihai Bazon
2012-10-17define aborts on AST_If: true if both branches abortMihai Bazon
2012-10-17employ a better parser for command-line arguments...to support passing commas in strings in for example: uglifyjs2 -cd TEST="'a,b'" <<EOF console.log(TEST); EOF → console.log("a,b") close #14 Mihai Bazon
2012-10-13drop unused function arguments...also add test for "drop_unused" (the last one fails for now) Mihai Bazon
2012-10-13fix compressing benchmark.js (it tried to evaluate a statement)...the following code in benchmark.js triggered the issue: support.decompilation = Function( 'return (' + (function(x) { return { 'x': '' + (1 + x) + '', 'y': 0 }; }) + ')' )()(0).x === '1'; technically that could be resolved into a constant expression, but seems it's being used here for browser bugs detection :-\ Mihai Bazon
2012-10-12remove the $self hack...operations are destructive anyway, so there's no point to clone the nodes in the transformer. speed++ Mihai Bazon
2012-10-11cleanup...- use prototype-less objects where feasible (minor speed improvement) - get rid of HOP Mihai Bazon
2012-10-10drop unused variableMihai Bazon
2012-10-09minorMihai Bazon
2012-10-09add AST_Infinity nodeMihai Bazon
2012-10-09added $propdoc to AST nodes and some cleanups...hopefully we can make the AST documentation self-generating Mihai Bazon
2012-10-09minor AST cleanup (AST_BlockStatement may inherit from AST_Block)Mihai Bazon
2012-10-09fix detecting symbols in useMihai Bazon
2012-10-08eliminate redundant directives in the same scopeMihai Bazon
2012-10-05minorMihai Bazon
2012-10-05replace `(function(){ ...no side effects ... })()` with `undefined`.Mihai Bazon
2012-10-04removed some unused variablesMihai Bazon
2012-10-03more cleanup (dropped AST_SwitchBlock)Mihai Bazon
2012-10-03AST cleanup (dropped AST_StatementBase)Mihai Bazon
2012-10-03added option for side-effect-free statements, fix testMihai Bazon
2012-10-03fix endless loop in testsMihai Bazon
2012-10-03fix for `a = !b && !c && !d && !e → a=!(b||c||d||e)`Mihai Bazon
2012-10-03disable `hoist_vars` by default and change `comparations` to `comparisons`Mihai Bazon
2012-10-02support definesMihai Bazon
2012-10-02"use strict";Mihai Bazon
2012-10-02more constant folding (for names defined with `const`)Mihai Bazon
2012-10-02drop more unused namesMihai Bazon
2012-10-02a shy attempt to obey `width` in the beautifier; added `bracketize` option to...Mihai Bazon
2012-09-26removed the "squeeze" method (it's now effectively "transform")Mihai Bazon
2012-09-26some speedup and more savings from unused vars that have side effects in init...Mihai Bazon
2012-09-26compressor successfully moved to TreeTransformerMihai Bazon
2012-09-26checkpoint (refactoring, WIP)Mihai Bazon
2012-09-25more cleanupsMihai Bazon
2012-09-25moving code around (refactoring, WIP)Mihai Bazon
2012-09-25started some refactoring (WIP) -- moving squeezer to TreeTransformerMihai Bazon
2012-09-25minorMihai Bazon
2012-09-25it's not safe to assume that property access is side-effect-free...(getters/setters + various browser bugs will trigger side effects; also, an exception is thrown when the expression is undefined) Mihai Bazon
2012-09-25some boolean cleanupMihai Bazon
2012-09-23properly drop mutually-referring declarations that are not otherwise...referenced and have no side effects Mihai Bazon
2012-09-22tree transformer api (WIP)Mihai Bazon
2012-09-21log filename in parse errors / compressor warningsMihai Bazon
2012-09-21more on detecting side effectsMihai Bazon
2012-09-19drop unused variablesMihai Bazon
2012-09-18support for directivesMihai Bazon
2012-09-18added AST_NaN (output as 0/0)Mihai Bazon
2012-09-17only do the typeof x == "undefined" optimization if x is a symbol reference a...Mihai Bazon
2012-09-17moved `typeof foo == "undefined"` ==> `foo === undefined` under `--unsafe`...because https://github.com/mishoo/UglifyJS2/commit/43fd45154bac89b89330e13bd1f167e2a927a23c#commitcomment-1864505 Mihai Bazon
2012-09-17fix .undeclared (it's now a function)Mihai Bazon