Age | Commit message (Expand) | Author |
2017-11-25 | fix argument/atom collision by `properties` (#2514)...fixes #2513 | Alex Lam S.L |
2017-11-11 | implement compress option `reduce_funcs` (#2466)...- inline single-use function declarations as expressions when permissible
- depend on `reduce_vars`
- enabled by default
- disable for speed critical code
fixes #2464 | Alex Lam S.L |
2017-10-30 | compress `new` `function` containing `this` (#2417) | Alex Lam S.L |
2017-10-29 | enhance `properties` (#2412)...- trim array items only if `side_effects`
- extend to non-identifier properties | Alex Lam S.L |
2017-10-22 | safer `properties` transform (#2391)...`{ a: x, b: y }.a` => `[ x, y ][0]`
- `x` cannot be function containing `this`
`[ x, y, z ][1]` => `(x, z, y)`
- only if `z` is side-effect-free | Alex Lam S.L |
2017-10-22 | fix `unsafe` expansion of object literals (#2390) | Alex Lam S.L |
2017-10-22 | fix `unsafe` evaluation of `AST_Sub` (#2389) | Alex Lam S.L |
2017-10-22 | fix `unsafe` evaluation of objects (#2388) | Alex Lam S.L |
2017-07-29 | improve `mangle.properties` (#2261)...- include dead code when `keep_quoted`
- unify `keep_quoted` & `reserved`
- make `test/run-tests.js` consistent with `minify()`
fixes #2256 | Alex Lam S.L |
2017-07-15 | ensure `ie8` works with mangled properties (#2238)...fixes #2234 | Alex Lam S.L |
2017-07-06 | inline property access of object literal (#2209)...- only if property value is side-effect-free
- guard by `unsafe`
fixes #2208 | Alex Lam S.L |
2017-06-23 | synchronise `mangle.properties` for `minify()` & `test/compress` (#2151) | Alex Lam S.L |
2017-06-03 | add tests for `AST_SymbolAccessor` (#2049) | Alex Lam S.L |
2017-06-01 | fix non-identifier getter/setter name (#2041)...fixes #2040 | 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-01 | improve compression of undefined, NaN & Infinitiy (#1748)...- 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 | Alex Lam S.L |
2017-03-29 | output optimal representations of NaN & Infinity (#1723)...- move these optimisations out from `Compressor` to `OutputStream`
- fixes behaviour inconsistency when running uglified code from global or module levels due to redefinition | Alex Lam S.L |
2017-02-21 | introduce `unsafe_proto`...- `Array.prototype.slice` => `[].slice`
closes #1491
| alexlamsl |
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 |
2016-11-29 | Add --mangle-props-debug and fix --mangle-props=unquoted collision...Patch by @AshleyScirra
Based on: PR #1316
Renamed the CLI debug option to --mangle-props-debug
Fixes: #1321 name collision in --mangle-props=unquoted
| Ashley (Scirra) |
2016-08-14 | Fix --mangle-props and --mangle-props=unquoted...Fixes: #1247
Fix --mangle-props and --name-cache inconsistency.
AST_Dot and AST_Sub properties are now mangled by --mangle-props
without regard to being used in an assignment statement.
Note: if --mangle-props is used then *all* javascript files used must
be uglified with the same mangle options.
Fix the ignore_quoted=true mangle option, also known as
`--mangle-props=unquoted`. If a given property is quoted anywhere
it will not be mangled in any quoted or non-quoted context.
| kzc |
2016-08-14 | Additional object literal property tests | 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-06-19 | Respect quote style in object literals...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.
| Shrey Banga |
2014-07-01 | Evaluate "foo".length ==> 3 | Dan Wolff |
2014-04-18 | Update tests. | Mihai Bazon |
2013-05-14 | Fix a["1_1"]...Close #204
| Mihai Bazon |
2013-05-08 | add a test for zero-length string in is_identifier_string, which is used in p... | Trey Griffith |
2013-05-06 | Added test scenario with unicode in properties name....Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-05-05 | Added scenario in test case where properties shouldn't be accessed with...dotted syntax even with screw_ie8 option.
Signed-off-by: Justin Lau <justin@tclau.com>
| Justin Lau |
2013-04-20 | fixes #189: use dotted member access when --screw-ie8 option given | Michael Ficarra |
2012-08-22 | wrote more of the compressor and added some tests | Mihai Bazon |