aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2013-11-08Only descend twice after drop_unused if it's the same node type.Mihai Bazon
Fix #345
2013-11-06Better fix for #343Mihai Bazon
We can in fact lift sequences, but only if the operation is assignment and the left-hand side has no side effects nor property access -- that should guarantee that whatever we place before it cannot affect the sense of the assignment. Dropped contrived test case (too hard to support it now), added a more meaningful one.
2013-11-06Do not lift sequence from right-hand side of binary operation. Fix #343Mihai Bazon
2013-10-30Workaround for Safari bugMihai Bazon
Close #313
2013-10-30Fix parsing setters/getters (allow keywords for name).Mihai Bazon
The "key" property was always "set" or "get", which didn't make much sense. Now it'll be the actual name of the setter/getter (AST_Node), and the AST_Accessor object itself, which represents the function, won't store any name. Close #319
2013-10-30Fix regression after e4c530240650535d1cb46569dfb013193471af05Mihai Bazon
`x * (y * z)` ==> `x * y * z` -- the better place to do this is in the compressor rather than codegen.
2013-10-30indentationMihai Bazon
2013-10-30Fix output for `x = 2 * (a % b / b * c)`Mihai Bazon
(issue #337)
2013-10-30minorMihai Bazon
2013-10-29Disallow reversal where lhs has higher or equal precedenceRichard van Velzen
Fixes #267
2013-10-29Fix typoMihai Bazon
2013-10-29Avoid shadowing name of function expression with function argumentMihai Bazon
Close #179, #326, #327
2013-10-29Add "preamble" output optionMihai Bazon
Close #335
2013-10-28Fix codegen for when comments_before is undefined.Mihai Bazon
Fix #333
2013-10-26Fix RHS concat (raised in #330)Richard van Velzen
When attempting to concat the left-side of the rhs, make sure the rhs is a string.
2013-10-24Fix #269Richard van Velzen
Shorten most primitives where possible. Also optimize some edge cases.
2013-10-23Fix #280Richard van Velzen
The `init` of the `ForStatement` is not a `BlockStatement` before it was descended. The descend has to happen first, and *then* the actual checks.
2013-10-22Revert #3a81f60 for nowMihai Bazon
(with it some tests break and it can generate invalid output, see issue #44)
2013-10-17`arguments` outside of a function is an ordinary variable.Mihai Bazon
Fix #501
2013-10-09wrap upMihai Bazon
2013-10-09Don't drop_unused before compression.Mihai Bazon
Fix #280, #282
2013-10-04Rename clean_getters to pure_getters; add pure_funcs.Mihai Bazon
2013-10-03Only allow identifier start characters at the beginning of identifiers.David Glasser
Without this fix, the following source: x = {"\u200c": 42}; would incorrectly be converted into a quoteless key. But while \u200c is allowed to be in identifiers, it cannot be at the beginning, as per ES5. (For example, the SockJS client library doesn't work under uglify starting with d9ad3c7c.)
2013-10-02add `clean_getters` compressor option (default `false`)Mihai Bazon
allows one to specify if `foo.bar` is considered to have side effects.
2013-10-02minor optimizationMihai Bazon
unlikely to help in hand-written code: (something() ? foo : bar) == foo ==> something()
2013-09-30Fix error in the output minifying `Function("return this")()`Mihai Bazon
2013-09-22More attempts to determine when addition is associativeMihai Bazon
Somebody hit me with bug reports on this. :) Refs #300
2013-09-22Actually let's move away those monsters from the evaluate functionMihai Bazon
ev() should do a single thing — evaluate constant expressions. if that's not possible, just return the original node. it's not the best place for partial evaluation there, instead doing it in the compress functions.
2013-09-22More dirty handling of [ ... ].join() in unsafe modeMihai Bazon
Close #300
2013-09-22Evaluate [...].join() if possible: minor bugfixDan Wolff
Follow-up to 78e98d2.
2013-09-19When `unsafe` is set, evaluate [...].join() if possibleMihai Bazon
Close #298
2013-09-19Concatenate strings also on the right-hand side of an expression that cannot ↵Dan Wolff
be evaluated. Fix #126 E.g. converts: a+'Hello'+'World' to a+'HelloWorld'
2013-09-06Avoid printing <!-- in the output (HTML5 comment)Mihai Bazon
2013-09-06Support HTML5 comment syntax (enabled by default!)Mihai Bazon
See http://javascript.spec.whatwg.org/#comment-syntax https://github.com/mishoo/UglifyJS/issues/503 https://github.com/marijnh/acorn/issues/62
2013-09-06minorMihai Bazon
2013-09-02Fix names.Mihai Bazon
2013-09-02Disallow `continue` referring to a non-IterationStatement. Fix #287Mihai Bazon
Simplifies handling of labels (their definition/references can be easily figured out at parse time, no need to do it in `figure_out_scope`).
2013-09-02Better fix for #286Mihai Bazon
2013-09-02Fix parsing `a.case /= 1`Mihai Bazon
Close #286
2013-09-02Fix parsing regexp after unary-prefix operatorMihai Bazon
++/x/.y Fix #284
2013-08-20Move support for `negate_iife` in the compressor, rather than code generatorMihai Bazon
(the code generator doesn't maintain enough context to know whether the return value is important or discarded) Fixes #272
2013-08-18fixes #259: don't unnecessarily quote object properties when --screw-ie8Michael Ficarra
2013-08-07Don't drop unused setter argument.Mihai Bazon
Fix #257
2013-08-04Don't pretend to evaluate lambdasMihai Bazon
Fix #255
2013-07-25Reverting "added option for dropping unused params"Mihai Bazon
Revert "added option for dropping unused params" (turns out we already had the `unused` option for this.) This reverts commit e54df2226f7f3887d2f850cea8caf5c0353dce00.
2013-07-25added option for dropping unused paramsDusan Bartos
2013-07-18Fix output for arrays whose last element is a hole: [1,,]David Glasser
1529ab96 started to do this (by considering holes to be separate from "undefined") but it still converted [1,,] (length 2, last element hole, trailing comma) to [1,] (length 1, trailing comma) Unfortunately the test suite doesn't really make this clear: the new test here passes with or without this patch because run-tests.js beautifys the expected output (in "make_code"), which does the incorrect transformation! If you make some manual change to arrays.js to make the test fail and see the INPUT and OUTPUT, then you can see that without this fix, [1,,] -> [1,], and with this fix it stays [1,,].
2013-07-15Revert previous patch, it was no good.Mihai Bazon
2013-07-15Add "position" option to parser, to specify initial pos/line/colMihai Bazon
(for parsing embedded scripts)
2013-07-14Apply transformer to AST_VarDef's nameMihai Bazon
Fix #237