https://github.com/mishoo/UglifyJS

sort by:
Revision Author Date Message Commit Date
7906033 Merge pull request #1624 from alexlamsl/harmony-v2.8.14 Merging from master for 2.8.14 19 March 2017, 10:24:29 UTC
4bf21ce add `expect_stdout` to tests 19 March 2017, 07:35:39 UTC
44d6b47 Merge branch 'master' into harmony-v2.8.14 19 March 2017, 07:31:18 UTC
30a7504 v2.8.14 19 March 2017, 07:24:57 UTC
a3cc3a9 make `expect_stdout` work on Node.js 0.12 (#1623) That particular version of Node.js has messed up error messages, so provide a version-specific workaround. Also fixed an formatting issue which would cause `expect_stdout` to fail if error message contains excerpts of input. Apply `expect_stdout` to more applicable tests. 19 March 2017, 04:00:32 UTC
96f8bef fix commit 88fb83a (#1622) The following is wrong: `a == (b ? a : c)` => `b` Because: - `b` may not be boolean - `a` might have side effects - `a == a` is not always `true` (think `NaN`) - `a == c` is not always `false` 19 March 2017, 03:59:42 UTC
cd58635 fix AST_Binary.lift_sequences() (#1621) Commit eab99a1c fails to account for side effects from compound assignments. 18 March 2017, 19:04:22 UTC
274331d transform String.charAt() to index access (#1620) Guarded by `unsafe` as `charAt()` can be overridden. 18 March 2017, 18:17:15 UTC
129e449 Merge pull request #1614 from alexlamsl/harmony-v2.8.13 Merging from master for 2.8.13 18 March 2017, 05:02:09 UTC
75c3c89 Merge branch 'master' into harmony-v2.8.13 17 March 2017, 18:52:45 UTC
0489d6d handle runtime errors in `expect_stdout` (#1618) allow test to pass if both `input` and `expect` throws the same kind of error 17 March 2017, 18:33:51 UTC
fb09283 fix top-level directives in compress tests (#1615) `input` and `expect` are parsed as `AST_BlockStatement` which does not support `AST_Directive` by default. Emulate that by transforming preceding `AST_SimpleStatement`s of `AST_String` into `AST_Directive`. 17 March 2017, 17:56:15 UTC
d26b752 Allow 'name' as object literal shorthand property (#1617) fixes #1613 17 March 2017, 17:29:13 UTC
b7c112e Add `--in-source-map inline` documentation (#1611) 16 March 2017, 19:08:38 UTC
b2b8a0d v2.8.13 16 March 2017, 18:01:33 UTC
ac40301 fix chained evaluation (#1610) `reduce_vars` enables substitution of variables but did not clone the value's `AST_Node`. This confuses `collapse_vars` and result in invalid AST and subsequent crash. fixes #1609 16 March 2017, 16:26:48 UTC
3563d8c extend `test/run-tests.js` to optionally execute uglified output (#1604) fixes #1588 16 March 2017, 15:20:06 UTC
5ae04b3 make `collapse_vars` consistent with `toplevel` (#1608) fixes #1605 16 March 2017, 05:22:26 UTC
a80b228 fix `hoist_vars` on `reduce_vars` (#1607) `hoist_vars` converts variable declarations into plain assignments, which then confuses `reduce_vars` fixes #1606 16 March 2017, 04:03:30 UTC
cf4bf4c fix stack issues with `AST_Node.evaluate()` (#1603) As patched in #1597, `make_node_from_constant()` makes inconsistent and sometimes incorrect calls to `optimize()` and `transform()`. Fix those issues properly by changing the semantics of `evaluate()` and `make_node_from_constant()`, with the side effect that `evaluate()` no longer eagerly converts constant to `AST_Node`. 15 March 2017, 17:02:59 UTC
8223b2e fix `AST_Node.optimize()` (#1602) Liberal use of `Compressor.transform()` and `AST_Node.optimize()` presents an issue for look-up operations like `TreeWalker.in_boolean_context()` and `TreeWalker.parent()`. This is an incremental fix such that `AST_Node.optimize()` would now contain the correct stack information when called correctly. 15 March 2017, 10:44:13 UTC
2fd86d3 Merge pull request #1601 from alexlamsl/harmony-v2.8.12 Merging from master for 2.8.12 14 March 2017, 06:29:32 UTC
381bd38 minor clean-ups (#1600) - remove obsolete optimisation in `AST_Binary` after #1477 - improve `TreeWalker.has_directive()` readability and resilience against multiple visits 14 March 2017, 05:19:05 UTC
8f7ab60 Merge branch 'master' into harmony-v2.8.12 14 March 2017, 05:17:42 UTC
1dd339f fix `unused` crashes (#1599) - `AST_DefaultAssign` on `keep_fargs` - `AST_Expansion on` `keep_fargs` - `AST_Destructuring` on top-level declarations without `toplevel` 14 March 2017, 05:13:43 UTC
919d5e3 v2.8.12 10 March 2017, 21:00:55 UTC
e3a3db7 temporary fix for boolean bug (#1597) fixes #1592 10 March 2017, 20:59:55 UTC
d9344f3 disallow parameter substitution for named IIFEs (#1596) Self-referenced function has non-fixed values assigned to its parameters. Let `unused` & `!keep_fnames` do the scanning, then apply `reduce_vars` only to unnamed functions. fixes #1595 10 March 2017, 19:34:55 UTC
c7063c1 Merge pull request #1591 from alexlamsl/harmony-v2.8.11 Merging from master for 2.8.11 10 March 2017, 08:38:23 UTC
be80f7e support multi-line string in tests (#1590) `expect_exact` sometimes have multiple lines and `\n` are hard to read. Use array of strings to emulate line breaks and improve readability. 10 March 2017, 03:27:30 UTC
f4a12b3 Merge branch 'master' into harmony-v2.8.11 10 March 2017, 03:17:49 UTC
cf45e2f 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. 10 March 2017, 02:49:41 UTC
8354758 v2.8.11 09 March 2017, 20:17:21 UTC
9e6b128 fix catch variable reference in IE8 (#1587) `AST_Scope.def_variable()` will overwrite `AST_Symbol.thedef`, so save a copy before calling. fixes #1586 09 March 2017, 19:15:21 UTC
93cdb19 Correctly raise a parse exception with a missing loop body (#1585) 09 March 2017, 19:08:43 UTC
b633706 fix & improve function argument compression (#1584) - one-use function call => IIFE should take `eval()` & `arguments` into account - if unused parameter cannot be eliminated, replace it with `0` fixes #1583 09 March 2017, 11:11:05 UTC
5d5c793 Merge pull request #1582 from alexlamsl/harmony-v2.8.10 Merging from master for 2.8.10 09 March 2017, 05:14:55 UTC
8f4b45f Merge branch 'master' into harmony-v2.8.10 08 March 2017, 22:02:28 UTC
e9920f7 v2.8.10 08 March 2017, 21:48:06 UTC
7e465d4 scan RHS of dropped assignments (#1581) - similar case as #1578 but against #1450 instead - fix `this` binding in #1450 as well closes #1580 08 March 2017, 21:22:27 UTC
aa80ee3 remove checkboxes from Issues template 08 March 2017, 11:19:54 UTC
80e8176 explain how to make a proper bug report (#1579) fixes #1574 08 March 2017, 10:56:01 UTC
711f88d scan assignment value in drop_unused() (#1578) those were not optimised for `unused` before, which made it necessary for `reduce_vars` to have separate steps for `keep_fnames` docs update by @kzc closes #1577 08 March 2017, 10:37:32 UTC
344d11d v2.8.9 08 March 2017, 04:41:22 UTC
c7cdcf0 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 08 March 2017, 04:39:57 UTC
3ee5574 only run benchmark & jetstream on CI (#1571) 07 March 2017, 22:00:51 UTC
dedbeef 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 07 March 2017, 21:07:05 UTC
bd6dee5 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 07 March 2017, 19:31:51 UTC
952e265 Merge pull request #1567 from alexlamsl/harmony-v2.8.8 Merging from master for 2.8.8 07 March 2017, 15:56:23 UTC
240383a is_block_scope return true when current node is an instance of AST_IterationStatement. then the scope of let variable can be figured out accurately (#1561) 07 March 2017, 15:50:58 UTC
250b782 Merge branch 'master' into harmony-v2.8.8 07 March 2017, 12:25:52 UTC
144052c v2.8.8 07 March 2017, 11:58:41 UTC
65c848c include benchmark.js in test suite (#1564) - report file sizes and overall run time - exit with non-zero code upon error 07 March 2017, 11:25:12 UTC
8a8a94a 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. 07 March 2017, 10:38:27 UTC
8153b7b transform function calls to IIFEs (#1560) - expose function body to call sites for potential optimisations - suppress substitution of variable used within `AST_Defun` 07 March 2017, 07:37:52 UTC
d787d70 avoid substitution of global variables (#1557) - unless `toplevel` is enabled - global `const` works as before 06 March 2017, 19:11:03 UTC
3ac2421 collapse_vars: do not replace a constant in loop condition or init (#1562) 06 March 2017, 17:42:33 UTC
a9fc9dd suppress semicolons after do/while (#1556) - unless both `beautify` & `screw-ie8` are enabled - deprecate workaround for if-do-while-else fixes #186 06 March 2017, 09:31:35 UTC
3c2b3ae Merge pull request #1554 from alexlamsl/harmony-v2.8.6 Merging from master for 2.8.7 05 March 2017, 15:03:30 UTC
aa60549 Merge branch 'master' into harmony-v2.8.6 05 March 2017, 13:42:34 UTC
33a26d4 patch up #1543 for harmony fixes #1537 05 March 2017, 13:39:31 UTC
a5d62a3 v2.8.7 05 March 2017, 09:17:08 UTC
067e5a5 fixup for #1553 (#1555) - `++a` is the one that is foldable - transform `a++` into `++a` for better optimisation 05 March 2017, 09:15:37 UTC
49d9ac1 Merge branch 'master' into harmony-v2.8.6 05 March 2017, 08:03:56 UTC
33b5f31 v2.8.6 05 March 2017, 07:48:28 UTC
35a849d collapse assignment with adjacent subsequent usage (#1553) - consolidate `cascade` optimisations - support ++/-- postfixes - remove redundant optimisation identified in #1460 fixes #368 05 March 2017, 06:56:14 UTC
b70591b handle variable declaration within catch blocks (#1546) accounts for IE8- scoping 05 March 2017, 05:13:44 UTC
b33e7f8 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. 05 March 2017, 05:09:27 UTC
1f0333e 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 05 March 2017, 04:51:11 UTC
eb98a7f fix handling of shebang and preamble (#1545) fixes #1332 05 March 2017, 04:16:02 UTC
78d1bb9 fix a corner case in #1530 (#1552) 05 March 2017, 04:12:59 UTC
ea9ab9f resolve issue with outdated version of async (#1549) fixes #746 04 March 2017, 17:54:20 UTC
ce54c9c disallow collapse_vars constant replacement in for-in statements (#1543) 03 March 2017, 18:39:54 UTC
07accd2 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 03 March 2017, 10:13:07 UTC
18059cc 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 03 March 2017, 10:04:32 UTC
c8e6144 Merge pull request #1541 from alexlamsl/harmony-v2.8.5 Merging from master for 2.8.5 02 March 2017, 23:30:28 UTC
f704e9b fix destructing crash in reduce_vars fixes #1531 02 March 2017, 23:23:46 UTC
0b77d86 Merge branch 'master' into harmony-v2.8.5 02 March 2017, 23:17:52 UTC
b5e0e8c facilitate fix for #1531 (#1542) 02 March 2017, 23:12:24 UTC
e5cb927 v2.8.5 02 March 2017, 21:14:21 UTC
17b8135 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 02 March 2017, 20:45:20 UTC
4d63d4f collapse_vars should not replace constant in for-in init section (#1538) fixes #1537 02 March 2017, 19:51:15 UTC
70d72ad properly cover all cases of for-in loop variables (#1536) 02 March 2017, 18:39:57 UTC
fe9227a fix reference marking in for-in loops (#1535) fixes #1533 02 March 2017, 16:56:06 UTC
b49e142 disable do{...}while(false) optimisation (#1534) - fails to handle `break` in body fixes #1532 02 March 2017, 16:54:41 UTC
ee3b39b optimize trivial IIFEs returning constants (#1530) 02 March 2017, 07:11:40 UTC
9699ffb trim unused invocation parameters (#1526) 02 March 2017, 03:33:59 UTC
fdc9b94 minor improvement to string optimisation (#1514) - "" + "a" => "a" - "" + a + "b" => a + "b" - "a" + "" => "a" (improving on #45) 02 March 2017, 03:31:39 UTC
e27dab7 Merge pull request #1528 from alexlamsl/harmony-v2.8.4 Merging from master for 2.8.4 02 March 2017, 03:22:06 UTC
80f3ad3 Merge branch 'master' into harmony-v2.8.4 02 March 2017, 03:16:55 UTC
40ceddb v2.8.4 01 March 2017, 16:24:49 UTC
7aa6911 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 01 March 2017, 16:20:53 UTC
bff7ad6 v2.8.3 01 March 2017, 07:28:46 UTC
c2334ba 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 01 March 2017, 07:25:26 UTC
22f7af2 Merge pull request #1521 from alexlamsl/harmony-v2.8.2 Merging from master for 2.8.2 01 March 2017, 03:13:32 UTC
8a7a474 Merge branch 'master' into harmony-v2.8.2 01 March 2017, 03:06:33 UTC
fb2b6c7 v2.8.2 28 February 2017, 20:46:12 UTC
f5cbe19 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 28 February 2017, 20:12:10 UTC
b34fa11 fix `evaluate` on object getter & setter (#1515) 28 February 2017, 18:03:47 UTC
320984c v2.8.1 28 February 2017, 16:27:08 UTC
back to top