Age | Commit message (Expand) | Author |
---|---|---|
2017-03-08 | fix function name eliminiation (#1576)...Function expression can be assigned to a variable and be given a name. Ensure function name is the reduced variable before clearing it out. fixes #1573 fixes #1575 | Alex Lam S.L |
2017-03-08 | only run benchmark & jetstream on CI (#1571) | Alex Lam S.L |
2017-03-08 | plan B for IE8 do-while semi-colon fix (#1572)...- omitting trailing semi-colon in do-while breaks non-browser parser, e.g. uglify-js 1.x - trailing semi-colon only breaks IE8 if followed by `else` or `while` - always use braces in do-while body to workaround 2nd case with no size loss in compression fixes #1568 | Alex Lam S.L |
2017-03-08 | fix return from recursive IIFE (#1570)...`side-effects` did not account for IIFEs being able to reference itself thus making its return value potentially significant | Alex Lam S.L |
2017-03-07 | v2.8.8 | 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 | 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-07 | avoid substitution of global variables (#1557)...- unless `toplevel` is enabled - global `const` works as before | Alex Lam S.L |
2017-03-07 | collapse_vars: do not replace a constant in loop condition or init (#1562) | kzc |
2017-03-06 | suppress semicolons after do/while (#1556)...- unless both `beautify` & `screw-ie8` are enabled - deprecate workaround for if-do-while-else fixes #186 | Alex Lam S.L |
2017-03-05 | v2.8.7 | Alex Lam S.L |
2017-03-05 | fixup for #1553 (#1555)...- `++a` is the one that is foldable - transform `a++` into `++a` for better optimisation | Alex Lam S.L |
2017-03-05 | v2.8.6 | Alex Lam S.L |
2017-03-05 | collapse assignment with adjacent subsequent usage (#1553)...- consolidate `cascade` optimisations - support ++/-- postfixes - remove redundant optimisation identified in #1460 fixes #368 | 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 | improve `unsafe` on undefined (#1548)...`unsafe` turns undefined keyword into a variable of the same name if found, but that interferes with other related optimisations. Keep track of such transformations to ensure zero information loss in the process. | 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-03-05 | fix handling of shebang and preamble (#1545)...fixes #1332 | Alex Lam S.L |
2017-03-05 | fix a corner case in #1530 (#1552) | Alex Lam S.L |
2017-03-05 | resolve issue with outdated version of async (#1549)...fixes #746 | Alex Lam S.L |
2017-03-04 | disallow collapse_vars constant replacement in for-in statements (#1543) | kzc |
2017-03-03 | process code with implicit return statement (#1522)...Bookmarklet for instance implicitedly assumes a "completion value" without using `return`. The `expression` option now supports such use cases. Optimisations on IIFEs also enhanced. fixes #354 fixes #543 fixes #625 fixes #628 fixes #640 closes #1293 | Alex Lam S.L |
2017-03-03 | compress numerical expressions (#1513)...safe operations - `a === b` => `a == b` - `a + -b` => `a - b` - `-a + b` => `b - a` - `a+ +b` => `+b+a` associative operations (bit-wise operations are safe, otherwise `unsafe_math`) - `a + (b + c)` => `(a + b) + c` - `(n + 2) + 3` => `5 + n` - `(2 * n) * 3` => `6 * n` - `(a | 1) | (2 | d)` => `(3 | a) | b` fixes #412 | Alex Lam S.L |
2017-03-03 | facilitate fix for #1531 (#1542) | Alex Lam S.L |
2017-03-03 | v2.8.5 | Alex Lam S.L |
2017-03-03 | fix chained assignment with `unused` (#1540)...When #1450 optimises `a=b=42`, it stops after the first variable even if both are unused. fixes #1539 | Alex Lam S.L |
2017-03-03 | collapse_vars should not replace constant in for-in init section (#1538)...fixes #1537 | kzc |
2017-03-03 | properly cover all cases of for-in loop variables (#1536) | Alex Lam S.L |
2017-03-03 | fix reference marking in for-in loops (#1535)...fixes #1533 | Alex Lam S.L |
2017-03-03 | disable do{...}while(false) optimisation (#1534)...- fails to handle `break` in body fixes #1532 | Alex Lam S.L |
2017-03-02 | optimize trivial IIFEs returning constants (#1530) | kzc |
2017-03-02 | trim unused invocation parameters (#1526) | Alex Lam S.L |
2017-03-02 | minor improvement to string optimisation (#1514)...- "" + "a" => "a" - "" + a + "b" => a + "b" - "a" + "" => "a" (improving on #45) | Alex Lam S.L |
2017-03-02 | v2.8.4 | Alex Lam S.L |
2017-03-02 | fix corner cases in `reduce_vars` (#1524)...Avoid variable substitution in the following cases: - use of variable before declaration - declaration within conditional code blocks - declaration within loop body fixes #1518 fixes #1525 | Alex Lam S.L |
2017-03-01 | v2.8.3 | Alex Lam S.L |
2017-03-01 | fix crash on missing `props` to `string_template()` (#1523)...Patched up `make_node()` without `orig`. There may be other cases where `start` could be missing, so make it print "undefined" instead of crashing. fixes #1518 | Alex Lam S.L |
2017-03-01 | v2.8.2 | Alex Lam S.L |
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-03-01 | fix `evaluate` on object getter & setter (#1515) | Alex Lam S.L |
2017-03-01 | v2.8.1 | Alex Lam S.L |
2017-03-01 | temporarily disables `reduce_vars` (#1517)...... as we investigate #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 | v2.8.0 | 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-27 | add harmony branch details in README (#1507) | kzc |
2017-02-26 | faster tree transversal (#1462)...- convert `[].forEach()` to for-loops | 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 | update docs for `pure_funcs` & `drop_console` (#1503)...closes #1362 closes #1399 | Alex Lam S.L |