[Pkg-javascript-commits] [uglifyjs] annotated tag upstream/3.3.10 created (now 9a7f448)

Jonas Smedegaard dr at jones.dk
Wed Feb 14 19:52:09 UTC 2018


This is an automated email from the git hooks/post-receive script.

js pushed a change to annotated tag upstream/3.3.10
in repository uglifyjs.

        at  9a7f448   (tag)
   tagging  7d393c3f37a16f65bf0cd2d4ce516a430dfac187 (commit)
  replaces  upstream/2.4.13
 tagged by  Jonas Smedegaard
        on  Wed Feb 14 13:57:10 2018 +0100

- Log -----------------------------------------------------------------
Upstream version 3.3.10
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAlqEMicACgkQLHwxRsGg
ASFVqg/+NlgAA7nM7XaUkqVPRmwRGeYWUxlh8/TAHyUf6ToFWsouK3hWlQbs5bja
3A4SCoXLWlrXjxTFFwRK/61HfMZy5rDtUQl5XZgXjrTtF/GOPebMudNNCCJpVLRT
DnnLuawnJhK76t0ROz4g0yLZSVzO8c2/x+aZ01zyMb9rJu7tDp+8Eav58LYsNuro
7+tXaRB8aiunMNBwgmpifeFj7wAwPmO7bezZFZE+8MYt2KpnFHq4WAAspc7An8KD
2hnBlgVrf7TaoEezYS9HSGw7tJc63GuWf6UpPHurlDb4ZXdW5BKcM10OcAFlrt2q
r83AWdmXLbNffKiouv+dppaC0K0BmtU0gi7kPx5aT1HlIOQfaEXeImrL4QysPkeC
q3E5Wlr3R9aDzcFPb82wbFiZOZQ6YR3hO2KemdgPQDmdNlXjjW2y3/+Whf8NGrZO
ucceccEsrOzX489nrHRDJXxUK09yUwRE1ZHIa0+6XLRNdCwoaPttOpiXB7NhVefN
7WIKdLNhTJPjWSyjDig89r962dNkl0ib808UE+kvTn9pzex/eV/XtpEfLSmLgwoB
NzWRVSlIL/GeFw0RaZ+GJ6kc7HycJVCXYvAAzB5ckoF/LoUqMlQPgBHwnx6eGw5p
t7FjY1KcqBbDIgfsKgyaeD475DVGTEd9pj8GIA9gILdFKsJCzGE=
=v6qy
-----END PGP SIGNATURE-----

1111hui (2):
      feat: add option.outFileName for JS API, if absense, sourceMap.file field will deduced
      docs: add doc for option.outFileName

Aaron Blohowiak (1):
      make the module exports a convenience function so minifying src with the defaults is just a one-lininer: min = require('uglify-js')(src);

Alberto González Palomo (1):
      fromString option, use index from argument array for filename instead of "?"

