Age | Commit message (Expand) | Author |
---|---|---|
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-06-04 | fix `AST_Function` scope invariance (#2052)...improve function name hack in `run_code()` | 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-06-01 | whitelist `unsafe` `evaluate` candidates (#2039)...- all arguments may accept constant values - return constant value - free of side effects - available & identical across locales and runtime environments | Alex Lam S.L |
2017-06-01 | enhance `unsafe` `evaluate` (#2037) | Alex Lam S.L |
2017-05-31 | introduce `unsafe_Func` (#2033)...Separate flag for #203 functionality. | Alex Lam S.L |
2017-05-29 | better fix for #512 & #2010 (#2019)...- remove duplicated functionalities - fix similar issue with `else` | Alex Lam S.L |
2017-05-27 | extend `node_version` range on applicable tests (#2015) | Alex Lam S.L |
2017-05-27 | fix `hoist_funs` on block-scoped `function` under "use strict" (#2013)...Technically not part of ES5, but commonly used code exists in the wild. | Alex Lam S.L |
2017-05-27 | fix `if_return` on `AST_Defun` (#2010)...Previous fiix for #1052 perturbs declaration order of functions which leads to incorrect behaviour under "use strict". | Alex Lam S.L |
2017-05-26 | fix `dead_code` on block-scoped `function` under "use strict" (#2006)...Technically not part of ES5, but commonly used code exists in the wild. | 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-19 | introduce `unsafe_regexp` (#1970)...fixes #1964 | Alex Lam S.L |
2017-05-18 | make `expect_stdout` node version specific (#1963)...... via semver string on `node_version` label. | Alex Lam S.L |
2017-05-17 | improve `RegExp` handling (#1959)...- remove `options.output.unescape_regexps` - preserve original pattern whenever possible fixes #54 fixes #1929 | Alex Lam S.L |
2017-05-16 | fix parsing of property access after new line (#1944)...Account for comments when detecting property access in `tokenizer`. fixes #1943 | 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-12 | avoid `arguments` and `eval` in `reduce_vars` (#1924)...fixes #1922 | Alex Lam S.L |
2017-05-12 | fix invalid transform on `const` (#1919)...- preserve (re)assignment to `const` for runtime error - suppress `cascade` on `const`, as runtime behaviour is ill-defined | Alex Lam S.L |
2017-05-07 | fix test for #1865 (#1873) | Alex Lam S.L |
2017-05-06 | fix `unsafe` on `evaluate` of `reduce_vars` (#1870)...Determine if variables with non-constant values can escape and be modified. fixes #1865 | Alex Lam S.L |
2017-05-06 | enhance `collapse_vars` (#1862)...- extend expression types - `a++` - `a=x;` - extend scan range - `for(init;;);` - `switch(expr){case expr:}` - `a = x; a = a || y;` - terminate upon `debugger;` closes #1821 fixes #27 fixes #315 fixes #1858 | Alex Lam S.L |
2017-05-02 | improve literal return optimization (#1860) | kzc |
2017-04-30 | enforce `toplevel` on other compress options (#1855)...Respect "funcs" and "vars" properly. fixes #1850 | Alex Lam S.L |
2017-04-24 | fix `unused` on for-in statements (#1843)...Only need to avoid `var` within the initialisation block. fixes #1841 | Alex Lam S.L |
2017-04-23 | fix `AST_For.init` patch-up in `drop_unused()` (#1839)...fixes #1838 | 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-20 | improve `unused` (#1832)...- extract leading value with side-effects out of `var` statement - reduce scanning of `AST_Definitions` from 3 passes to just once | Alex Lam S.L |
2017-04-20 | fix `unused` on labeled for-loop (#1831)...fixes #1830 | Alex Lam S.L |
2017-04-19 | improve `collapse_vars` on `AST_Var` (#1828)...Perform the same cascaded scanning within `var` statement as we do on array of statements. | Alex Lam S.L |
2017-04-19 | extend `cascade` into `a.b` (#1829)...fixes #27 | Alex Lam S.L |
2017-04-18 | clean up `collapse_vars` (#1826)...- remove overlap in functionality of singular, consecutive reference of constant value - remove workarounds for previous bugs in `lib/scope.js` - distribute recursive `collapse_single_use_vars()` calls to their respective `OPT(AST_Node)` - enable collapsing of variables within a single `AST_Definitions` | Alex Lam S.L |
2017-04-18 | support safe reassignments in `reduce_vars` (#1823)...`var a=1;a=2;x(a)` => `x(2)` fix pre-existing issues - reference counting on assignment - walking of anonymous functions - chained assignment | Alex Lam S.L |
2017-04-18 | fix `reduce_vars` on conditionals (#1822) | Alex Lam S.L |
2017-04-17 | fix `reduce_vars` on boolean binary expressions (#1819)...Side effects of `&&` and `||` have not mattered until #1814, which takes assignment expressions into account. | 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-17 | fix `reduce_vars` within try-block (#1818)...Possible partial execution due to exceptions. | 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-16 | fix variable substitution (#1816)...- let `collapse_vars` take care of value containing any symbols - improve overhead accounting | 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-15 | drop `angular` (#1812)...Remove support for `@ngInject` as there are proper alternatives anyway. | 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-09 | fix LHS cases for NaN & friends (#1804)...`Infinity = beyond` should not become `1/0 = beyond` | Alex Lam S.L |
2017-04-08 | fix a couple of bugs in `global_defs` (#1802)...- `optimize()` substituted expression - compute nested property string correctly fixes #1801 Miscellaneous - reset optimisation flags on all node types | Alex Lam S.L |
2017-04-08 | fix `delete` corner cases (#1799)...- assignment - boolean - conditional - sequence | Alex Lam S.L |
2017-04-07 | fix `pure_getters` for chained property access (#1798) | Alex Lam S.L |