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-05-08 | support dumping AST (#1879)...Re-order `AST_Binary` properties to make dump more readable.
closes #769 | Alex Lam S.L |
2017-04-22 | fix label-related bugs (#1835)...- 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 | Alex Lam S.L |
2017-04-17 | enhance `reduce_vars` (#1814)...- allow immediate assignment after declaration of variable
- relax modification rule for immutable value
- fix order of visit for TreeWalker
- remove extraneous code | 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-04-12 | convert `AST_Seq` from binary tree to array (#1460)...- rename `AST_Seq` to `AST_Sequence`
- raise default sequences_limit from 200 to 800 | Alex Lam S.L |
2017-04-04 | optimise `do{...}while(false)` (#1785)...- better heuristics to avoid issues like #1532
- fix `TreeWalker.loopcontrol_target()`
- `continue` cannot refer to `switch` blocks | Alex Lam S.L |
2017-03-14 | minor clean-ups (#1600)...- remove obsolete optimisation in `AST_Binary` after #1477
- improve `TreeWalker.has_directive()` readability and resilience against multiple visits | Alex Lam S.L |
2017-03-07 | fix deep cloning of labels (#1565)...`AST_Label.references` get `.initialize()` to `[]` every time after `.clone()`
So walk down the tree to pick up the cloned `AST_LoopControl` pieces and put it back together. | Alex Lam S.L |
2017-03-07 | transform function calls to IIFEs (#1560)...- expose function body to call sites for potential optimisations
- suppress substitution of variable used within `AST_Defun` | Alex Lam S.L |
2017-03-05 | handle variable declaration within catch blocks (#1546)...accounts for IE8- scoping | Alex Lam S.L |
2017-02-26 | faster tree transversal (#1462)...- convert `[].forEach()` to for-loops | Alex Lam S.L |
2017-02-24 | Avoid using exports when undefined (#1471)...Makes direct usage within web browser easier, even if officially unsupported. | Ondřej Španěl |
2016-04-12 | Actually limit sequence length....Fix #1038
| Mihai Bazon |
2016-04-07 | Avoid using inherited hasOwnProperty...Fix #1031
| Mihai Bazon |
2015-11-12 | Fix output for "use asm" code from SpiderMonkey AST...(will only work properly if the SM tree contains "raw" properties for
Literal number nodes)
| 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 | Fix handling of "use asm" when no command line flags are passed to uglifyjs. ... | kzc |
2015-09-24 | No longer use `vm` to load code....Improves performance 2x on node > 0.10.
Ref #636
| Mihai Bazon |
2015-09-24 | Fix wrap_commonjs to include code first...(code could have directives, i.e. "use strict")
| Mihai Bazon |
2015-01-27 | Add option to preserve/enforce string quote style...`-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.
| Mihai Bazon |
2015-01-06 | Track ending lines/columns; fix end locations in Mozilla AST. | Ingvar Stepanyan |
2015-01-06 | AST_Do nodes: walk body before condition | Mihai Bazon |
2014-03-22 | Allow colons in the pairs passed to AST_Toplevel.wrap_enclose | Arnavion |
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-30 | Fix parsing setters/getters (allow keywords for name)....The "key" property was always "set" or "get", which didn't make much sense.
Now it'll be the actual name of the setter/getter (AST_Node), and the
AST_Accessor object itself, which represents the function, won't store any
name.
Close #319
| Mihai Bazon |
2013-09-06 | minor | Mihai Bazon |
2013-09-02 | Fix names. | 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 |
2013-06-07 | Don't swap binary ops when "use asm" is in effect....Refs #167
| Mihai Bazon |
2013-03-24 | Add support for enclose option. Closes #139. | Jake Harding |
2013-01-17 | Fix output for arrays containing undefined values....1b6bcca7 was a first attempt at this. That commit made Uglify stop replacing
holes with undefined, but instead it started replacing undefined with
holes. This is slightly problematic, because there is a difference between a
hole and an undefined value. More problematically, it changed [1,undefined] to
[1,] which generally doesn't even parse as a hole (just as a trailing comma), so
it didn't even preserve the length of the array!
Instead, parse holes as their own special AST node which prints invisibly.
| David Glasser |
2012-11-24 | fix #55 | Mihai Bazon |
2012-11-08 | AST_LabelRef no longer inherits from AST_SymbolRef | Mihai Bazon |
2012-11-07 | add AST_Accessor and AST_SymbolAccessor node types...AST_Accessor will represent the function for a setter or getter. Since they
are not mangleable, and they should not introduce a name in scope, we have a
new node for their name (AST_SymbolAccessor) which doesn't inherit from
AST_SymbolDeclaration.
fix #37
| Mihai Bazon |
2012-10-22 | more sequence optimizations (lift some sequences above binary/unary expressio... | Mihai Bazon |
2012-10-18 | more optimizations for some break/continue cases | Mihai Bazon |
2012-10-12 | remove the $self hack...operations are destructive anyway, so there's no point to clone the nodes in
the transformer. speed++
| Mihai Bazon |
2012-10-12 | fix in_boolean_context() (two tests were broken) | Mihai Bazon |
2012-10-11 | cleanup...- use prototype-less objects where feasible (minor speed improvement)
- get rid of HOP
| Mihai Bazon |
2012-10-10 | fix node name | Mihai Bazon |
2012-10-10 | seems cleaner if AST_Label doesn't inherit from AST_SymbolDeclaration | Mihai Bazon |
2012-10-10 | small improvements in wrap_commonjs:...- use MAP.splice instead of a BlockStatement to inject code (avoids some
warnings in the linter)
- use the original symbol in exports, so that we get the proper source mapping
| Mihai Bazon |
2012-10-09 | add AST_Infinity node | Mihai Bazon |
2012-10-09 | added $propdoc to AST nodes and some cleanups...hopefully we can make the AST documentation self-generating
| Mihai Bazon |
2012-10-09 | minor AST cleanup (AST_BlockStatement may inherit from AST_Block) | Mihai Bazon |
2012-10-09 | add `--ast-help`...displays a rather cruel description of the AST classes, derived
directly from the node definitions.
| Mihai Bazon |
2012-10-08 | added --self to easily get a browser-runnable version of UglifyJS | Mihai Bazon |