Alex Lam S.L (589):
      augment evaluate to extract within objects (#1425)
      optimise binary operands with evaluate() (#1427)
      fix mangling collision with keep_fnames (#1431)
      update test (#1441)
      Merge pull request #1485 from alexlamsl/merge-2.8.0
      allow --in-source-map inline (#1490)
      update docs for `pure_funcs` & `drop_console` (#1503)
      consolidate `evaluate` & `reduce_vars` (#1505)
      faster tree transversal (#1462)
      improve error messages (#1506)
      v2.8.0
      warn & drop `#__PURE__` iff IIFE is dropped (#1511)
      temporarily disables `reduce_vars` (#1517)
      v2.8.1
      fix `evaluate` on object getter & setter (#1515)
      invert `reduce_vars` tracking flag (#1519)
      v2.8.2
      fix crash on missing `props` to `string_template()` (#1523)
      v2.8.3
      fix corner cases in `reduce_vars` (#1524)
      v2.8.4
      minor improvement to string optimisation (#1514)
      trim unused invocation parameters (#1526)
      disable do{...}while(false) optimisation (#1534)
      fix reference marking in for-in loops (#1535)
      properly cover all cases of for-in loop variables (#1536)
      fix chained assignment with `unused` (#1540)
      v2.8.5
      facilitate fix for #1531 (#1542)
      compress numerical expressions (#1513)
      process code with implicit return statement (#1522)
      resolve issue with outdated version of async (#1549)
      fix a corner case in #1530 (#1552)
      fix handling of shebang and preamble (#1545)
      stay safe with constants in IE8- (#1547)
      improve `unsafe` on undefined (#1548)
      handle variable declaration within catch blocks (#1546)
      collapse assignment with adjacent subsequent usage (#1553)
      v2.8.6
      fixup for #1553 (#1555)
      v2.8.7
      suppress semicolons after do/while (#1556)
      avoid substitution of global variables (#1557)
      transform function calls to IIFEs (#1560)
      fix deep cloning of labels (#1565)
      include benchmark.js in test suite (#1564)
      v2.8.8
      fix return from recursive IIFE (#1570)
      plan B for IE8 do-while semi-colon fix (#1572)
      only run benchmark & jetstream on CI (#1571)
      fix function name eliminiation (#1576)
      v2.8.9
      scan assignment value in drop_unused() (#1578)
      explain how to make a proper bug report (#1579)
      remove checkboxes from Issues template
      scan RHS of dropped assignments (#1581)
      v2.8.10
      fix & improve function argument compression (#1584)
      fix catch variable reference in IE8 (#1587)
      v2.8.11
      fixup for #1585 (#1589)
      support multi-line string in tests (#1590)
      disallow parameter substitution for named IIFEs (#1596)
      temporary fix for boolean bug (#1597)
      v2.8.12
      minor clean-ups (#1600)
      fix `AST_Node.optimize()` (#1602)
      fix stack issues with `AST_Node.evaluate()` (#1603)
      fix `hoist_vars` on `reduce_vars` (#1607)
      make `collapse_vars` consistent with `toplevel` (#1608)
      extend `test/run-tests.js` to optionally execute uglified output (#1604)
      fix chained evaluation (#1610)
      v2.8.13
      fix top-level directives in compress tests (#1615)
      handle runtime errors in `expect_stdout` (#1618)
      transform String.charAt() to index access (#1620)
      fix AST_Binary.lift_sequences() (#1621)
      fix commit 88fb83a (#1622)
      make `expect_stdout` work on Node.js 0.12 (#1623)
      v2.8.14
      throw parse error on invalid assignments (#1627)
      metadata cleanup (#1630)
      fix a bug in simple_glob (#1632)
      introduce compressor.info() (#1633)
      account for cross-scope modifications in `collapse_vars` (#1634)
      v2.8.15
      improve collapsible value detection (#1638)
      fix expect_stdout (#1642)
      improve error marker placement (#1644)
      fix assignment substitution in sequences (#1643)
      fix assignment extraction from conditional (#1651)
      fix corner case in `AST_For.init` (#1652)
      fix cascade of `evaluate` optimisation (#1654)
      Update ISSUE_TEMPLATE.md
      introduce ufuzz.js (#1655)
      fix invalid `AST_For.init` (#1657)
      v2.8.16
      fix `dead_code` on `AST_Switch` (#1667)
      fix typeof side-effects (#1669)
      fix `reduce_vars` on `AST_Switch` (#1671)
      fix `has_side_effects()` (#1675)
      improve switch optimisations (#1677)
      fix side-effects detection on switch statements (#1678)
      suppress switch branch de-duplication upon side effects (#1682)
      fallthrough should not execute case expression (#1683)
      fix `cascade` on `delete` operator (#1687)
      ufuzz: workaround function name and toString() (#1688)
      fix `delete` related issues in `collapse_vars` and `reduce_vars` (#1689)
      handle overlapped variable definitions (#1691)
      fix `cascade` on anonymous function reference (#1693)
      preserve side effects in switch expression (#1694)
      fix typeof side effects (#1696)
      `has_side_effects()` should take `AST_Switch.expression` into account (#1699)
      ufuzz: workaround for Function.toString() v2 (#1700)
      fix mangle for variable declared within catch block (#1706)
      fix tail trimming of switch blocks (#1707)
      handle var within catch of the same name (#1711)
      drop anonymous function name when overshadowed by other declarations (#1712)
      fix `is_number()` on `+=` (#1714)
      fix `unused` on var of the same name within catch (#1716)
      v2.8.17
      fix corner case in `unused` (#1718)
      remove UGLIFY_DEBUG (#1720)
      v2.8.18
      improve beautified output of switch blocks (#1721)
      output optimal representations of NaN & Infinity (#1723)
      fix missing parentheses around NaN/Infinity shorthands (#1726)
      speed up `equivalent_to()` and `AST_Switch` (#1727)
      speed up IIFE elimination (#1728)
      improve tests from #1726 (#1729)
      optimize try-catch-finally (#1731)
      remove paranthesis for `-(x*y)` (#1732)
      fix catch symbol mangling (#1734)
      v2.8.19
      fix missing preamble when shebang is absent (#1742)
      v2.8.20
      sort options in alphabetical order (#1743)
      combine rules for binary boolean operations (#1744)
      improve compression of undefined, NaN & Infinitiy (#1748)
      implement `test/sandbox.js` (#1749)
      minor tweaks to fuzzer (#1751)
      fix switch branch elimination (#1752)
      upgrade fuzzer (#1754)
      minor tweaks to `test/ufuzz.js` (#1756)
      speed up fuzzer code generation (#1757)
      fix corner cases in switch and undefined (#1762)
      avoid confusion of `NaN` & `Infinity` with `catch` symbol of the same name (#1763)
      fix corner case in `switch` (#1765)
      v2.8.21
      extend `test/ufuzz.js` (#1769)
      fix mangleProperties of `undefined` & `Infinity` (#1772)
      workaround Node.js bugs (#1775)
      fix `mangleProperties` on identifiers (#1776)
      exclude mangling of special property names (#1779)
      remove `--mangle-props` from fuzzing (#1777)
      optimise `do{...}while(false)` (#1785)
      implement delayed resolution for `reduce_vars` (#1788)
      improve `pure_getters` (#1786)
      enable `inline_script` by default (#1793)
      fix incorrect context in variable substitution (#1791)
      fix `reduce_vars` on catch variable (#1794)
      introduce "strict" to `pure_getters` (#1795)
      fix corner cases with `delete` (#1796)
      fix `pure_getters` for chained property access (#1798)
      extend ufuzz generator (#1783)
      fix `delete` corner cases (#1799)
      fix a couple of bugs in `global_defs` (#1802)
      enhance `test/ufuzz.js` (#1803)
      fix LHS cases for NaN & friends (#1804)
      v2.8.22
      convert `AST_Seq` from binary tree to array (#1460)
      drop `angular` (#1812)
      unify CLI & API under `minify()` (#1811)
      update README (#1813)
      fix variable substitution (#1816)
      enhance `reduce_vars` (#1814)
      fix `reduce_vars` within try-block (#1818)
      compress duplicated variable definitions (#1817)
      fix `reduce_vars` on boolean binary expressions (#1819)
      fix `reduce_vars` on conditionals (#1822)
      support safe reassignments in `reduce_vars` (#1823)
      clean up `collapse_vars` (#1826)
      extend `cascade` into `a.b` (#1829)
      fix parser bugs & CLI reporting (#1827)
      improve `collapse_vars` on `AST_Var` (#1828)
      fix `unused` on labeled for-loop (#1831)
      improve `unused` (#1832)
      fix label-related bugs (#1835)
      fix `AST_For.init` patch-up in `drop_unused()` (#1839)
      improve parser under "use strict" (#1836)
      fix `unused` on for-in statements (#1843)
      fix fuzzer on `this` (#1842)
      enforce `toplevel` on other compress options (#1855)
      restore report of supported options (#1861)
      update `test/benchmark.js` resources (#1864)
      rename variables for better readability (#1863)
      enhance `collapse_vars` (#1862)
      kill `opera` (#1869)
      fix `unsafe` on `evaluate` of `reduce_vars` (#1870)
      v3.0.0
      fix test for #1865 (#1873)
      update documentation
      support `minify()` output as AST (#1878)
      deprecate low level API (#1877)
      support dumping AST (#1879)
      return `Error` from `minify()` (#1880)
      v3.0.1
      update `minify()` usage in `test/ufuzz.js` (#1888)
      mention `minify().error`
      print error stack in CLI (#1890)
      v3.0.2
      extend test timeout
      gracefully handle non-`Error` being thrown (#1893)
      v3.0.3
      update documentation (#1909)
      fix invalid transform on `const` (#1919)
      v3.0.4
      avoid `arguments` and `eval` in `reduce_vars` (#1924)
      remove support for `const` (#1910)
      fix bugs with getter/setter (#1926)
      fix & improve coverage of `estree` (#1935)
      v3.0.5
      improve keyword-related parser errors (#1941)
      fix parsing of property access after new line (#1944)
      print package name alongside version in CLI (#1946)
      v3.0.6
      export `TreeTransformer` (#1950)
      v3.0.7
      remove `space_colon` (#1960)
      improve `RegExp` handling (#1959)
      make `expect_stdout` node version specific (#1963)
      v3.0.8
      introduce `unsafe_regexp` (#1970)
      v3.0.9
      enhance `if_return` to handle `return void...` (#1977)
      v3.0.10
      improve usability of `global_defs` in `minify()` (#1987)
      fix source map offset (#1993)
      v3.0.11
      reinstate `describe_ast()` on CLI (#1996)
      ensure new line after `describe_ast()` (#1999)
      report timing breakdown (#2000)
      clean up `lib/scope.js` (#2003)
      fix `dead_code` on block-scoped `function` under "use strict" (#2006)
      fix `if_return` on `AST_Defun` (#2010)
      fix `hoist_funs` on block-scoped `function` under "use strict" (#2013)
      v3.0.12
      extend `node_version` range on applicable tests (#2015)
      improve CLI usability (#2016)
      implement `--help options` (#2017)
      display default values in `--help options` (#2018)
      better fix for #512 & #2010 (#2019)
      v3.0.13
      widen CLI parse error code fragment displayed (#2032)
      introduce `unsafe_Func` (#2033)
      v3.0.14
      enhance `unsafe` `evaluate` (#2037)
      whitelist `unsafe` `evaluate` candidates (#2039)
      fix non-identifier getter/setter name (#2041)
      v3.0.15
      clean up `lib/parse.js` (#2047)
      add tests for `AST_SymbolAccessor` (#2049)
      fix `AST_Function` scope invariance (#2052)
      workaround webkit parsing error (#2056)
      implement function inlining (#2053)
      implement `test/jetstream.js --debug` (#2058)
      fix `inline` handling of `AST_Call.args` (#2059)
      fix CLI output corruption (#2061)
      fix `cascade` on multi-branch evaluations (#2067)
      fix iteration over object with inherited properties (#2068)
      marshal `mangle[.properties].reserved` from non-Array values (#2072)
      report `test/ufuzz.js` failures in `process.stderr` (#2074)
      fix non-string parameters (#2076)
      fix portability of `sandbox.run_code()` on Node.js 0.1x (#2078)
      suppress false positives for-in loops (#2080)
      fix variable accounting in `inline` (#2085)
      allow `expect_stdout` to specify `Error` (#2087)
      add Node.js 8 to Travis CI (#2086)
      cache web assets between CI runs (#2089)
      v3.0.16
      fix parsing of `expect_stdout` (#2096)
      compute `uses_arguments` correctly in `figure_out_scope()` (#2099)
      avoid intermittent test time-out failures (#2100)
      suppress `inline` of `this` (#2103)
      v3.0.17
      enforce `inline` scope restriction (#2106)
      correctly determine scope of `AST_This` (#2109)
      in-place `tigten_body()` (#2111)
      fix loss of context in `collapse_vars` & `cascade` (#2112)
      make defensive copies when `inline` (#2116)
      v3.0.18
      ensure mangling works if catch reuses a scope variable (#2123)
      v3.0.19
      fix for-in loop parsing (#2144)
      fix `reduce_vars` on `this` (#2145)
      minimise `reduce_vars` cloning overhead (#2148)
      refactor `Compressor.toplevel` (#2149)
      synchronise `mangle.properties` for `minify()` & `test/compress` (#2151)
      refactor `compute_char_frequency()` (#2152)
      fix `cascade` & `collapse` on property access of constants (#2158)
      more tests for #2158 (#2160)
      v3.0.20
      parse `@global_defs` as expressions (#2169)
      improve `unsafe_Func` (#2171)
      v3.0.21
      improve usability of name cache under `minify()` (#2176)
      v3.0.22
      improve `inline` efficiency (#2188)
      drop argument value after `collapse_vars` (#2190)
      v3.0.23
      refactor `throw` usage within `compress` (#2193)
      clean up `TreeWalker.pop()` (#2195)
      improve parenthesis emission (#2196)
      minor clean-ups to `evaluate` (#2197)
      improve `compress` granularity through `typeofs` (#2201)
      suppress `collapse_vars` of `this` as call argument (#2204)
      inline property access of object literal (#2209)
      inlining of static methods & constants (#2211)
      handle duplicate argument names in `collapse_vars` (#2215)
      v3.0.24
      benchmark gzipped output (#2220)
      enhance source mapping on IIFEs (#2224)
      fix gzip stream in `test/benchmark.js` (#2228)
      enhance `passes` (#2229)
      drop `unused` compound assignments (#2230)
      fix `unsafe` `evaluate` of `Object` static methods (#2232)
      drop `unused` builtin globals under `unsafe` (#2236)
      ensure `ie8` works with mangled properties (#2238)
      reject malformed CLI parameters (#2239)
      v3.0.25
      update dependencies (#2241)
      unescape surrogate pairs only (#2246)
      v3.0.26
      improve `mangle.properties` (#2261)
      v3.0.27
      fix `ie8` mangling of top-level `AST_SymbolCatch` (#2263)
      v3.0.28
      fix `unused` patching of `AST_For.init` blocks (#2289)
      correctly count declarations after `hoist_vars` (#2297)
      fix `collapse_vars` on default function argument (#2299)
      extend `unsafe` on pure global functions (#2303)
      v3.1.0
      improve source mapping (#2312)
      handle LHS side-effects on `cascade` & `collapse_vars` (#2314)
      v3.1.1
      suppress `collapse_vars` of `this` into "use strict" (#2326)
      v3.1.2
      trap invalid use of reserved words (#2338)
      enhance `reduce_vars` for `AST_Accessor` (#2339)
      v3.1.3
      collapse `a.b` whenever safe (#2350)
      perform `reduce_vars` on safe literals (#2351)
      more tests for #2351 (#2357)
      fix-ups for #2356 (#2360)
      update dependency (#2362)
      v3.1.4
      account for side-effects from `AST_This` in `collapse_vars` (#2365)
      fix `AST_PropAccess` in `collapse_vars` (#2370)
      fix `AST_PropAccess` in `collapse_vars` (take 2) (#2372)
      clean up lazy operator detection (#2373)
      fix `AST_PropAccess` in `collapse_vars` (take 3) (#2375)
      enhance `collapse_vars` around lazy operations (#2369)
      backport #2374 (#2376)
      `unsafe` fix-ups for #2351 (#2379)
      v3.1.5
      fix `unsafe` escape analysis in `reduce_vars` (#2387)
      fix `unsafe` evaluation of objects (#2388)
      fix `unsafe` evaluation of `AST_Sub` (#2389)
      fix `unsafe` expansion of object literals (#2390)
      safer `properties` transform (#2391)
      deduplicate declarations regardless of `toplevel` (#2393)
      enhance `unsafe` `evaluate` of arrays & objects (#2394)
      fix `unsafe` `reduce_vars` on arrays & objects (#2397)
      implement `hoist_props` (#2396)
      compress self comparisons (#2398)
      fix `reduce_vars` on `AST_Array.length` (#2404)
      remove dead code (#2405)
      enhance `properties` (#2412)
      v3.1.6
      compress `new` `function` containing `this` (#2417)
      reduce `this` within functions (#2421)
      improve variations on call arguments for `ufuzz` (#2424)
      maintain call argument order in `collapse_vars` (#2426)
      consolidate single-use `function` reduction (#2427)
      extend function inlining safety checks (#2430)
      tweak #2424 (#2432)
      v3.1.7
      inline single-use functions that are not constant expressions (#2434)
      consolidate & enhance `unused` (#2439)
      account for `eval` & `with` in `reduce_vars` (#2441)
      handle circular `function` reference gracefully (#2446)
      v3.1.8
      preserve function identity in `reduce_vars` (#2451)
      remove hack in `collapse_vars` (#2457)
      fix multiple nested function substitutions (#2458)
      fix object literal tracing in `reduce_vars` (#2461)
      implement compress option `reduce_funcs` (#2466)
      extend `reduce_funcs` to cover cross-scope substitutions (#2469)
      v3.1.9
      allow symbol replacement on multiple occurrences (#2472)
      fix `top_retain` on `hoist_props` (#2474)
      fix replacement logic in `collapse_vars` (#2475)
      minor consolidations (#2484)
      fix cross-scope inlining of `AST_Function`s (#2486)
      v3.1.10
      enable `hoist_props` by default (#2492)
      expand symbol space to improve compression (#2460)
      fix `rename` (#2501)
      eliminate invalid state caching in `collapse_vars` (#2502)
      make `AST_Lambda.contains_this()` less magical (#2505)
      fix argument/atom collision by `collapse_vars` (#2507)
      extend escape analysis on constant expression properties (#2509)
      fix wording and formatting (#2512)
      fix argument/atom collision by `properties` (#2514)
      v3.2.0
      drop assignment in `AST_VarDef.value` (#2522)
      improve synergy between `collapse_vars` & `unused` (#2521)
      fix nested `hoist_props` substitution (#2523)
      fix `inline` on nested substitutions (#2533)
      backport test from #2526 (#2534)
      fix corner case in call binding (#2541)
      improve code reuse (#2542)
      improve compression of loop conditions (#2543)
      improve compression of `if` conditions (#2544)
      convert to number under boolean context (#2545)
      improve `AST_For.init` & `AST_Switch.expression` compression (#2546)
      improve switch case compression (#2547)
      improve boolean compression (#2548)
      improve `evaluate` on `typeof` (#2550)
      more tests for #2535 (#2551)
      fix `dead_code` on `for` (#2552)
      v3.2.1
      improve `if_return` (#2558)
      eliminate noop calls more aggressively (#2559)
      account for side-effects in conditional call inversion (#2562)
      fix escape analysis for `AST_Conditional` & `AST_Sequence` (#2563)
      fix escape analysis for `AST_Throw` (#2564)
      improve `unused` on assign-only symbols (#2568)
      v3.2.2
      handle exceptional flow correctly in `collapse_vars` (#2574)
      rename tests (#2575)
      escape consecutive unpaired surrogates (#2576)
      remove unused code (#2579)
      fix `collapse_vars` on `switch` (#2578)
      fix `AST_VarDef.may_throw()` (#2580)
      avoid `Function.prototype` pollution by `test/sandbox.js` (#2581)
      minor clean-up for IIFE (#2582)
      improve `collapse_vars` on side-effect-free replacements (#2583)
      recover lost opportunities from #2574 (#2584)
      fold `cascade` functionality into `collapse_vars` (#2586)
      drop local assign-only variable in `return` (#2587)
      fix `dead_code` on `return`/`throw` within `try` (#2588)
      improve `collapse_vars` (#2591)
      improve `reduce_vars` (#2592)
      fix `reduce_vars` on single `AST_Defun` reference across loop (#2593)
      inline single-use `function` across loop (#2594)
      handle `inline` of function arguments (#2590)
      fix `reduce_vars` on `do...while` (#2596)
      fix `dead_code` on nested `try` (#2599)
      fix escape analysis on `||` and `&&` (#2600)
      fix nested `inline` (#2602)
      account for `catch` variable when `inline` (#2605)
      improve `reset_opt_flags()` (#2610)
      export `parse()` (#2608)
      improve transversal efficiency in `collapse_vars` (#2611)
      drop property assignment to constants (#2612)
      compress `apply()` & `call()` of `function` (#2613)
      handle global constant collision with local variable after `inline` (#2617)
      add test for #2613 (#2618)
      fix `inline` after single-use `reduce_vars` (#2623)
      avoid `inline` of function with special argument names (#2625)
      disable `hoist_funs` by default (#2626)
      remove AST hack from `inline` (#2627)
      extend `test/ufuzz.js` to `inline` & `reduce_funcs` (#2620)
      make comments output more robust (#2633)
      fix escape analysis on `AST_PropAccess` (#2636)
      fix corner cases with `collapse_vars`, `inline` & `reduce_vars` (#2637)
      fix comments output & improve `/*@__PURE__*/`
      v3.3.0
      fix infinite loop during `inline` (#2645)
      add `html-minifier` to benchmarks (#2646)
      v3.3.1
      parse LF & comment correctly (#2653)
      v3.3.2
      improve `unused` over duplicate variable names (#2656)
      suppress `inline` within substituted `AST_Scope` (#2658)
      replace single-use recursive functions (#2659)
      fix bugs on substituted `AST_Defun` (#2661)
      retain recursive function names (#2667)
      fix `dead_code` on `return` assignments (#2668)
      fix function inlining within loops (#2675)
      improve assignment variations (#2671)
      fix `pure_getters` on `AST_Binary` (#2681)
      v3.3.3
      minor clean-ups (#2686)
      fix `dead_code` on escaped `return` assignment (#2693)
      v3.3.4
      reduce hoisting declarations (#2687)
      fix `inline` on duplicate argument names (#2698)
      enhance `join_vars` & `sequences` (#2697)
      scan within IIFEs of assigned values (#2702)
      reset argument value within loop after `inline` (#2699)
      enhance `if_return` (#2703)
      enhance `collapse_vars` (#2704)
      inline functions with `AST_Var` (#2688)
      extend `__PURE__` to `AST_New` (#2706)
      fix `reduce_vars` on `AST_Defun` (#2708)
      drop `unused` assignment based on `reduce_vars` (#2709)
      apply `collapse_vars` to loop conditions (#2712)
      extend `inline` (#2714)
      preserve constant modification under strict mode (#2717)
      forbid block-scoped `AST_Defun` in strict mode (#2718)
      reminify tests upon `expect_stdout` (#2716)
      fix corner case in `inline` (#2720)
      fix `mangle` name collision across files (#2722)
      warn on deprecated features (#2726)
      improve `if_return` (#2727)
      fix corner case with `arguments` as function name (#2729)
      enhance `unsafe_proto` (#2733)
      compress `RegExp()` in `unsafe` (#2735)
      handle trailing line comments correctly (#2736)
      enable AppVeyor CI (#2739)
      fix recursive function `inline` (#2738)
      improve `process.exit()` workaround (#2741)
      v3.3.5
      compress loops with immediate `break` (#2746)
      improve `rename` reproducibility (#2754)
      patch variable declaractions extracted within `catch` (#2753)
      improve synergy between `compress` and `rename` (#2755)
      enhance `conditionals` (#2758)
      skip only `var`s in `if_return` (#2759)
      join object assignments (#2763)
      fix corner case in #2763 (#2766)
      fix nested `unused` assignments (#2769)
      update dependencies (#2770)
      fix output of imported AST (#2771)
      fix `reduce_vars` on `AST_Accessor` (#2776)
      v3.3.6
      fix & extend `join_vars` for object assigments (#2781)
      v3.3.7
      run `test/ufuzz.js` when Travis CI is idle (#2784)
      improve `test/travis-ufuzz.js` (#2786)
      avoid double counting within single-use functions (#2785)
      avoid suboptimal termination in `passes` (#2787)
      enhance `collapse_vars` (#2788)
      improve `test/travis-ufuzz.js` (#2789)
      handle VM failure gracefully (#2791)
      general improvements around `AST_ForIn` (#2796)
      improve `test/travis-ufuzz.js` (#2795)
      improve `mocha` tests (#2797)
      extend `join_vars` & `sequences` (#2798)
      configure `rename` with CLI (#2802)
      suppress `unsafe_proto` for LHS expressions (#2804)
      fix `AST_Scope.clone()` (#2803)
      faster output of comments (#2806)
      enhance `test/ufuzz.js` (#2808)
      compress `undefined` property names (#2811)
      fix time-out for respawned `test/ufuzz.js` (#2814)
      fix & improve `test/ufuzz.js` (#2815)
      avoid duplicate property names in object literals under "use strict" (#2818)
      improve `unused` on built-in functions (#2817)
      enable `unsafe` for `test/ufuzz.js` (#2819)
      fix `unsafe` `evaluate` of `AST_Array` (#2825)
      v3.3.8
      handle duplicate function declarations correctly (#2837)
      drop assignments to constant expressions only (#2839)
      backport of #2835 (#2841)
      fix accounting after conversion to assignment (#2847)
      v3.3.9
      compress chained compound assignments (#2850)
      improve symbol replacement heuristic (#2851)
      relax `collapse_vars` on `AST_Exit` (#2855)
      account for declaration assignment in `collapse_vars` (#2859)
      avoid `evaluate` of compound assignment after `dead_code` transform (#2861)
      simplify comparisons with `undefined` & `null` (#2862)
      account for side-effects in `comparisons` of `null` & `undefined` (#2863)
      better fix for #2858 (#2864)
      always test for `rename` (#2865)
      fix missing corner case in #2855 (#2868)
      fix assignment logic in `reduce_vars` (#2872)
      allow `collapse_vars` across conditional branches (#2867)
      handle `break` & `continue` in `collapse_vars` (#2875)
      maintain order between side-effects and externally observable assignments (#2879)
      improve exceptional flow compression by `collapse_vars` (#2880)
      evaluate `to{Low,Upp}erCase()` under `unsafe` (#2886)
      mention file encoding (#2887)
      update dependencies (#2889)
      account for exceptions in `AST_Assign.left` (#2892)
      v3.3.10

Alexis Tyler (1):
      fix typo (#1913)

Anat Dagan (1):
      in mangle_names there is a check that the variable name is legal and that it is not a reserved word. This should apply to propsmangle as well.

Andrew Levine (1):
      Add keep_fnames compressor option to README.md

Andrey Tarantsov (1):
      Fix broken calls of complex binary expressions [#471]

Anthony Van de Gejuchte (48):
      Update unicode letter
      Add unicode digit parsing support
      Add test
      Keep single line comments after nlb, after nlb
      Parse regexes properly
      Add node 4.x in Travis
      Implement shebang support
      Semicolon after do...while statement is optional
      Add tests
      Disable loop optimization for parse-only tests
      Do not allow newlines in string literals
      Fix ch that could contain other newline characters
      Add mocha tests
      Add test case for line continuation
      Never mangle arguments and keep them in their scope
      Add scope test for arguments
      Make arguments test slightly more strict
      Add some tests for comment-filters through api
      Add keywords to package.json
      Allow operator names as getters/setters
      Add node 6 to travis
      Fix regression causing tests to fail on windows
      Do not allow newlines in regex
      Fix uglify attempting to rewrite invalid new expressions
      Catch errors when compression test fails to parse
      Throw errors in strict mode for octal strings
      Don't drop unused if scope uses with statement
      Stop dropping args in new expressions
      Don't allow with statements in strict mode
      Re-add parens after new expression in beautify mode
      Fix test262 failures related to <, <=, in and instanceof
      Don't mix strings with directives in output
      Normalize error messages
      Keep master in sync with harmony
      Move OctalEscapeSequence to read_escape_char
      Various LineTerminator changes
      Don't convert all strings to directives from moz-ast
      Backport mocha with test from harmony
      Fix error style for regex errors
      Keep const in own scope while compressing
      Legacy octal integer strict mode fixes
      Make all comment options in cli available in js api
      Don't filter shebangs when using the 'some' comment filter
      Pass mangle options to figure_out_scope before mangling in tests
      Do not overwrite options.comments + cleanup
      Add preventive test involving non-ascii function identifiers
      Improve optimizing `function() { if(c){return foo} bar();}`
      Add .gitattributes to checkout lf eol style

Arnavion (2):
      Allow colons in the pairs passed to AST_Toplevel.wrap_enclose
      Don't warn for an unreferenced exception symbol in a catch block.

Artemy Tregubenko (2):
      added @ngInject support for inline functions
      added newline at the end of the file

Ashley (Scirra) (1):
      Add --mangle-props-debug and fix --mangle-props=unquoted collision

Asia (1):
      Document the except option to mangle

Austin Brown (1):
      Update README.md

Boris Letocha (1):
      Fixes #951 missing export for SymbolDef

Bryan Rayner (1):
      Add mangleProperties documentation to README

Bryce Cronkite-Ratcliff (1):
      fixes issue #621 SourceMap toString JSON format

Caridy Patino (1):
      using the original sourcemap as the base

Cedric Vivier (1):
      Extend name mangling from base54 to base64 after first character. Provides better compression on libraries with a large number of variables.

ChALkeR (1):
      Export tokenizer function

Cheng Liangyu (1):
      fix base54

Chris Cowan (2):
      Give a good error message if an invalid regular expression is found.
      Re-use the caught exception's error message in the parse error call.

Chris Hoffman (1):
      Make the package.json work when npm linking again

Christian Maughan Tegnér (1):
      Add `--in-source-map inline` documentation (#1611)

Christopher Chedeau (1):
      [Fix] --define replaces SymbolRefs in LHS of assignments

Conrad Irwin (1):
      Handle TryStatements trees from acorn >=0.2.0

Damian Krzeminski (2):
      upgrade yargs 3.5.4 -> 3.10.0
      add `--pure-funcs` option

Dan (3):
      change `undefined == x` to `null == x` (#2882)
      describe a few compiler assumptions (#2883)
      add information on testing and code style (#2885)

Dan Wolff (1):
      Evaluate "foo".length ==> 3

David Bau (1):
      Escape null characters as \0 unless followed by 0-7.

David Caldwell (1):
      Document passing source maps directly to minify() using inSourceMap

David Šanda (2):
      Fix CLI source-maps examples (#2291)
      Fix CLI example for mangle reserved list of names (#2294)

Derek Wickern (1):
      Fix backslashes in source-map paths on Windows

Edward Casbon (1):
      Add filename to the JS_Parse_Error exception.

Eirikur Nilsson (1):
      Added a failing test for with statements.

Emil Hesslow (12):
      Added an easy way to create unittests and created units test for 16 of the fixed issues on github
      Add support for compressing 'a + "str1" + "str2" + b' to 'a+"str1str2"+b'
      compress assignments more
      compress assignments more
      Be even better with assignments
      Be even better with assignments
      Treat the first statement in a for-loop the same as a normal statement. So do seq with previous statements. Put together var and const declarations. And if it is empty move the last statement there
      Add some more types to find_first_execute. Gives a few bytes on jquery and processingjs
      Add a decompress step first so we don't have to add a lot of code to handle special cases around sequences and first statement in for-loops.
      Move i++, ++i, i+=1 forward into the next statement if possible
      Fix issue 48 where 0 and "" was treated as same and wrongful optimizations where done
      - Removed --extra because of bugs in the optimizations. After the bugs are fixed I will move them into --unsafe so they get some testing.

Erik Desjardins (1):
      don't escape null characters as \0 when followed by any digit (#2273)

Fintan Fairmichael (1):
      Fixes printing printing small floating point numbers.

Fábio Santos (2):
      Added expect_exact for testing the OutputStream
      Fix #836

Geraint (1):
      Allow input files to be map (url->filename)

Ingo Struck (1):
      allow for anonymous map generation using string type check

Ingvar Stepanyan (9):
      Improved UglifyJS<->SpiderMonkey AST conversions.
      Fixes and improvements for UglifyJS->SM AST conversion.
      Small fixes for AST conversion.
      SpiderMonkey `Identifier` nodes should contain mangled names.
      Added generative testing for AST conversions.
      Install newest NPM on oldest Node.js.
      Added example for usage with SpiderMonkey AST.
      Track ending lines/columns; fix end locations in Mozilla AST.
      Location fix for Mozilla AST start token.

Isaac Z. Schlueter (1):
      Remove whitespace in #! line

Jacob Kristhammar (1):
      Use uglify source map token names if missing

Jann Horn (3):
      compile `a=a+b` to `a+=b` and so on
      put the assignment types into an array literal instead of stringsplit
      fix uses_arguments handling (broken since 6605d1578351)

Jason Davies (1):
      Fix sparse array literals e.g. [,]

Jeremy Marzka (1):
      Added a mangle properties option

Jez Ng (1):
      Allow defines even when not mangling.

Joao Carlos (3):
      Add --mangle-regex option
      Show descriptive error when --mangle-regex is invalid
      Change --mangle-regex to accept a full regex

Jonas Smedegaard (4):
      Strip .gitignore file.
      Imported Upstream version 1.3.5
      Merge branch 'upstream' into upstream-experimental
      New upstream version 3.3.10

Jordan Harband (1):
      Test on latest `node` and `io.js`

Joseph Gentle (1):
      Added null as a constant.

Joël Galeran (1):
      fix typo in README (#2792)

Kara (1):
      fix docs for side_effects flag to reflect current behavior (#1966)

Kenneth Powers (1):
      Use yargs instead of optimist.

Kosei Kitahara (1):
      Support wrap and exportAll options.

Kyle Mitchell (1):
      use a valid SPDX license identifier

Lauri Pokka (1):
      lib/sourcemap.js: Copy sourceContent from old souce-map to the new source-map. Should fix #882

Lucas Wiener (3):
      Fixed sourceMapIncludeSources and inSourceMap = string combination of the UglifyJS.minify function.
      Added test for #1236
      Moved test input files to test/input.

Mal Graty (6):
      Improved strict mode support
      Don't bother save/restoring in_directives
      Apply ascii only option to regexps
      Squashable directives
      Adding tests for squeezing directives
      Fix make for newer versions of node

Marijn Haverbeke (1):
      add an ascii_only option to gen_code

Martii (1):
      Create and map `bare-returns` into new `parse` property name

Martijn Swaagman (1):
      Generate source map data from normalized files

Mateusz Burzyński (1):
      Testing all leading comments against being PURE comments (#2305)

Mathias Bynens (2):
      Only a subset of whitespace characters is problematic after `</script`, so use `[\t\n\f\r ]` instead of `\s`.
      `</script/` is problematic, too.

Matt Glazar (4):
      More sane unit testing script
      Merge commit '9472f4ff19e0daf3adb7fdb0304ab77f19d3cc52'
      Compress ifs further
      Failing test cases for name mangling

Michael Ficarra (3):
      version test for node was missing a leading `v` and was not compatible
      fixed issue #112: `_ == true` -> `_ == 1` and similar
      fixes #845: \v escaping should be restricted to "screw_ie8" mode

Michael Mior (1):
      Correctly raise a parse exception with a missing loop body (#1585)

Mickaël Delahaye (1):
      Add syntax error on newline after 'throw'

Mihai Bazon (567):
      git init (moved from a mercurial repo, but I don't care about previous history)
      minor
      fixed some issues with code generation; it's now hopefully complete.
      added process_ast which mangles variable names and will eventually apply
      resolve simple binary ops on constants
      mangling/compression finally works fine (compress itself, run the compressed
      fix parsing problem (only allow minus as part of the number when it's the first character)
      allow function(){return} (no semicolon after return) when not in strict-semicolons
      "new Foo;" should still insert an empty argument list
      added "with" and "atom" generators for codegen
      handle return with no arguments in codegen
      fixed parsing conditionals (thanks Marijn!)
      support "with" and "atom" in process_ast
      minor
      disorganized tests
      always add space between consecutive [+-] operators (handles "i + ++j").
      add parens around called expression if not "name" or "dot" (should cover all cases)
      display empty blocks as "{}"
      minor
      Better fix from the master programmer for some issues that I identified:
      better fix for "{return}" case (http://marijn.haverbeke.nl/git/?p=parse-js;a=blobdiff;f=src/parse.lisp;h=da8409d1e7078dea43c5c5de7ce5afcf1caf6562;hp=80438c39afad5ca5d5fc3fca35a13d3daae63de3;hb=732969c989144e56a74b51dea6b9e227a7e9d031;hpb=2e09d491179be4a838e9435cdacfd7f1e84e9646)
      fix for parsing ".1" (discard the dot from punc. chars)
      minor
      minor
      minor style changes
      rewrote proper mangler/compressor (in process.js); revised code generator.
      some reorganization, some fixes (moved gen_code to process.js, handle
      minor
      Fixed bug that showed up when processing jQuery: I was using the "token in
      lots of other fixes while testing on jQuery:
      another fix: don't shadow a name that is referenced but not defined -- it's possibly a global defined elsewhere
      dropping spurious brackets got back, but this time it's safer
      further optimizations for IFs:
      more optimization for IF statements
      comments + small cleanups
      minor
      added some documentation
      README.org for github
      symlink not good enough for github.
      README for github, take 3
      fixed doc rendering for github
      minor doc changes (link to the Google Group)
      links
      links
      squeeze a few more bytes:   if (!foo) bar(); else baz();  ==>  foo ? baz() : bar();
      minor: transform !foo?bar():baz() ==> foo?baz():bar() for all conditionals (16 less bytes on DL and 3 on jQ :-p)
      Fix for: http://github.com/mishoo/UglifyJS/issues#issue/2 --
      Allow unescaped slash character in literal regexps, when inside a character class.
      we must add semicolon after do{...}while()
      newline after return shouldn't cause the next token to become the returned value:
      maybe_before_semicolon no longer in use
      add parens to "seq" in conditionals; fixed typo that caused this to break in
      support for '2e-3' (http://github.com/mishoo/UglifyJS/issues#issue/4)
      newline normalization (http://github.com/mishoo/UglifyJS/issues#issue/7)
      small fix (content of line comment tokens had the last char cut)
      Multiline comments that contain a newline will trigger semicolon insertion
      when not in "strict semicolons", allow trailing comma in hash and array literals
      add parens around "assign" when it's used as condition in the ?/: operator.
      add parens around "seq" when used as constructor.
      fixed again http://github.com/mishoo/UglifyJS/issues/issue/11/#comment_361674
      `new (X ? A : B)` → `new X?A:B`   --- now fixed.
      Fixed parsing [^[ ... ] in regexp.
      adding space before the colon in literal objects is now optional
      minor cleanup
      some cleanups
      removed old/unused files
      no more JSON.stringify to output strings
      small script to call the uglifier/beautifier
      add parens around "seq" when used as condition in the ?/: operator
      minor improvement: if (!foo) bar(); else baz(); ==> if (foo) baz(); else bar();
      minor: don't add parens around "binary" when used in combination with an operator of the same precedence
      reverted previous commit [ a-(b-c) was translated to a-b-c which is wrong ]
      minor
      block brackets are required in try/catch/finally
      small cleanup
      some cleanups regarding "block" nodes -- and gained a few more bytes by properly adding the brackets *only* when really needed.
      Fixed bug when adding blocks to THEN clause:
      fix: don't add a mangled name to anonymous functions
      minor optimizations/experiments:
      minor fix gains another few hundred bytes on DL, Ymacs and jQuery.
      default make_seqs => true
      update docs
      fixed links
      no need to escape slashes in regexp, since we store the backslash as well
      fixed parsing for x++ / 5
      minor
      escape \r and \f when in output strings
      parenthesize "dot" in "new" calls; sometimes this can add unnecessary
      back to using JSON.stringify to output strings (still the safest variant)
      support "const"
      fixed parsing 0xC1BDCEEE
      fixed issue with mangling: http://github.com/mishoo/UglifyJS/issues#issue/17
      added option to mangle toplevel scope
      minor improvements:
      Handle EOF when reading blocks.
      minor fix for numbers
      fixed again parsing unterminated blocks (handle EOF)
      don't enforce for/do/while/switch in label_statement
      in fact, do check for do/for/while/switch after label, but only in "strict_mode"
      croak on try{} without catch{} and finally{}
      added --ast
      when --ast is specified we should still go through all the requested tree processing
      "case" and "default" nodes no longer appear in the tree; instead, since they
      removed unused code
      added --overwrite to overwrite the original file
      Merge branch 'master' into macros
      remove final "break" statement in switch (only when unlabelled)
      some doc updates
      allow regexp immediately after else
      allow a literal regexp to start a statement
      looks like comma-expressions should be explicitly forbidden in expressions of the "conditional" (?) operator.
      Accept operator &=
      disallow assignment to 'this'
      NaN is not a keyword
      when parsing a function, reset in_loop to disallow break/continue
      mark 'i' as referenced in the current scope on "for (i in foo)"
      tighten try/catch/finally blocks
      ability to remove some dead code, and warn about it (ON by default):
      updated doc
      update doc
      fix for http://github.com/mishoo/UglifyJS/issues#issue/25
      some cleanups/fixes that were figure out in the Lisp version [1].  Big speed improvement.
      when the condition in a conditional is a conditional, should add the parens
      don't quote object keys when they are integers
      cut off a few more bytes by being a bit smarter about adding parens around function literals
      more cases to handle before discarding parens around function literals
      skip literal functions when detecting calls in "new" expression
      handle <<, >> and >>> when resolving binary operations
      should be safe not to force numbers in evaluating <<, >>, >>>
      more accurately support numbers as keys in literal objects
      fixed regression (we always quoted object props)
      fixed another regression (we always added parens in unary-prefix/postfix)
      discarded other unnecessary parens -- before, !!b used to turn into !(!b)
      convert string properties to numbers where possible in literal objects
      reverted previous commit (not such a good idea, as it changes semantics)
      fix parsing for 1e+2
      in Node-0.3 "sys" has been renamed "util"
      minor
      Merge branch 'master' of http://github.com/michaelficarra/UglifyJS
      make sure *this* is quoted
      Merge branch 'master' of http://github.com/satyr/UglifyJS
      sys = require("util") for node 0.3+
      some cleanup
      squeeze a few more bytes with an apparently safe transformation:
      Small note: we beat GCL on jQuery ;-)  Should update the stats in the documentation.
      small change in handling the first comment (only keep the first X comments
      small change in the way the lib is loaded (officially named "uglify-js";
      Merge branch 'assignment' of http://github.com/WizKid/UglifyJS into wizkid-master
      whatever I'm commiting right now should just be a merge operation
      Merge https://github.com/WizKid/UglifyJS into wizkid-master
      renamed uglify-js.js to index.js since it appears to be too complicated to
      Merge commit '38f691e'
      minor optimization for if (foo) { ... return }
      Merge branch 'wizkid-master'
      fixes issue #43 (restore regex_allowed after skipping a comment)
      minor
      removed unused code
      added --extra option, which will enable optimizations that we're not yet
      fixed issue #50 and added test case.  also:
      Merge remote branch 'wizkid/master'
      oops, fixed regression (var joining is safe, should be enabled by default)
      true => !0, false => !1 -- seems safe; this cuts 1K on DynarchLIB
      be smarter about negation:
      fixed issue #53: x = (y, z) should not discard the parens
      foo.toString()  ==>  foo.""
      removed useless check
      disabled foo.toString() ==> foo+""; it's still available if you pass
      minor (got rid of try/finally)
      fix for issue #58
      fixed issue #57 -- add block brackets around do/while in code like this:
      fixed issue #59 ("!--x" incorrectly yield "--x")
      fixed issue #61:  f((a, b)) was incorrectly rendered f(a, b)
      removed Node dependency from process.js (issue #60)
      fixed issue #62: properly handle negation such that:
      got rid of JSON.stringify for writing strings; having our own function now,
      compress new Array(1, 2, 3) into [1,2,3]
      fixed regression: new Array(x) should be left as is.
      properly handle the case where Array exists in current scope:
      updated expected test result (broken since we added support for quoting with
      but then indeed, "new Array(x)" can be safely written "Array(x)" if we're
      compress Array(1,2,3) into [1,2,3] too
      updated doc to point out the potentially unsafe Array transformations
      doc fix
      added an array mapping utility that allows us to push stuff at the top
      fixed issue #68: push function definitions to the top of the current scope
      updated "expected" version for tests affected by the last change
      fixed issue #69
      fixed issue #70: for reasons unknown to humanity, you can have an
      switched to the simplified BSD license
      support parsing getter/setter declarations in object literals (patch by Pavel Podivilov)
      support mangling/squeezing/gen_code for getter/setters in object literals
      fixed comment
      issue #71 -- increment line count in multiline comments
      issue #72: (0).toString -> 0..toString
      fixed parsing "5..toString()"
      support [1,,3] (an array with 3 elements)
      Added the ability to insert some newlines in the generated code
      moved split_lines into the library code and exported it
      reversed the previous patch; the ideea was good, but implementation seems to
      fixed issue #77 -- endless recursion if the stream ends with ++/--
      remove bogus ~= operator and extra %= mention
      fixes #78 -- quote numeric property names when they're negative
      don't call output.end() when we're writing to standard output
      semicolon removal less aggresive:
      Employ the full parser, rather than just the tokenizer, for splitting
      read --max-line-len argument as an integer
      fixes #83 -- show a cleaner error when the input file isn't found
      fixes #84 -- safer dealing with boolean expressions,
      refs #84 -- consider a = !b a boolean expression too
      transform !(a?b:c) ==> !a?c:b
      minor optimizations:
      oops, fixed regression: !(a?b:c) can't convert to !a?c:b
      fixed negating conditionals again :-\
      fixes #86 -- dropped unsafe transformation
      mostly cosmetic change
      removed unused code
      removed more unused code
      fixes #65 -- moved the following transformations under --unsafe:
      keep the first token in ast_walker, ast_add_scope and ast_mangle (useful for
      more embed_tokens: do lambdas too
      fixes #87 -- transform while(true){...} into for(;;){...}.  Drop the block
      but don't try to warn when the "unreachable code" is empty
      resolved conflict
      don't display warnings unless --verbose
      fixes #94 -- drop names of inline functions when they aren't referenced anywhere
      slightly better fix, in case your inline function is named toString,
      Merge branch 'master' of https://github.com/cadorn/uglify-js into cadorn-master
      fixes #92 -- added --reserved-names command line argument (pass one or more
      updated doc of ast_mangle (there was a small API change)
      issue #96 -- added parser test suite, thanks to Peter van der Zee
      issue #96 (regular expression flags) -- accept any identifier character for
      support unicode chars in identifiers
      disabled some checks by default (they're enabled in strict_mode):
      treat ZWSP (zero-width space, U+200B) as whitespace
      issue #96 -- support UnicodeEscapeSequence in names
      fixed some regexps
      minor
      allow new Date++
      allow call expressions to be lvalues too
      don't check whether the left side is assignable, unless strict_mode == true
      support funny cases of for-in:
      renamed variable "strict_mode" to "exigent_mode", to avoid confusion with
      reverted 687382e4d2f55401483e6823cb814d7c9cab5dbc and updated testparser.js
      fixes #99
      warn when "conditional comments" are encountered
      added --ascii option, useful to encode non-ASCII characters as \uXXXX.
      updated gen_code API description
      transform a["123"] into a[123] (fixes #107)
      only add a second dot in forms like (5).toFixed() if the number is integer.
      fixed parsing for stuff like 0x12.toFixed() (when we have 0x, the dot cannot
      removed duplicated operator
      fixes #117 -- don't parenthesize literal objects
      add parens around object literal when used as first thing in a statement
      fix more pathological cases of parens around literal object
      again: it can be first thing in a statement when in unary-prefix too...
      more parens around literal objects/functions when first thing in a statement
      handle conditional operator too
      NPM changes
      comments (fixes #120)
      Merge branch 'master' of https://github.com/chriskr/UglifyJS into chriskr-master
      fixes issue #129 -- initializers in var/const cannot be seq-s (parens needed)
      only defuns define a new name in the current scope; named lambdas seem
      better fix for issue #128:
      support "splice" node, which is like "block" but doesn't add the brackets in gen_code
      added a sample on how to use the parser/walker to instrument some code
      embed tokens in expr_atom and expression parsers too
      add brackets around splice nodes when they're directly under "for",
      Merged pull request #133 from aaronblohowiak/master.
      Merged pull request #137 from tav/master.
      can't optimize away do{ ... }while(false) - fixes #150
      options.defines is optional..
      Merge pull request #149 from killdream/master
      simple "make" utility.  ideas welcome.
      v1.0.2 -- fixes #152
      newline after continue/break ends the statement (fixes #154)
      minor
      mangled name of a function expression should not clash with a name in the
      version 1.0.3
      small cleanup
      fixed mangling of lambda names (regressed as of ae88177)
      version 1.0.4
      fixed regression after ae88177fde6a7e54b047: mangling the name of function
      give unary postfix ops the right precedence (fixes #173)
      added --inline-script option to escape `</script`, by popular demand
      updated doc
      version 1.0.5
      minor (`</script` needs escape only if followed by `>` or whitespace)
      Merge pull request #177 from mathiasbynens/master
      support deprecated OctalEscapeSequence in strings (fixes #178)
      Merge pull request #179 from eirikurn/master
      fixed compression of `with` statements (regressed at 9053435497e6ab53b100ead72aa399e48f3df8c3)
      version 1.0.6
      parenthesize seq values in object literals (fixes #180)
      discard backslashed literal newlines in strings (fixes #183)
      Added ast_lift_variables, which does a little more than its name says:
      attempt to group assignments into the var declaration
      minor
      more solid check need of semicolons after the last statement of a block.
      Easy yet safe optimization.  Saves 119b on jQuery.
      Updated readme.  Follow @UglifyJS on Twitter. ;-)
      no point to keep initialization values in var/const in unreachable code
      mangle label names (fixes #151)
      more fixes:
      Merge pull request #199 from thorn0/patch-1
      moved Array ==> [] transforms in squeeze-more (so they now apply on `--unsafe`)
      Merge pull request #200 from johnjbarton/01a83b461f541898cb4b2f9ef033245c1a7ee18b
      Merge pull request #202 from lautis/fix-broken-tests
      Merge branch 'master' of github.com:mishoo/UglifyJS
      updated doc
      exit with code 1 in case of error (fixes #204)
      version 1.0.7
      fixed parsing in exigent_mode + embed_tokens (fixes #208)
      merged cade4f252e5f4db715d9 from @schmerg, other minor doc updates
      fixed codegen for `(function(){...}()) && bar()`.
      Added an utility that allows walking depth-first easily.
      fixed rendering of extremely "large" negative numbers (fixes #214)
      err, fixed again negative numbers.  (#214)
      Merge pull request #220 from proxv/master
      Merge pull request #216 from jasondavies/sparse-arrays
      Merge pull request #230 from thejh/assign-to-modifyassign
      support empty "then" IF branch in codegen
      fix for parsing regexps like /=/ where statement is expected
      Merge pull request #232 from proxv/master
      add parens around literal object as statement (fixes #234)
      Merge branch 'master' of github.com:mishoo/UglifyJS
      fixed removal of `if (false) { ... }`
      Merge pull request #235 from josephg/patch-1
      Merge pull request #237 from proxv/parenthesize-no-prop-object-literals
      Merge branch 'issue112' of https://github.com/michaelficarra/UglifyJS into michaelficarra
      Merge branch 'master' of github.com:mishoo/UglifyJS
      Merge pull request #172 from 5long/master
      semicolons
      Merge pull request #211 from lautis/unicode-whitespace
      in fact, new Error().stack is enough to get a stacktrace
      Merge branch 'master' of github.com:mishoo/UglifyJS
      try negation in make_conditional (closes #227)
      Merge branch 'encode-nulls' of https://github.com/lautis/UglifyJS into lautis
      version 1.1
      fixed version for NPM
      Merge branch 'parenthesize-function-expressions' of https://github.com/proxv/UglifyJS into tmp
      Merge pull request #238 from proxv/multiline-strings-semicolons
      keep literal newlines in strings as \n
      reverted last patch
      fix parenthesization of anonymous function calls
      better fix instead of f896f690500f11130435c495a7b1eaf9338c59dd
      negating >= and <= operators is back to --unsafe (closes #239)
      add final semicolon (closes #126)
      version 1.1.1
      use == instead of === in `member` (fixes #244)
      escaped slash character in regexp
      String(a) => a+""  (with --unsafe)
      at most one ';' at EOF
      some cleanup
      Merge pull request #263 from ikokostya/object
      Use a different scope for labels than for variables.
      Merge pull request #258 from ikokostya/fix-error-pos
      Merge pull request #248 from WolfgangKluge/endpos-in-tokens
      fixes embed_tokens for functions (#260)
      option to prevent mangling or dropping of function names (#267)
      updated doc
      version 1.2
      made npm happy
      don't walk label statements twice (closes #272)
      version 1.2.1
      walk label statement *after* mangling it (really fixes #272)
      v1.2.2
      support `debugger` statement (closes #278)
      improved redo_if (closes #283)
      v1.2.3
      Merge pull request #291 from isaacs/patch-1
      v1.2.4
      Merge pull request #295 from WolfgangKluge/master
      handle null constant (closes #299)
      v1.2.5
      avoid parens for getter/setters (closes #301)
      avoid double-parens on calls on function expressions (fixes #313)
      output literal TABs in strings (fixes #318)
      fix parsing `x = {}/1` (closes #320)
      Merge pull request #327 from RGustBardon/master
      Merge pull request #328 from RGustBardon/fix-162-and-271
      Merge pull request #329 from RGustBardon/implement-325
      v1.2.6
      support "use-strict" as a statement (refs #339)
      Merge pull request #345 from mal/master
      Merge pull request #355 from proxv/debugger-semicolon-insertion
      Merge pull request #356 from proxv/fix-failing-test
      Merge pull request #357 from proxv/handle-comment-newlines
      Merge pull request #358 from proxv/package-improvements
      Merge pull request #359 from proxv/fix-consolidator
      Merge pull request #369 from mal/ascii-regex
      Merge pull request #373 from mal/master
      fix parsing 1e5..toFixed(5)
      don't generate double-dot for 10000..toFixed(5)
      Merge branch 'master' of github.com:mishoo/UglifyJS
      avoid some double-parens
      Merge pull request #342 from int3/master
      Merge pull request #384 from RGustBardon/fix-383
      Merge pull request #385 from RGustBardon/implement-368
      Merge pull request #387 from rvanvelzen/master
      when the statement of a for is not empty, check if it requires semicolon
      Merge pull request #397 from rvanvelzen/optimize_gzip
      Undo commit 133b36f54d0e8f78fc649e99983798bf05445b18
      Merge branch 'fix-222-and-324' of https://github.com/RGustBardon/UglifyJS into RGustBardon-fix-222-and-324
      propagate newline_before for comment tokens (fixes #398)
      when --unsafe, replace "foo".toString() with "foo", rather than "foo"+""
      Merge pull request #400 from proxv/override-digits-in-tests
      Merge pull request #401 from proxv/ast-squeeze-call
      v1.3.0
      ast_mangle should, well, mangle by default. (fixes #404)
      also don't mangle function names if !options.mangle (#404)
      fix options for ast_mangle
      Merge pull request #407 from RGustBardon/1e+21
      Merge pull request #408 from RGustBardon/if-not
      Merge pull request #410 from RGustBardon/infinite
      cleaner fix for 0/0, 1/0, -1/0 (issue #410)
      minor --make stuff
      v1.3.1
      add the space in “return λ” and similar cases
      v1.3.2
      revert f5419ec2d6b7e341f99a1f09a63ff6b6a0e3fc95 (squashable directives)
      emacs vars
      added separate step to discard redundant directives
      fix for redundant directives in same scope
      "sys" → "util"
      be wary of some conditional operators in lift_variables (fixes #435)
      fix --lift-vars for "for(var i; ...)" (var declared in for but uninitialized)
      Merge pull request #432 from rvanvelzen/fix-431
      v1.3.3
      I'm officially switching to 4-space indentation.
      add note about UglifyJS 2.0
      Merge pull request #458 from rvanvelzen/div-with-regexp
      discard all \uFEFF characters (close #462)
      disallow newlines in strings (fix #463)
      Merge pull request #343 from spadgos/patch-1
      Reverting "discard all \uFEFF characters (close #462)"
      treat \uFEFF as whitespace
      v1.3.4
      add note about the NPM package, which switched to v2
      drop the pledgie link
      v1.3.5
      Merge pull request #454 from Arnavion/allow-colons-in-wrap_enclose
      Merge pull request #470 from ebednarz/master
      Always quote property names that contain non-ASCII characters.
      Update tests.
      Merge pull request #445 from ConradIrwin/try-statement
      Merge branch 'master' of github.com:mishoo/UglifyJS2
      Fix parens in +(+x).  Close #475
      Better fix for #475
      Actually, even better.  #475
      v2.4.14
      Merge pull request #499 from shinnn/master
      Check for the case an AST_For's init is an EmptyStatement
      Lock source-map to 0.1.34
      v2.4.15
      Fix parens for AST_Undefined
      Merge branch 'patch-1' of https://github.com/gdw2/UglifyJS2
      Merge branch 'master' of https://github.com/RReverser/UglifyJS2
      Merge pull request #529 from RReverser/master
      Prevent error for Function("").  Close #538
      Turn foo.new into foo["new"] when not --screw-ie8.  Fix #534
      Merge pull request #541 from TalAter/conditional-improvements
      Merge pull request #549 from Arnavion/unreferenced-catch-symbol
      Referencing a global is assumed to have side effects.
      Document `keep_fargs`.  Close #557
      Add option to allow return outside of functions.
      Merge pull request #546 from jacobk/patch-1
      v2.4.16
      Merge pull request #599 from rvanvelzen/fix-597
      Support keep_fnames in compressor, and --keep-fnames. #552
      Merge branch 'keep-function-expression-names' of https://github.com/rvanvelzen/UglifyJS2
      Declare boolean type for --keep-fnames
      Fix handling \r\n
      AST_Do nodes: walk body before condition
      aborts(AST_If) returns the `if` node
      Fix make_node_from_constant for Regexp-s
      Merge pull request #606 from rvanvelzen/document-double-dash
      Merge pull request #482 from arty-name/inline-ng-inject
      Merge pull request #612 from rvanvelzen/issue-611
      Merge pull request #615 from avdg/unicode
      Add option to preserve/enforce string quote style
      v2.4.17
      Add property name mangler
      Fix --reserved-file
      Fix prop mangling
      rename --prop-cache to --name-cache
      Export readNameCache / writeNameCache
      Add tool to list DOM properties/methods
      tools/props.html: use try/catch in a few more places
      Fix parsing for U+2028 / U+2029
      Fix parsing for U+2028 / U+2029
      Bump yargs version (for .array arguments)
      Support multiple --reserved-file args
      Add --reserve-domprops along with a default exclusion list in tools/domprops.json
      tools/props.html: output complete JSON
      Don't use Object.create
      Keep unused function arguments by default
      Export readDefaultReservedFile
      Add start/end nodes for NaN/Infinity transformations
      Avoid sequencesize for more than 2000 statements.
      [sequencesize] Actually even better:
      Fix compressing `![foo()];` as a statement
      Merge in more DOM properties.
      Add tool to extract property names
      Merge branch 'propmangle'
      Update README
      v2.4.18
      Disable testing with Node 0.8
      Merge pull request #660 from ntkme/fix-long-options
      v2.4.19
      Merge pull request #669 from galvanix/documentation-inSourceMap
      More fixes for the breaking changes in yargs
      Use the `before` visitor in mangle props
      Fix compression of conditionals
      v2.4.20
      Drop NaN -> 0/0 transformation.
      Fix tests
      If name_cache is specified, do rename cached properties
      Fix parsing strings with literal DOS newlines
      Avoid spurious brackets when dropping unused vars
      Remove deprecated calls to utils.print/utils.error
      Fix blank lines in the output.
      v2.4.21
      Only drop the BOM when it's the first character.
      Make reserved names take priority over the name cache
      fix again reserved props
      Fix compressing conditionals
      v2.4.22
      Treat \uFEFF as whitespace.
      v2.4.23
      Merge pull request #733 from jcxplorer/add-mangle-regex-option
      Don't drop parens in a * (b * c).  Close #744
      Merge pull request #735 from kzc/master
      Don't attempt to negate non-boolean AST_Binary
      v2.4.24
      Merge pull request #757 from rvanvelzen/semicolon-fix
      Fix wrap_commonjs to include code first
      No longer use `vm` to load code.
      Fix mozilla-ast after module loading changes
      Disable node 0.8 in Travis
      Merge pull request #808 from avdg/travis
      v2.5.0
      Only encode <!-- and --> in strings when inline_script
      Fix tests
      Merge pull request #829 from kzc/html_comment_ops
      Fix parsing invalid input
      Merge pull request #854 from kzc/moz-regexp-2
      Rework has_directive
      Replace util.error with console.log
      Build label def/refs info when figuring out scope
      Fix output for "use asm" code from SpiderMonkey AST
      v2.6.0
      Limit max iterations for tighten_body
      Fix endless loop
      v2.6.1
      Fix hoisting the var in ForIn
      Add start/end in the `arguments` definition
      Merge pull request #949 from kzc/collapse_vars_conditions
      v2.6.2
      Merge pull request #1019 from kzc/escape-ascii-only
      Merge pull request #1011 from kzc/dont-produce-let-in-mangle
      Avoid using inherited hasOwnProperty
      Merge pull request #1032 from kzc/member
      Actually limit sequence length.
      Merge pull request #1053 from rvanvelzen/hoist_if_return_funs
      Merge pull request #1155 from kzc/issue_1154
      Merge pull request #1277 from kzc/fix-string-plus-opt
      Merge pull request #1481 from anatdagan/propsmangle_only_identifiers

Nick Fisher (2):
      Added an example of how to use the `defines` option (see #281)
      Fixed syntax

OiNutter (1):
      add sourceMappingUrl to output in node module

Ondřej Španěl (3):
      Fix: AST_Accessor missing start / end tokens
      Avoid using exports when undefined (#1471)
      Transform can be simplified when clone is not done. (#2621)

Paul Baumgart (16):
      Constant fold modulo operator.
      Parenthesize sequences in constructor calls.
      Parenthesize object literals with no properties.
      Parenthesize function expressions.
      Don't insert semicolons before multi-line strings.
      add semicolon after debugger statements if necessary (closes #353)
      add tests for issue 353
      fix expected output for issue14 test to have literal tab instead of escaped tab
      make note of newlines in comments for ASI purposes (closes #349)
      add nodeunit devDependency and add 'npm test' script to package.json
      require local version of uglify instead of global
      fix consolidator to use new 'directive' AST node
      move consolidator tests to test/ dir and run them via 'npm test'
      add npm-debug.log to .gitignore
      Add base54 digits override for unit tests.
      Also descend arg AST nodes in ast_squeeze function-call handler

Peter Dave Hello (1):
      Use svg instead of png to get better image quality

Peter van der Zee (2):
      Improve fuzzer. :) (#1665)
      Massive extension of the fuzzer (#1697)

Quildreen Motta (1):
      Adds missing whitespace characters to WHITESPACE_CHARS

ReadmeCritic (1):
      Update README URLs based on HTTP redirects

Richard van Velzen (68):
      Fix for issue #386
      Optimize list of digits for generating identifiers for gzip compression.
      Fix issue #431
      Fix division with regexp as right generating invalid code.
      Fix #597
      Fix #569
      Merge pull request #600 from KenPowers/master
      Merge pull request #592 from micschro/patch-1
      Merge pull request #584 from clyfish/fix-base54
      Merge pull request #570 from rvanvelzen/fix-569
      Fix #556
      Add a "keep_fnames" option to the compressor to retain function expression names
      Add an option to prevent function names from being mangled
      Pass mangle options to `figure_out_scope` and `compute_char_frequence`
      Document `--` for usage in CLI class
      Replace the correct node when replacing in `void` sequences
      Make empty source map values more reasonable in .minify()
      Drop all `console` statements properly
      Fix invalid removal of left side in && and || compression
      Clean up unit test breakage
      Replace util.puts in run-tests with console.log
      Fix semicolon printing when restricting max line length
      Revert "Fix semicolon printing when restricting max line length"
      Fix semicolon printing when restricting max line length
      Merge pull request #753 from Surgo/master
      Fix mangling of property names which overwrite unmangleable properties
      Merge pull request #729 from DrewML/keep_fnames_docs
      Merge pull request #736 from AlbertoGP/master
      Merge pull request #767 from vjeux/208
      Don't change sequences that influence lexical binding in calls
      Fix bad parsing of `new new x()()` constructs
      Merge pull request #786 from istr/anonymous-source-map
      Stop building for io.js
      Allow specification beautify options in tests
      Prevent ReDoS by not using a regexp to verify floating point numbers
      Merge pull request #864 from plievone/patch-1
      Merge pull request #879 from ReadmeCritic/master
      Merge pull request #896 from avdg/do-while-semicolon
      Merge pull request #874 from kzc/fix-conditionals
      Merge pull request #905 from avdg/unit-tests
      Merge pull request #918 from avdg/fix-arguments-handling
      Merge pull request #928 from STRML/constPragma
      Allow cli options to be specified in separate definitions
      Merge pull request #948 from kzc/collapse_vars_doc
      Don't compress (0, eval)() to eval()
      Allow --no-* options to disable their respective parameter
      Add base54.reset() to compress tests
      Prevent endless recursion when evaluating self-referencing consts
      Hoist functions when reversing if (x) return; ... vs. if (!x) ...
      Add test case for hoisting a single function
      Add test cases for slightly more esoteric cases
      Never produce -0 when evaluating expressions (like -"")
      Completely allow evaluating -0
      Fix octal string strict mode tests
      v2.6.3
      Don't assume DEBUG is defined when exporting --self
      v2.6.4
      Introduce a test that tests the --self build
      v2.7.0
      Build with AppVeyor on windows
      v2.7.1
      v2.7.2
      Fix negate_iife transform to return a correct tree for nested IIFEs
      v2.7.3
      Add an option to wrap IIFEs in parenthesis
      Remove console.log and add extra test case
      v2.7.4
      v2.7.5

Rob Garrison (1):
      update output options in readme (#1958)

Rob Loach (1):
      Add .npmignore

Robert Gust-Bardon (9):
      Consolidate null, Boolean, and String values
      Fix issues #162 and #271
      Implement the idea from issue #325
      Fix issues #222 and #324
      Revoke #368 and fix issue #383 to make jQuery tests pass
      Implement #368 (too many parentheses)
      Remove unnecessary "+" sign in SignedInteger
      Remove NOT in IfStatement with EmptyStatement (-s)
      Fix representation of infinite values

Roger Peppe (1):
      update README to include defaults (#2356)

Roman Dvornov (1):
      Fix API reference examples (#1834)

Ryan Gunn (1):
      Update License Copyright Year to 2018 (#2866)

Samuel Reed (5):
      Mark vars with /** @const */ pragma as consts so they can be eliminated.
      Update README for /** @const */
      Use TreeWalker for more accurate @const results and update tests
      Simplify by skipping extra tree walk.
      Tighten up @const regex.

Sebastien Daniel (1):
      added documentation on conditional compilation using API

Shinnosuke Watanabe (1):
      Do not run a test for Node v0.4

Shrey Banga (1):
      Respect quote style in object literals

SpainTrain (1):
      Pin dependencies with npm shrinkwrap

Tal Ater (4):
      Compress conditional assignments where all possible outcomes are equivalant and condition has no side effects
      Added a test for else if
      Compress conditions that have side effects using sequences
      Optimize conditionals where the consequent and alternative are both booleans and not equivalent

Thomas Mayfield (2):
      add package.json for installation via npm
      don't die on byte order mark at the beginning of files

Tim Malone (1):
      Update README.md - sourceMappingURL directive note (#2355)

Tim Meadowcroft (1):
      Added option to define symbols for replacement (cf #define) and improved constant folding for shortcut operators ('&&', '||' and ternary conditional operator)

Timothy Gu (1):
      Add missing `{` in README

Tom MacWright (1):
      docs: Fix spelling and style (#2395)

Ville Lautanala (4):
      Encode null characters as '\0'
      Fix tests broken after 3cd9829a
      Recognize various Unicode whitespace
      Control keeping function arguments with a single option

Whyme.Lyu (1):
      Better parser error message for node

Wiktor Kwapisiewicz (1):
      Add note about name mangling when using --mangle-props=unquoted (#1314)

Wolfgang Kluge (2):
      Keep end position of each token
      Test the local instead of the installed version.

XhmikosR (2):
      Normalize package.json.
      Make node.js 0.8 the minimum supported version.

Yotam Spenser (1):
      Source map URL override from programmatic API

Ziad El Khoury Hanna (1):
      fix CLI parsing of `--source-map content` (#2088)

achingbrain (1):
      passes in references to process and Buffer to silence ReferenceErrors

alexlamsl (28):
      Preserve ThisBinding in conditionals & collapse_vars
      preserve ThisBinding for side_effects
      Optimize unmodified variables
      add missing LHS cases which global_defs should avoid
      fix crash in unsafe replacement of undefined
      remove unused AST_Scope.nesting & AST_SymbolRef.frame
      fix corner case in keep_fnames
      enable typeof "undefined" for general use
      drop unused: toplevel, assign-only
      fixes & improvements to [].join()
      tweak do-while loops
      `-c sequences=N` suboptimal at N expression cutoff
      improve string concatenation
      clean up `negate_iife`
      fix duplicated test names
      improve keep_fargs & keep_fnames
      improve reduce_vars and fix a bug
      evaluate AST_SymbolRef as parameter
      enhance `global_defs`
      add benchmark & JetStream tests
      improve `--beautify bracketize`
      remove extraneous spaces between ++/+/--/-
      introduce `unsafe_proto`
      clean up `max_line_len`
      fix `pure_funcs` & improve `side_effects`
      enable `collapse_vars` & `reduce_vars` by default
      minor fixes to README.md
      remove Travis CI badge

cadorn (2):
      More ignore rules
      Reserved variable names option

chrisk (1):
      Support unicode newlines in make_string (make uglifyjs work for the Dragonfly project).

ebednarz (1):
      Fix sourceMapIncludeSources exception in Node API

gdw2 (1):
      Added license

homuler (1):
      Fix the document of keep_fnames option

ikokostya (8):
      Fixed parse error position: start line number and column number from 1.
      Unsafe Object constructor transformations:
      new RegExp() => RegExp() (with --unsafe)
      new Error() => Error() (with --unsafe)
      Unsafe: new Function() => Function()
      Fixed #286: Only one variable declaration allowed in for..in loop
      Check abort else statement in make_real_if() when t[0] is "stat"
      Merge branch 'master' into abort-else

iliashk (1):
      Add Node API documentation for mangling options

johnjbarton (1):
      parameter start arrives 'undefined' or 'null', any falsy value should be zero

kzc (111):
      optimizations for && and || where left side is constant expression
      operator && and || optimization: add "else" before "if" as intended
      spacing
      Add proper support for "use asm"; blocks. Disable -c optimization within "use asm"; sections and preserve floating point literals in their original form. Non-asm.js sections are optimized as before. Asm.js sections can still be mangled and minified of whitespace. No special command line flags are required.
      add asm.js test
      Fix handling of "use asm" when no command line flags are passed to uglifyjs. SCOPE_IS_NEEDED is unconditionally true now. Refactored floating point literal parsing to be more in keeping with the AST class design.
      get rid of SCOPE_IS_NEEDED as it was always true
      have minify() call figure_out_scope() if needed to produce well formed "use asm" code
      Output `-- >` instead of `-->` in expressions. Escape `<!--` and `-->` within string literals.
      Fix other operator output related to <!-- or -->
      optimize `return undefined` and `return void 0`
      more tests for `return undefined` optimization
      `return undefined` optimization no longer uses `return_void_0` option
      Fixed RegExp literal in mozilla AST generation/output and added a --dump-spidermonkey-ast flag
      rename To_Moz_Literal to To_Moz_RegExp
      Have mozilla AST RegExpLiteral parser use regex.pattern and regex.flags rather than non-standard `raw` property.
      simplify mozilla AST RegExpLiteral token parse and handle corner cases of regex.pattern better
      #873 Fix `conditionals` optimizations with default compress options
      Collapse single use var definitions
      fix bug in collapse_vars for right side of "||" and "&&"
      collapse_vars: fix bug in repeated var defs of same name
      collapse_vars: document option in README
      collapse_vars: small change to README
      collapse_vars: fix if/else and ternary operator side effects
      collapse_vars: avoid replacement across AST_Case nodes to be on safe side even though no issues seen.
      Take operator || precendence into account for AST_If optimization.
      boolean_expression ? true : false --> boolean_expression
      #877 Ignore mangle sort option
      Do not produce `let` as a variable name in mangle.
      Attempt to increase timeout for mocha let test.
      Escape all ASCII control characters within strings when using ascii_only.
      Speedup `unused` compress option for already minified code
      Optimize ternaries with boolean consequent or alternative.
      Simplify member(name, array) implementation.
      Fix warnings for referenced non-hoisted functions.
      Parse comments without recursion to avoid RangeError.
      Add `passes` compress option. Fix duplicate compress warnings.
      Handle CR line endings in comments.
      Workaround for process.exit() tty output truncation.
      Retain comments before AST_Constants during mangle.
      Do not apply negate_iife optimization to `new` expression
      Simplify iife `new` fix
      Optimize if_return for single if/return cases.
      collapse_vars: Do not consider RegExp literals to be constants
      Don't replace undefined, NaN and Infinity within with scope
      Fix conditional expressions of form (x ? -1 : -1)
      Fix spidermonkey AST (ESTree) export and import, Array holes
      Enable --screw-ie8 by default.
      Allow sequences maximum length to be user configurable.
      Change the default sequences limit to 200 to speed up compress.
      Document that the smallest sequences optimization length is 2
      Fix mangle with option keep_fnames=true for Safari.
      Test reparsing test/compress/*.js output
      Fix unneeded parens around unary args in new expression.
      Add simple file globbing to bin/uglifyjs for Windows
      Add input file glob support to minify()
      Additional object literal property tests
      Fix --mangle-props and --mangle-props=unquoted
      Fix negate_iife regression #1254
      implement optimization: (x = 2 * x) ---> (x *= 2)
      Account for side effects in `string + expr` optimization
      Fix (typeof side_effect()) in boolean context
      remove npm-shrinkwrap.json to work around npm at 4.0.2 bug (#1384)
      Have minify() and tests use figure_out_scope() as uglifyjs CLI does
      fix stray else in compress with conditionals=false
      smarter const replacement taking name length into account
      Support marking a call as pure
      add harmony branch details in README (#1507)
      optimize trivial IIFEs returning constants (#1530)
      collapse_vars should not replace constant in for-in init section (#1538)
      disallow collapse_vars constant replacement in for-in statements (#1543)
      collapse_vars: do not replace a constant in loop condition or init (#1562)
      fix regression: CLI options with hyphens like -b ascii-only (#1640)
      optimize conditional when condition symbol matches consequent (#1684)
      fuzz regexp literals, more constant numbers, typeof expression (#1755)
      update README for 3.x (#1840)
      Update ISSUE_TEMPLATE.md (#1846)
      improve literal return optimization (#1860)
      [3.x] fix documentation for beautify options (#1882)
      Change `harmony` to `uglify-es` in master README (#1895)
      Remove unnecessary `git clone` instructions in README (#1897)
      Update issue template: change harmony to uglify-es (#1900)
      update README (#1918)
      Tweak README Notes (#1934)
      reorg README for 3.x (#1942)
      document minify `warnings` and add an error example (#1973)
      document 3.x minify() does not throw errors (#1975)
      document minify() option `toplevel` (#1979)
      add "es5" to package.json keywords (#1980)
      more refinement of minify() documentation (#1983)
      add another minify() options example (#1988)
      fix and expand --mangle-props documentation (#2008)
      better document mangle properties options (#2009)
      clarify what --mangle-props does (#2012)
      reformat mangle options section of README (#2036)
      better document behavior of unsafe_Func (#2043)
      add comment about quote_style and gzip (#2092)
      document fast mangle-only minify mode (#2194)
      docs: update benchmarks using node 8, add babili (#2218)
      issue template: describe acceptable JS input (#2255)
      add `Date` and other known globals to `unsafe` compress option (#2302)
      fix "use asm" numeric output (#2328)
      document compress option `hoist_props` (#2399)
      update documentation for `reduce_funcs` (#2478)
      Update ISSUE_TEMPLATE.md (#2481)
      document the `webkit` output option (#2490)
      improve `dead_code` tests (#2589)
      ufuzz: add strings "a", "b", "c" to VALUES (#2732)
      add SymbolDef IDs to --output ast (#2772)
      improve SymbolDef info in `--output ast` (#2778)
      fix `join_vars` property assignment for negative array index (#2810)

micschro (1):
      Fix max_line_len not working for JSON files

olsonpm (3):
      add documentation for `side_effects` & `[#@]__PURE__` (#1925)
      clarify wording (#1931)
      document 3 max passes (#1928)

pengzhenqing (1):
      Add an option for writing inline source map

philippsimon (1):
      Fix: Uglified Number.prototype functions on big numbers

plievone (1):
      Fix docs for keep_fargs

satyr (2):
      reimplemented #28 in a sane way
      unstrict equals operator when operands share the same type

sergeyv (1):
      Revert "using the original sourcemap as the base"

slavic (1):
      make 2 symbol variable names range bigger (from 2862 to 3402)

startswithaj (1):
      Make_string was missing \v and wasnt reversing vertical tabs even though read_escaped_char coverts them

tav (1):
      Implemented --define-from-module constant substitution.

thorn0 (2):
      Compatibility with the JScript engine, which doesn't support the \v escape sequence
      Advanced way to specify if a function call might have side effects. #400

truiken (1):
      Resolve the relative path to lib files last

なつき (1):
      Fix long options

-----------------------------------------------------------------------

No new revisions were added by this update.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/uglifyjs.git



More information about the Pkg-javascript-commits mailing list