aboutsummaryrefslogtreecommitdiff
path: root/lib/output.js
AgeCommit message (Collapse)Author
2017-09-21fix "use asm" numeric output (#2328)kzc
fixes #2324
2017-09-15improve source mapping (#2312)Alex Lam S.L
fixes #2310
2017-08-14don't escape null characters as \0 when followed by any digit (#2273)Erik Desjardins
fixes #2272
2017-07-23unescape surrogate pairs only (#2246)Alex Lam S.L
fixes #2242
2017-07-15ensure `ie8` works with mangled properties (#2238)Alex Lam S.L
fixes #2234
2017-07-11enhance source mapping on IIFEs (#2224)Alex Lam S.L
fixes #2213
2017-07-03improve parenthesis emission (#2196)Alex Lam S.L
- eliminate `throw` usages - suppress extraneous parenthesis - `new function() {foo.bar()}.baz` - `for (function() { "foo" in bar; };;);`
2017-06-23refactor `compute_char_frequency()` (#2152)Alex Lam S.L
- minimise maintenance when updating AST - maximise code sharing between `master` & `harmony`
2017-06-06workaround webkit parsing error (#2056)Alex Lam S.L
apply `webkit` to jetstream tests
2017-06-01fix non-identifier getter/setter name (#2041)Alex Lam S.L
fixes #2040
2017-05-23fix source map offset (#1993)Alex Lam S.L
Account for whitespace insertions. fixes #505 fixes #890
2017-05-17improve `RegExp` handling (#1959)Alex Lam S.L
- remove `options.output.unescape_regexps` - preserve original pattern whenever possible fixes #54 fixes #1929
2017-05-17remove `space_colon` (#1960)Alex Lam S.L
Always emit space after colon when `options.output.beautify` is enabled.
2017-05-12remove support for `const` (#1910)Alex Lam S.L
As this is not part of ES5.
2017-04-22fix label-related bugs (#1835)Alex Lam S.L
- deep cloning of `AST_LabeledStatement` - `L:do{...}while(false)` - empty statement with label within block extend `test/ufuzz.js` - generate labels for blocks & loops - generate for-in statements - skip suspicious option search if `minify()` errs fixes #1833
2017-04-15unify CLI & API under `minify()` (#1811)Alex Lam S.L
- rename `screw_ie8` to `ie8` - rename `mangle.except` to `mangle.reserved` - rename `mangle.properties.ignore_quoted` to `mangle.properties.keep_quoted` - compact `sourceMap` options - more stringent verification on input `options` - toplevel shorthands - `ie8` - `keep_fnames` - `toplevel` - `warnings` - support arrays and unquoted string values on CLI - drop `fromString` from `minify()` - `minify()` no longer handles any `fs` operations - unify order of operations for `mangle_properties()` on CLI & API - `bin/uglifyjs` used to `mangle_properties()` before even `Compressor` - `minify()` used to `mangle_properties()` after `Compressor` but before `mangle_names()` - both will now do `Compressor`, `mangle_names()` then `mangle_properties()` - `options.parse` / `--parse` for parser options beyond `bare_returns` - add `mangle.properties.builtins` to disable built-in reserved list - disable with `--mangle-props builtins` on CLI - `warnings` now off by default - add `--warn` and `--verbose` on CLI - drop `--enclose` - drop `--export-all` - drop `--reserved-file` - use `--mangle reserved` instead - drop `--reserve-domprops` - enabled by default, disable with `--mangle-props domprops` - drop `--prefix` - use `--source-map base` instead - drop `--lint` - remove `bin/extract-props.js` - limit exposure of internal APIs - update documentations closes #96 closes #102 closes #136 closes #166 closes #243 closes #254 closes #261 closes #311 closes #700 closes #748 closes #912 closes #1072 closes #1366 fixes #101 fixes #123 fixes #124 fixes #263 fixes #379 fixes #419 fixes #423 fixes #461 fixes #465 fixes #576 fixes #737 fixes #772 fixes #958 fixes #1036 fixes #1142 fixes #1175 fixes #1220 fixes #1223 fixes #1280 fixes #1359 fixes #1368
2017-04-12convert `AST_Seq` from binary tree to array (#1460)Alex Lam S.L
- rename `AST_Seq` to `AST_Sequence` - raise default sequences_limit from 200 to 800
2017-04-07enable `inline_script` by default (#1793)Alex Lam S.L
2017-04-01improve compression of undefined, NaN & Infinitiy (#1748)Alex Lam S.L
- migrate transformation logic from `OutputStream` to `Compressor` - always turn `undefined` into `void 0` (unless `unsafe`) - always keep `NaN` except when avoiding local variable redefinition - introduce `keep_infinity` to suppress `1/0` transform, except when avoiding local variable redefinition supersedes #1723 fixes #1730
2017-03-31sort options in alphabetical order (#1743)Alex Lam S.L
They started off as functional groups I guess, but given the sheer number of options this is becoming too difficult to read.
2017-03-31fix missing preamble when shebang is absent (#1742)Alex Lam S.L
2017-03-29fix missing parentheses around NaN/Infinity shorthands (#1726)Alex Lam S.L
fixes #1724 fixes #1725
2017-03-29output optimal representations of NaN & Infinity (#1723)Alex Lam S.L
- move these optimisations out from `Compressor` to `OutputStream` - fixes behaviour inconsistency when running uglified code from global or module levels due to redefinition
2017-03-29improve beautified output of switch blocks (#1721)Alex Lam S.L
2017-03-24fix corner case in `AST_For.init` (#1652)Alex Lam S.L
Enforce `null` as value for empty initialisation blocks. fixes #1648
2017-03-08plan B for IE8 do-while semi-colon fix (#1572)Alex Lam S.L
- omitting trailing semi-colon in do-while breaks non-browser parser, e.g. uglify-js 1.x - trailing semi-colon only breaks IE8 if followed by `else` or `while` - always use braces in do-while body to workaround 2nd case with no size loss in compression fixes #1568
2017-03-06suppress semicolons after do/while (#1556)Alex Lam S.L
- unless both `beautify` & `screw-ie8` are enabled - deprecate workaround for if-do-while-else fixes #186
2017-03-05fix handling of shebang and preamble (#1545)Alex Lam S.L
fixes #1332
2017-02-21clean up `max_line_len`alexlamsl
- never exceed specified limit - otherwise warning is shown - enabled only for final output closes #1496
2017-02-21remove extraneous spaces between ++/+/--/-alexlamsl
fixes #1377 closes #1488
2017-02-21improve `--beautify bracketize`alexlamsl
reduce whitespaces from if-else statements fixes #1482 closes #1483
2017-02-21clean up `negate_iife`alexlamsl
- remove extra tree scanning phase for `negate_iife` - `negate_iife` now only deals with the narrowest form, i.e. IIFE sitting directly under `AST_SimpleStatement` - `booleans`, `conditionals` etc. will now take care the rest via more accurate accounting - `a(); void b();` => `a(); b();` fixes #1288 closes #1451
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.