Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-09-26 | checkpoint (refactoring, WIP) | Mihai Bazon | |
2012-09-25 | more cleanups | Mihai Bazon | |
2012-09-25 | moving code around (refactoring, WIP) | Mihai Bazon | |
2012-09-25 | discard all \uFEFF characters (https://github.com/mishoo/UglifyJS/issues/462) | Mihai Bazon | |
2012-09-25 | started some refactoring (WIP) -- moving squeezer to TreeTransformer | Mihai Bazon | |
2012-09-25 | minor | Mihai Bazon | |
2012-09-25 | it's not safe to assume that property access is side-effect-free | Mihai Bazon | |
(getters/setters + various browser bugs will trigger side effects; also, an exception is thrown when the expression is undefined) | |||
2012-09-25 | some boolean cleanup | Mihai Bazon | |
2012-09-24 | Support input source map | Mihai Bazon | |
This is useful while compressing generated code; for example compressing JS compiled by CoffeeScript (assuming you got a source map): uglifyjs2 --in-source-map generated.js.map \ --source-map uglified.js.map \ -o uglified.js The above assumes you have a "generated.js.map" file which is the source mapping between your CoffeeScript and the generated.js (compiled output from CoffeeScript). The name of the input file is not present in this example; it will be fetched from the source map (but it can be passed manually too). The output will be in "uglified.js" and the output map "uglified.js.map" will actually map to the original CoffeeScript code, rather than to generated.js. | |||
2012-09-23 | properly drop mutually-referring declarations that are not otherwise | Mihai Bazon | |
referenced and have no side effects | |||
2012-09-22 | tree transformer api (WIP) | Mihai Bazon | |
2012-09-21 | log filename in parse errors / compressor warnings | Mihai Bazon | |
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-21 | more on detecting side effects | Mihai Bazon | |
2012-09-19 | drop unused variables | Mihai Bazon | |
2012-09-18 | fixed label scope/mangling | Mihai Bazon | |
2012-09-18 | minor | Mihai Bazon | |
2012-09-18 | support for directives | Mihai Bazon | |
2012-09-18 | added AST_NaN (output as 0/0) | Mihai Bazon | |
2012-09-17 | only do the typeof x == "undefined" optimization if x is a symbol reference ↵ | Mihai Bazon | |
and it's declared in scope, or x is not a symbol reference. | |||
2012-09-17 | moved `typeof foo == "undefined"` ==> `foo === undefined` under `--unsafe` | Mihai Bazon | |
because https://github.com/mishoo/UglifyJS2/commit/43fd45154bac89b89330e13bd1f167e2a927a23c#commitcomment-1864505 | |||
2012-09-17 | fix .undeclared (it's now a function) | Mihai Bazon | |
2012-09-17 | minor | Mihai Bazon | |
2012-09-17 | possible optimization for AST_Undefined | Mihai Bazon | |
if undefined is defined, ;-), we replace AST_Undefined nodes to a reference to the "undefined" variable; in turn the mangler will compress it to a single letter; this helps at least on jQuery. | |||
2012-09-17 | empty block to empty statement: {} ==> ; | Mihai Bazon | |
2012-09-17 | more smallish optimizations | Mihai Bazon | |
2012-09-17 | try negating AST_Binary | Mihai Bazon | |
2012-09-16 | some cleanup | Mihai Bazon | |
2012-09-16 | more sequencesizing (WIP) | Mihai Bazon | |
2012-09-16 | drop unused function | Mihai Bazon | |
2012-09-16 | rewrite handle_if_return | Mihai Bazon | |
optimizations of if/return/continue seem to be even better now | |||
2012-09-15 | other small optimization: | Mihai Bazon | |
if (foo) continue; ...body... ==> if (!foo) { ...body ... } Only when the parent block is the target loop of the `continue` statement. | |||
2012-09-15 | figure out label targets | Mihai Bazon | |
2012-09-15 | join_vars: | Mihai Bazon | |
var XXX; for (var YYY; ...) ==> for (var XXX,YYY; ...) | |||
2012-09-14 | compress typeof x == "undefined" to x === undefined, which further gets | Mihai Bazon | |
shortened to x === void 0 (or x === [][0] in unsafe mode) | |||
2012-09-14 | minor | Mihai Bazon | |
when unsafe, compress undefined as [][0] | |||
2012-09-14 | adding an imaginary "return undefined" can sometimes help | Mihai Bazon | |
function f() { if (foo) return x(); if (!bar) return y(); } ==> function f() { return foo ? x() : bar ? void 0 : y(); } | |||
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-13 | few more optimizations: | Mihai Bazon | |
- do multiple passes in tighten_body if it was changed - transform if (foo) return x; return y; ==> return foo?x:y - don't optimize !0 as true (use best_of after evaluation of constant expr) With hoist_vars off we now beat UglifyJS v1 on jQuery-1.8.1 | |||
2012-09-12 | minor | Mihai Bazon | |
2012-09-12 | more AST_If optimizations | Mihai Bazon | |
2012-09-12 | side effect fixes and small optimization for gzip | Mihai Bazon | |
prefer to always use > and >= operators (idea from Closure) | |||
2012-09-12 | fixed run-tests and an issue about reversing the condition in AST_If | Mihai Bazon | |
2012-09-11 | minor | Mihai Bazon | |
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-11 | checkpoint | Mihai Bazon | |
- discard statements with no side effects (unsafe? could be) - safer hoist_vars (needs some revamping of scope/mangling) | |||
2012-09-10 | hoist_vars is pretty bad, it seems. cancelled it for now. | Mihai Bazon | |
2012-09-10 | adaptive base54 digits depending on char frequency (WIP) | Mihai Bazon | |
2012-09-10 | more progress on the compressor (WIP) | Mihai Bazon | |
2012-09-08 | minor | Mihai Bazon | |