aboutsummaryrefslogtreecommitdiff
path: root/lib/output.js
AgeCommit message (Collapse)Author
2016-11-29Do not overwrite options.comments + cleanupAnthony Van de Gejuchte
2016-10-23Don't filter shebangs when using the 'some' comment filterAnthony Van de Gejuchte
Also clarify documentation a bit more about using regexp as filter
2016-10-06Remove console.log and add extra test caseRichard van Velzen
2016-10-06Add an option to wrap IIFEs in parenthesisRichard van Velzen
For #1307.
2016-09-06Make all comment options in cli available in js apiAnthony Van de Gejuchte
Also removing more code within "loop" while at it.
2016-08-17Fix negate_iife transform to return a correct tree for nested IIFEsRichard van Velzen
Fix for #1256, partially reverts d854523783b4
2016-08-17Fix negate_iife regression #1254kzc
2016-08-14Fix unneeded parens around unary args in new expression.kzc
2016-06-30Enable --screw-ie8 by default.kzc
catch identifier is mangled correctly for ES5 standards-compliant JS engines by default. Unconditionally use the ie8 if/do-while workaround whether or not --screw-ie8 is enabled. To support non-standard ie8 javascript use: uglifyjs --support-ie8
2016-06-20Keep master in sync with harmonyAnthony Van de Gejuchte
* Do not mangle when no mangle is required * Improve use_asm reset while printing code
2016-06-19Respect quote style in object literalsShrey Banga
The option added in fbbaa42ee55a7f753f7cab9b1a905ccf73cf26d5 wasn't being respected inside object literals, so quoted property names would still be stripped out with this option. This is mostly a corner-case, but useful when the output is passed to something like the Closure compiler, where quoted property names can be used to prevent mangling.
2016-06-19Don't mix strings with directives in outputAnthony Van de Gejuchte
* Don't interpret strings with escaped content as directive * Don't interpret strings after empty statement as directive * Adapt output to prevent strings being represent as directive * Introduce UGLIFY_DEBUG to allow internal testing like EXPECT_DIRECTIVE
2016-06-12Re-add parens after new expression in beautify modeAnthony Van de Gejuchte
2016-06-12Stop dropping args in new expressionsAnthony Van de Gejuchte
2016-06-12Escape null characters as \0 unless followed by 0-7.David Bau
2016-06-08Fix uglify attempting to rewrite invalid new expressionsAnthony Van de Gejuchte
2016-05-04Retain comments before AST_Constants during mangle.kzc
2016-03-24Escape all ASCII control characters within strings when using ascii_only.kzc
Fixes #1017. Tab characters within strings are now output as `\t` in all output modes.
2016-03-14Fix: Uglified Number.prototype functions on big numbersphilippsimon
2016-01-19Add some tests for comment-filters through apiAnthony Van de Gejuchte
Also never bother comment options to filter comment5/shebang comments as they have their custom filter.
2015-11-12Fix output for "use asm" code from SpiderMonkey ASTMihai Bazon
(will only work properly if the SM tree contains "raw" properties for Literal number nodes)
2015-11-11Rework has_directiveMihai Bazon
It's now available during tree walking, i.e. walker.has_directive("use asm"), rather than as part of the scope. It's thus no longer necessary to call `figure_out_scope` before codegen. Added special bits in the code generator to overcome the fact that it doesn't inherit from TreeWalker. Fix #861
2015-10-28Allow specification beautify options in testsRichard van Velzen
Caught an error in #847 as well - `output` wasn't passed anywhere which led to an exception. `options` was available though.
2015-10-27fixes #845: \v escaping should be restricted to "screw_ie8" modeMichael Ficarra
2015-10-20Fix #836Fábio Santos
2015-10-15Make_string was missing \v and wasnt reversing vertical tabs even though ↵startswithaj
read_escaped_char coverts them
2015-10-13Fix other operator output related to <!-- or -->kzc
2015-10-12Only encode <!-- and --> in strings when inline_scriptMihai Bazon
2015-10-12Output `-- >` instead of `-->` in expressions. Escape `<!--` and `-->` ↵kzc
within string literals.
2015-10-07Fix 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-07Add 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-06Implement shebang supportAnthony Van de Gejuchte
2015-07-30Fix semicolon printing when restricting max line lengthRichard van Velzen
Fixes #755
2015-05-04Fix 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-01-27Add option to preserve/enforce string quote styleMihai Bazon
`-q 0` (default) use single or double quotes such as to minimize the number of bytes (prefers double quotes when both will do); this is the previous behavior. `-q 1` -- always use single quotes `-q 2` -- always use double quotes `-q 3` or just `-q` -- always use the original quotes. Related codegen option: `quote_style`. Close #495 Close #460 Some `yargs` guru please tell me why `uglifyjs --help` doesn't display the help string for `-q` / `--quotes`, and why it doesn't output the expected argument types anymore, like good old `optimist` did.
2015-01-26Keep single line comments after nlb, after nlbAnthony Van de Gejuchte
Fixes #583
2015-01-04Fix #556Richard van Velzen
`\uFEFF` (ZERO WIDTH NO-BREAK SPACE) is removed when parsing, but was un-escaped for the output when `ascii_only` was false. When using UglifyJS multiple times (creating packages from minified sources, for example), this would lead to problems because the byte was removed when parsing for the second time.
2015-01-04Merge pull request #592 from micschro/patch-1Richard van Velzen
Fix max_line_len not working for JSON files
2014-12-31Fix #597Richard van Velzen
NaN and Infinity were replaced in the output generation, instead of during compression. This could lead to results where `1/0` was inserted without parens leading to invalid output. The nodes are replaced in the compression step now, and the output generation returns their regular names. This should not be a problem, since they're already only constructed from the original name.
2014-12-17Fix max_line_len not working for JSON filesmicschro
As `maybe_newline()` is only called when `might_need_semicolon` is `true`, the `max_line_len` option has no effect for files without (or with very few) semicolons (like JSON files). A simple for this problem is to use `maybe_newline()` instead of `noop` as the `newline()` function in non-beautify mode.
2014-07-18Fix parens for AST_UndefinedMihai Bazon
Do the same as for AST_Unary, since we output undefined as `void 0`. Reported at https://github.com/mishoo/UglifyJS2/issues/338#issuecomment-48858341
2014-07-01Check for the case an AST_For's init is an EmptyStatementMihai Bazon
(lame fix for #503)
2014-04-27Actually, even better. #475Mihai Bazon
- also handle x = + ++y, x = - --y; - don't use parens, a space suffices.
2014-04-27Better fix for #475Mihai Bazon
2014-04-27Fix parens in +(+x). Close #475Mihai Bazon
2014-01-26Merge branch 'master' of github.com:mishoo/UglifyJS2Mihai Bazon
2014-01-26Move unescaping regexps under a codegen option (`unescape_regexps`)Mihai Bazon
2014-01-25Don't unescape \x00 in regexes (it breaks IE8)Daniel Stutzman
2014-01-21More chars that cannot be unescaped in regexps.Mihai Bazon
2014-01-19Don't unescape byte order marks in regexpsVille Lautanala