Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-10-13 | Fix other operator output related to <!-- or --> | kzc | |
2015-10-12 | Only encode <!-- and --> in strings when inline_script | Mihai Bazon | |
2015-10-12 | Output `-- >` instead of `-->` in expressions. Escape `<!--` and `-->` ↵ | kzc | |
within string literals. | |||
2015-10-07 | Fix handling of "use asm" when no command line flags are passed to uglifyjs. ↵ | kzc | |
SCOPE_IS_NEEDED is unconditionally true now. Refactored floating point literal parsing to be more in keeping with the AST class design. | |||
2015-10-07 | Add proper support for "use asm"; blocks. Disable -c optimization within ↵ | kzc | |
"use asm"; sections and preserve floating point literals in their original form. Non-asm.js sections are optimized as before. Asm.js sections can still be mangled and minified of whitespace. No special command line flags are required. | |||
2015-10-06 | Implement shebang support | Anthony Van de Gejuchte | |
2015-09-24 | Fix mozilla-ast after module loading changes | Mihai Bazon | |
Need to explicitly qualify stuff now, since it's not evaluated in some global scope. Ref #636 | |||
2015-09-24 | No longer use `vm` to load code. | Mihai Bazon | |
Improves performance 2x on node > 0.10. Ref #636 | |||
2015-09-24 | Fix wrap_commonjs to include code first | Mihai Bazon | |
(code could have directives, i.e. "use strict") | |||
2015-09-14 | Control keeping function arguments with a single option | Ville Lautanala | |
2015-08-27 | Fix bad parsing of `new new x()()` constructs | Richard van Velzen | |
Fixes #739 | |||
2015-08-25 | Don't change sequences that influence lexical binding in calls | Richard van Velzen | |
Fixes #782 | |||
2015-08-10 | [Fix] --define replaces SymbolRefs in LHS of assignments | Christopher Chedeau | |
See #208 for context | |||
2015-08-05 | Fix mangling of property names which overwrite unmangleable properties | Richard van Velzen | |
Fixes #747. | |||
2015-07-30 | Fix semicolon printing when restricting max line length | Richard van Velzen | |
Fixes #755 | |||
2015-07-29 | Re-use the caught exception's error message in the parse error call. | Chris Cowan | |
2015-07-29 | Give a good error message if an invalid regular expression is found. | Chris Cowan | |
2015-07-29 | Advanced way to specify if a function call might have side effects. #400 | thorn0 | |
2015-07-22 | Don't attempt to negate non-boolean AST_Binary | Mihai Bazon | |
Fix #751 | |||
2015-07-20 | Merge pull request #735 from kzc/master | Mihai Bazon | |
optimizations for && and || where left side is constant expression | |||
2015-06-30 | Don't drop parens in a * (b * c). Close #744 | Mihai Bazon | |
2015-06-14 | operator && and || optimization: add "else" before "if" as intended | kzc | |
2015-06-11 | optimizations for && and || where left side is constant expression | kzc | |
2015-06-09 | Add --mangle-regex option | Joao Carlos | |
2015-05-20 | Treat \uFEFF as whitespace. | Mihai Bazon | |
Fix #714 | |||
2015-05-18 | Fix compressing conditionals | Mihai Bazon | |
Only transform foo() ? EXP(x) : EXP(y) into EXP(foo() ? x : y) if EXP has no side effects. Fix #710 | |||
2015-05-13 | fix again reserved props | Mihai Bazon | |
2015-05-07 | Make reserved names take priority over the name cache | Mihai Bazon | |
2015-05-05 | Only drop the BOM when it's the first character. | Mihai Bazon | |
Close #704 | |||
2015-05-04 | Fix blank lines in the output. | Mihai Bazon | |
The issue was more obvious when max_line_len has a small value, rather than the default 32K characters. A blank line showed up after most statements. | |||
2015-05-04 | Avoid spurious brackets when dropping unused vars | Mihai Bazon | |
Fix #702 | |||
2015-04-23 | Fix parsing strings with literal DOS newlines | Mihai Bazon | |
(should not set newline_before) Fix #693 | |||
2015-04-22 | If name_cache is specified, do rename cached properties | Mihai Bazon | |
(even if --mangle-props is not there) | |||
2015-04-17 | Drop NaN -> 0/0 transformation. | Mihai Bazon | |
Fix #687 | |||
2015-04-13 | Fix compression of conditionals | Mihai Bazon | |
Don't move the condition on the right side of an assignment when the left side may have side effects. Fix #677 | |||
2015-04-10 | Use the `before` visitor in mangle props | Mihai Bazon | |
(works around a bug in our tree walker which, while cloning nodes, breaks references between labeled statements and break/continue labels) | |||
2015-03-29 | Merge branch 'propmangle' | Mihai Bazon | |
2015-03-23 | Fix compressing `![foo()];` as a statement | Mihai Bazon | |
need to check whether the literal has any side effects before replacing that with `false`. | |||
2015-03-22 | [sequencesize] Actually even better: | Mihai Bazon | |
do create the sequence even if the stat list is bigger than 2000 statements, but limit the sequence itself to 2000 expressions. Ref #414 | |||
2015-03-22 | Avoid sequencesize for more than 2000 statements. | Mihai Bazon | |
It hardly saves any bytes for a sequence so long, and it risks blowing the stack with the recursive Seq functions. Ref #414 | |||
2015-03-22 | Add start/end nodes for NaN/Infinity transformations | Mihai Bazon | |
2015-03-20 | Keep unused function arguments by default | Mihai Bazon | |
Discarding unused function arguments affects function.length, which can lead to some hard to debug issues. This optimization is now done only in "unsafe mode". Fix #121 | |||
2015-03-18 | Fix parsing for U+2028 / U+2029 | Mihai Bazon | |
(they should be treated as whitespace) | |||
2015-03-18 | Fix parsing for U+2028 / U+2029 | Mihai Bazon | |
(they should be treated as whitespace) | |||
2015-03-16 | rename --prop-cache to --name-cache | Mihai Bazon | |
... and support storing there variable names as well, to help with multiple invocations when mangling toplevel. | |||
2015-03-16 | Fix prop mangling | Mihai Bazon | |
Even if not “defined”, do mangle if name exists in the cache. | |||
2015-03-14 | Add property name mangler | Mihai Bazon | |
We only touch properties that are present in an object literal, or which are assigned to. Example: x = { foo: 1 }; x.bar = 2; x["baz"] = 3; x[cond ? "qwe" : "asd"] = 4; console.log(x.stuff); The names "foo", "bar", "baz", "qwe" and "asd" will be mangled, and the resulting mangled names will be used for the same properties throughout the code. The "stuff" will not be, since it's just referenced but never assigned to. This *will* break most of the code out there, but could work on carefully written code: do not use eval, do not define methods or properties by walking an array of names, etc. Also, a comprehensive list of exclusions needs to be passed, to avoid mangling properties that are standard in JavaScript, DOM, used in external libraries etc. | |||
2015-02-11 | Add filename to the JS_Parse_Error exception. | Edward Casbon | |
It would be nice to have access to the filename of the file that includes the code that causes a JavaScript error. This is especially handy if uglifying multiple files at once. Only a small change is needed for this to happen as it's already available in the function that throws the error. | |||
2015-02-11 | Fix invalid removal of left side in && and || compression | Richard van Velzen | |
See #637. This does not produce the optimal result, but it does prevent the removal of non-side-effect-free code. | |||
2015-01-31 | Drop all `console` statements properly | Richard van Velzen | |
Because the base reference can be an member expression as well, we have to dig a bit deeper to find the leftmost base reference. Fixes #451 |