Age | Commit message (Expand) | Author |
2017-05-14 | fix bugs with getter/setter (#1926)...- `reduce_vars`
- `side_effects`
- property access for object
- `AST_SymbolAccessor` as key names
enhance `test/ufuzz.js`
- add object getter & setter
- property assignment to setter
- avoid infinite recursion in setter
- fix & adjust assignment operators
- 50% `=`
- 25% `+=`
- 2.5% each for the rest
- avoid "Invalid array length"
- fix `console.log()`
- bypass getter
- curb recursive reference
- deprecate `-E`, always report runtime errors | Alex Lam S.L |
2017-05-12 | remove support for `const` (#1910)...As this is not part of ES5. | Alex Lam S.L |
2017-04-17 | compress duplicated variable definitions (#1817)...These are surprisingly common, as people reuse the same variable name within loops or switch branches. | Alex Lam S.L |
2017-04-15 | unify CLI & API under `minify()` (#1811)...- 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 | Alex Lam S.L |
2017-03-31 | sort options in alphabetical order (#1743)...They started off as functional groups I guess, but given the sheer number of options this is becoming too difficult to read. | Alex Lam S.L |
2017-03-31 | fix catch symbol mangling (#1734)...Only need to look up the immediate non-block/catch scope for the same-name special case.
fixes #1733 | Alex Lam S.L |
2017-03-28 | handle var within catch of the same name (#1711)...The following code prints `1`:
var a = 1;
!function(){
a = 4;
try{
throw 2;
} catch (a) {
var a = 3;
}
}();
console.log(a);
fixes #1708 | Alex Lam S.L |
2017-03-28 | fix mangle for variable declared within catch block (#1706)...fixes #1704 | Alex Lam S.L |
2017-03-27 | handle overlapped variable definitions (#1691)...Process variable definitions with or without assigned values against:
- `arguments`
- named function arguments
- multiple definitions within same scope
Essentially demote variable declarations with no value assignments.
Also fixed invalid use of `AST_VarDef` over `arguments` - should use a member of `AST_SymbolDeclaration` instead. | Alex Lam S.L |
2017-03-10 | fix catch variable reference in IE8 (#1587)...`AST_Scope.def_variable()` will overwrite `AST_Symbol.thedef`, so save a copy before calling.
fixes #1586 | Alex Lam S.L |
2017-03-05 | handle variable declaration within catch blocks (#1546)...accounts for IE8- scoping | Alex Lam S.L |
2017-03-05 | stay safe with constants in IE8- (#1547)...- `undefined` etc. can be redefined at top-level for IE8-, so disable related optimisations
- fixed `--support-ie8` catch mangle bug | Alex Lam S.L |
2017-02-26 | consolidate `evaluate` & `reduce_vars` (#1505)...- improve marking efficiency
- apply smarter `const` replacement to `var`
fixes #1501 | Alex Lam S.L |
2017-02-24 | enable `collapse_vars` & `reduce_vars` by default...- fix corner cases in `const` optimisation
- deprecate `/*@const*/`
fixes #1497
closes #1498
| alexlamsl |
2017-02-21 | enhance `global_defs`...- support arrays, objects & AST_Node
- support `"a.b":1` on both cli & API
- emit warning if variable is modified
- override top-level variables
fixes #1416
closes #1198
closes #1469
| alexlamsl |
2017-02-21 | improve reduce_vars and fix a bug...- update modified flag between compress() passes
- support IIFE arguments
- fix corner case with multiple definitions
closes #1473
| alexlamsl |
2017-02-18 | fix corner case in keep_fnames...happens when inner function:
- just below top level
- not referenced
- `unused` is disabled
closes #1445
| alexlamsl |
2017-02-18 | remove unused AST_Scope.nesting & AST_SymbolRef.frame...they are computed but never used
closes #1444
| alexlamsl |
2017-01-26 | fix mangling collision with keep_fnames (#1431)...* fix mangling collision with keep_fnames
fixes #1423
* pass mangle options to figure_out_scope()
bring command-line in line with minify()
| Alex Lam S.L |
2017-01-26 | augment evaluate to extract within objects (#1425)...- gated by `unsafe`
- replaces previous optimisation specific to String.length
- "123"[0] => 1
- [1, 2, 3][0] => 1
- [1, 2, 3].length => 3
- does not apply to objects with overridden prototype functions | Alex Lam S.L |
2017-01-19 | add missing LHS cases which global_defs should avoid | alexlamsl |
2016-10-23 | fix uses_arguments handling (broken since 6605d1578351)...Using the symbol declaration tracking of UglifyJS doesn't make sense here
anyway, `arguments` always comes from something in the current scope.
fixes #1299
| Jann Horn |
2016-10-01 | Optimize unmodified variables | alexlamsl |
2016-07-15 | Fix mangle with option keep_fnames=true for Safari....Fixes: #1202
| kzc |
2016-06-30 | Enable --screw-ie8 by default....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
| kzc |
2016-03-28 | Speedup `unused` compress option for already minified code...Fixes: #321 #917 #1022
| kzc |
2016-02-27 | #877 Ignore mangle sort option | kzc |
2016-02-17 | preserve ThisBinding for side_effects | alexlamsl |
2016-01-27 | Add start/end in the `arguments` definition...(keeps my https://github.com/mishoo/jsinfo.el working)
| Mihai Bazon |
2016-01-20 | Tighten up @const regex. | Samuel Reed |
2016-01-20 | Simplify by skipping extra tree walk. | Samuel Reed |
2016-01-20 | Use TreeWalker for more accurate @const results and update tests | Samuel Reed |
2016-01-19 | Mark vars with /** @const */ pragma as consts so they can be eliminated....Fixes older browser support for consts and allows more flexibility
in dead code removal.
| Samuel Reed |
2016-01-14 | Never mangle arguments and keep them in their scope...Fixes #892
Helped-by: kzc
| Anthony Van de Gejuchte |
2015-11-12 | Build label def/refs info when figuring out scope...Fix #862
| Mihai Bazon |
2015-11-11 | Rework has_directive...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
| Mihai Bazon |
2015-10-07 | Add proper support for "use asm"; blocks. Disable -c optimization within "use... | kzc |
2015-03-16 | rename --prop-cache to --name-cache...... and support storing there variable names as well, to help with multiple
invocations when mangling toplevel.
| Mihai Bazon |
2015-01-04 | Add an option to prevent function names from being mangled...See #552. This is mostly useful for having the actual function names in traces.
| Richard van Velzen |
2014-12-01 | fix base54 | Cheng Liangyu |
2014-09-12 | Don't warn for an unreferenced exception symbol in a catch block. | Arnavion |
2014-02-14 | Mangle name of exception when --screw-ie8. Fix #430....The effect of not mangling it was visible only with --screw-ie8 (otherwise
the names would be mangled exactly because they leaked into the parent
scope).
| Mihai Bazon |
2013-12-16 | minor | Mihai Bazon |
2013-12-16 | bugfix #242 | colorhook |
2013-12-05 | AST_Catch shouldn't really inherit from AST_Scope. Fix #363...I hereby acknowledge that figure_out_scope has become a mess.
| Mihai Bazon |
2013-11-28 | Properly scope `catch` identifier when --screw-ie8...Fix #344
| Mihai Bazon |
2013-10-29 | Fix typo | Mihai Bazon |
2013-10-29 | Avoid shadowing name of function expression with function argument...Close #179, #326, #327
| Mihai Bazon |
2013-10-17 | `arguments` outside of a function is an ordinary variable....Fix #501
| Mihai Bazon |
2013-09-02 | Disallow `continue` referring to a non-IterationStatement. Fix #287...Simplifies handling of labels (their definition/references can be easily
figured out at parse time, no need to do it in `figure_out_scope`).
| Mihai Bazon |