Age | Commit message (Expand) | Author |
2017-06-06 | implement `test/jetstream.js --debug` (#2058) | Alex Lam S.L |
2017-06-06 | implement function inlining (#2053)...- empty body
- single `AST_Return`
- single `AST_SimpleStatement`
- avoid `/*#__PURE__*/`
Miscellaneous
- enhance single-use function substitution
fixes #281 | Alex Lam S.L |
2017-06-06 | workaround webkit parsing error (#2056)...apply `webkit` to jetstream tests | Alex Lam S.L |
2017-05-28 | improve CLI usability (#2016)...Report supported options upon invalid option syntax.
fixes #1883 | Alex Lam S.L |
2017-05-23 | fix source map offset (#1993)...Account for whitespace insertions.
fixes #505
fixes #890 | Alex Lam S.L |
2017-05-22 | improve usability of `global_defs` in `minify()` (#1987)...Use `@key` to `parse()` string value as `AST_Node`.
fixes #1986 | Alex Lam S.L |
2017-05-20 | enhance `if_return` to handle `return void...` (#1977)...fixes #512 | Alex Lam S.L |
2017-05-15 | improve keyword-related parser errors (#1941)...fixes #1937 | Alex Lam S.L |
2017-05-15 | fix & improve coverage of `estree` (#1935)...- fix `estree` conversion of getter/setter
- fix non-directive literal in `to_mozilla_ast()`
- revamp `test/mozilla-ast.js`
- reuse `test/ufuzz.js` for code generation
- use `acorn.parse()` for creating `estree`
- extend `test/ufuzz.js` for `acorn` workaround
- catch variable redefinition
- non-trivial literal as directive
- adjust options for tolerance
Miscellaneous
- optional semi-colon when parsing directives
fixes #1914
closes #1915 | Alex Lam S.L |
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-10 | extend test timeout...Travis has gone a lot slower recently, and most test failures are due to time-out on this particular test. | Alex Lam S.L |
2017-05-09 | print error stack in CLI (#1890) | Alex Lam S.L |
2017-05-08 | return `Error` from `minify()` (#1880)...Have `minify()` return `Error` in `result.error` rather than throwing it. | 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-05-08 | deprecate low level API (#1877)...fixes #1872 | Alex Lam S.L |
2017-04-23 | improve parser under "use strict" (#1836)...- `const` without value
- `delete` of expression
- redefining `arguments` or `eval`
extend `test/ufuzz.js`
- optionally generate "use strict"
- improve handling of test cases with syntax errors
- group IIFE generation
- generate bare anonymous functions
- workaround `console.log()` for `new function()`
- generate expressions with `this`
fixes #1810 | Alex Lam S.L |
2017-04-19 | fix parser bugs & CLI reporting (#1827)...fixes #1825 | 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 | fix missing preamble when shebang is absent (#1742) | Alex Lam S.L |
2017-03-29 | remove UGLIFY_DEBUG (#1720)...fixes #1719 | Alex Lam S.L |
2017-03-24 | improve error marker placement (#1644)...For AST_UnaryPrefix, points to the operator rather than end of expression. | Alex Lam S.L |
2017-03-24 | fix expect_stdout (#1642)...`compress()` may modify input ASTs
add tests for #1627 & #1640 | Alex Lam S.L |
2017-03-24 | improve collapsible value detection (#1638)...- #1634 bars variables with cross-scope references in between to collapse
- but if assigned value is side-effect-free, no states can be modified, so it is safe to move | Alex Lam S.L |
2017-03-23 | account for cross-scope modifications in `collapse_vars` (#1634)...mostly done by @kzc
fixes #1631 | Alex Lam S.L |
2017-03-23 | fix a bug in simple_glob (#1632)...- "?" should not match "/"
- other minor clean-ups | Alex Lam S.L |
2017-03-16 | make `collapse_vars` consistent with `toplevel` (#1608)...fixes #1605 | Alex Lam S.L |
2017-03-10 | fixup for #1585 (#1589)...As patched on `harmony`, `statement()` is the only user of `embed_tokens()` with a missing error branch.
Updated test case and match up with `harmony` to facilitate future merging. | Alex Lam S.L |
2017-03-10 | Correctly raise a parse exception with a missing loop body (#1585) | Michael Mior |
2017-03-08 | only run benchmark & jetstream on CI (#1571) | Alex Lam S.L |
2017-03-07 | include benchmark.js in test suite (#1564)...- report file sizes and overall run time
- exit with non-zero code upon error | 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 | fix handling of shebang and preamble (#1545)...fixes #1332 | Alex Lam S.L |
2017-03-02 | optimize trivial IIFEs returning constants (#1530) | kzc |
2017-03-01 | invert `reduce_vars` tracking flag (#1519)...Modules like webpack and grunt-contrib-uglify still uses `ast.transform(compressor)` before `Compressor.compress(ast)` was introduced.
Workaround this compatibility issue by deactivating `reduce_vars` in such case.
Also fix use case with omitted `options` when calling `Compressor()`.
fixes #1516 | Alex Lam S.L |
2017-02-28 | warn & drop `#__PURE__` iff IIFE is dropped (#1511)...- consolidate `side-effects` optimisations
- improve string `+` optimisation
- enhance literal & `conditionals` optimisations | Alex Lam S.L |
2017-02-27 | improve error messages (#1506)...- better inheritance of `Error` sub-classes
- mark parse error against source in CLI
closes #235
closes #348
closes #524
closes #1356
closes #1405 | 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-25 | allow --in-source-map inline (#1490)...- limited to one input file (or `stdin`)
- only works with built-in parser
fixes #520 | Alex Lam S.L |
2017-02-21 | Support marking a call as pure...A function call or IIFE with an immediately preceding comment
containing `@__PURE__` or `#__PURE__` is deemed to be a
side-effect-free pure function call and can potentially be
dropped.
Depends on `side_effects` option.
`[#@]__PURE__` hint will be removed from comment when pure
call is dropped.
fixes #1261
closes #1448
| kzc |
2017-02-21 | Fix: AST_Accessor missing start / end tokens...fixes #1492
closes #1493
| Ondřej Španěl |
2017-02-21 | remove extraneous spaces between ++/+/--/-...fixes #1377
closes #1488
| alexlamsl |
2017-02-21 | improve `--beautify bracketize`...reduce whitespaces from if-else statements
fixes #1482
closes #1483
| 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-18 | Improve optimizing `function() { if(c){return foo} bar();}`...closes #1437
| Anthony Van de Gejuchte |
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 |
2016-11-29 | Generate source map data from normalized files...If using `inSourceMap` this fix will ensure the copying of `sourcesContent` is based on potentially normalized `sources` values (https://github.com/mozilla/source-map/blob/master/lib/source-map-consumer.js#L304-L309).
For example `normalize` (https://github.com/mozilla/source-map/blob/master/lib/util.js#L80-L123) will rewrite `./dist/mySource.js` to `dist/mySource.js` in the target `_sources` of the `SourceMapConsumer`. As a result `orig_map.sourceContentFor(source, true);` would return `null` since the orginal `source` was no longer available in the consumer. By using the keys generating from the `SourceMapConsumer.constructor` consistency is ensured.
| Martijn Swaagman |
2016-11-29 | feat: add option.outFileName for JS API, if absense, sourceMap.file field wil... | 1111hui |
2016-11-29 | Do not overwrite options.comments + cleanup | Anthony Van de Gejuchte |
2016-10-27 | Pass mangle options to figure_out_scope before mangling in tests | Anthony Van de Gejuchte |