aboutsummaryrefslogtreecommitdiff
path: root/test/compress/loops.js
AgeCommit message (Collapse)Author
2017-12-01improve `AST_For.init` & `AST_Switch.expression` compression (#2546)Alex Lam S.L
2017-12-01improve compression of loop conditions (#2543)Alex Lam S.L
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-05-12remove support for `const` (#1910)Alex Lam S.L
As this is not part of ES5.
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-04optimise `do{...}while(false)` (#1785)Alex Lam S.L
- better heuristics to avoid issues like #1532 - fix `TreeWalker.loopcontrol_target()` - `continue` cannot refer to `switch` blocks
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-19make `expect_stdout` work on Node.js 0.12 (#1623)Alex Lam S.L
That particular version of Node.js has messed up error messages, so provide a version-specific workaround. Also fixed an formatting issue which would cause `expect_stdout` to fail if error message contains excerpts of input. Apply `expect_stdout` to more applicable tests.
2017-03-10support multi-line string in tests (#1590)Alex Lam S.L
`expect_exact` sometimes have multiple lines and `\n` are hard to read. Use array of strings to emulate line breaks and improve readability.
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-03disable do{...}while(false) optimisation (#1534)Alex Lam S.L
- fails to handle `break` in body fixes #1532
2017-02-21tweak do-while loopsalexlamsl
- `do{...}while(false)` => `{...}` - clean up `AST_While` logic closes #1452
2016-07-15Keep const in own scope while compressingAnthony Van de Gejuchte
- Fixes #1205 - Fix provided by @kzc
2015-12-18Disable loop optimization for parse-only testsAnthony Van de Gejuchte
2015-12-18Add testsAnthony Van de Gejuchte
2012-11-08optimization for if/break as first statement in a loop bodyMihai Bazon
for(...; x; ...) if (y) break; → for(...; x&&!y; ...); similarly for `while` and some combinations (i.e. the `break` appears in the `else` clause, etc.)