UglifyJS.git
9 years agoDocument passing source maps directly to minify() using inSourceMap
David Caldwell [Sat, 4 Apr 2015 00:27:28 +0000 (17:27 -0700)]
Document passing source maps directly to minify() using inSourceMap

9 years agov2.4.19
Mihai Bazon [Sun, 29 Mar 2015 11:02:37 +0000 (14:02 +0300)]
v2.4.19

9 years agoMerge pull request #660 from ntkme/fix-long-options
Mihai Bazon [Sun, 29 Mar 2015 11:01:21 +0000 (14:01 +0300)]
Merge pull request #660 from ntkme/fix-long-options

Fix long options

9 years agoFix long options
なつき [Sun, 29 Mar 2015 10:50:00 +0000 (03:50 -0700)]
Fix long options

9 years agoDisable testing with Node 0.8
Mihai Bazon [Sun, 29 Mar 2015 10:19:07 +0000 (13:19 +0300)]
Disable testing with Node 0.8

9 years agov2.4.18
Mihai Bazon [Sun, 29 Mar 2015 10:15:27 +0000 (13:15 +0300)]
v2.4.18

9 years agoUpdate README
Mihai Bazon [Sun, 29 Mar 2015 10:13:40 +0000 (13:13 +0300)]
Update README

9 years agoMerge branch 'propmangle'
Mihai Bazon [Sun, 29 Mar 2015 09:50:43 +0000 (12:50 +0300)]
Merge branch 'propmangle'

9 years agoAdd tool to extract property names
Mihai Bazon [Sun, 29 Mar 2015 09:38:06 +0000 (12:38 +0300)]
Add tool to extract property names

9 years agoMerge in more DOM properties.
Mihai Bazon [Tue, 24 Mar 2015 11:59:57 +0000 (13:59 +0200)]
Merge in more DOM properties.

9 years agoFix compressing `![foo()];` as a statement
Mihai Bazon [Mon, 23 Mar 2015 21:27:00 +0000 (23:27 +0200)]
Fix compressing `![foo()];` as a statement

need to check whether the literal has any side effects before replacing that
with `false`.

9 years ago[sequencesize] Actually even better:
Mihai Bazon [Sun, 22 Mar 2015 11:01:42 +0000 (13:01 +0200)]
[sequencesize] Actually even better:

do create the sequence even if the stat list is bigger than 2000 statements,
but limit the sequence itself to 2000 expressions.

Ref #414

9 years agoAvoid sequencesize for more than 2000 statements.
Mihai Bazon [Sun, 22 Mar 2015 10:51:15 +0000 (12:51 +0200)]
Avoid sequencesize for more than 2000 statements.

It hardly saves any bytes for a sequence so long, and it risks blowing the
stack with the recursive Seq functions.

Ref #414

9 years agoAdd start/end nodes for NaN/Infinity transformations
Mihai Bazon [Sun, 22 Mar 2015 10:50:36 +0000 (12:50 +0200)]
Add start/end nodes for NaN/Infinity transformations

9 years agoExport readDefaultReservedFile
Mihai Bazon [Sun, 22 Mar 2015 09:04:28 +0000 (11:04 +0200)]
Export readDefaultReservedFile

9 years agoKeep unused function arguments by default
Mihai Bazon [Fri, 20 Mar 2015 08:28:51 +0000 (10:28 +0200)]
Keep unused function arguments by default

Discarding unused function arguments affects function.length, which can lead
to some hard to debug issues.  This optimization is now done only in "unsafe
mode".

Fix #121

9 years agoDon't use Object.create
Mihai Bazon [Thu, 19 Mar 2015 10:54:43 +0000 (12:54 +0200)]
Don't use Object.create

9 years agotools/props.html: output complete JSON
Mihai Bazon [Thu, 19 Mar 2015 08:10:01 +0000 (10:10 +0200)]
tools/props.html: output complete JSON

9 years agoAdd --reserve-domprops along with a default exclusion list in tools/domprops.json
Mihai Bazon [Wed, 18 Mar 2015 10:09:09 +0000 (12:09 +0200)]
Add --reserve-domprops along with a default exclusion list in tools/domprops.json

9 years agoSupport multiple --reserved-file args
Mihai Bazon [Wed, 18 Mar 2015 09:53:17 +0000 (11:53 +0200)]
Support multiple --reserved-file args

9 years agoBump yargs version (for .array arguments)
Mihai Bazon [Wed, 18 Mar 2015 09:51:09 +0000 (11:51 +0200)]
Bump yargs version (for .array arguments)

9 years agoFix parsing for U+2028 / U+2029
Mihai Bazon [Wed, 18 Mar 2015 08:09:30 +0000 (10:09 +0200)]
Fix parsing for U+2028 / U+2029

(they should be treated as whitespace)

9 years agoFix parsing for U+2028 / U+2029
Mihai Bazon [Wed, 18 Mar 2015 08:09:30 +0000 (10:09 +0200)]
Fix parsing for U+2028 / U+2029

(they should be treated as whitespace)

9 years agotools/props.html: use try/catch in a few more places
Mihai Bazon [Tue, 17 Mar 2015 12:31:22 +0000 (14:31 +0200)]
tools/props.html: use try/catch in a few more places

9 years agoAdd tool to list DOM properties/methods
Mihai Bazon [Tue, 17 Mar 2015 09:46:04 +0000 (11:46 +0200)]
Add tool to list DOM properties/methods

9 years agoExport readNameCache / writeNameCache
Mihai Bazon [Tue, 17 Mar 2015 08:05:49 +0000 (10:05 +0200)]
Export readNameCache / writeNameCache

9 years agorename --prop-cache to --name-cache
Mihai Bazon [Mon, 16 Mar 2015 11:16:30 +0000 (13:16 +0200)]
rename --prop-cache to --name-cache

... and support storing there variable names as well, to help with multiple
invocations when mangling toplevel.

9 years agoFix prop mangling
Mihai Bazon [Mon, 16 Mar 2015 08:53:31 +0000 (10:53 +0200)]
Fix prop mangling

Even if not “defined”, do mangle if name exists in the cache.

9 years agoFix --reserved-file
Mihai Bazon [Sat, 14 Mar 2015 09:36:58 +0000 (11:36 +0200)]
Fix --reserved-file

9 years agoAdd property name mangler
Mihai Bazon [Sat, 14 Mar 2015 09:22:28 +0000 (11:22 +0200)]
Add property name mangler

We only touch properties that are present in an object literal, or which are
assigned to.  Example:

    x = { foo: 1 };
    x.bar = 2;
    x["baz"] = 3;
    x[cond ? "qwe" : "asd"] = 4;
    console.log(x.stuff);

The names "foo", "bar", "baz", "qwe" and "asd" will be mangled, and the
resulting mangled names will be used for the same properties throughout the
code.  The "stuff" will not be, since it's just referenced but never
assigned to.

This *will* break most of the code out there, but could work on carefully
written code: do not use eval, do not define methods or properties by
walking an array of names, etc.  Also, a comprehensive list of exclusions
needs to be passed, to avoid mangling properties that are standard in
JavaScript, DOM, used in external libraries etc.

9 years agov2.4.17
Mihai Bazon [Tue, 10 Mar 2015 22:03:12 +0000 (00:03 +0200)]
v2.4.17

9 years agoAdd filename to the JS_Parse_Error exception.
Edward Casbon [Mon, 11 Aug 2014 11:40:01 +0000 (12:40 +0100)]
Add filename to the JS_Parse_Error exception.

It would be nice to have access to the filename of the file that includes the code that causes a JavaScript error. This is especially handy if uglifying multiple files at once.

Only a small change is needed for this to happen as it's already available in the function that throws the error.

9 years agoAdd .npmignore
Rob Loach [Tue, 27 Jan 2015 20:55:05 +0000 (15:55 -0500)]
Add .npmignore

9 years agoClean up unit test breakage
Richard van Velzen [Wed, 11 Feb 2015 20:27:21 +0000 (21:27 +0100)]
Clean up unit test breakage

In 992b6b9fcce47ca67ecb14675f10b172ce7a99b5 unit test broke (which I missed). This was due to undeclared variables not being side-effects free.

However, since they're really not side-effect free, just declare them in the test cases.

9 years agoFix invalid removal of left side in && and || compression
Richard van Velzen [Wed, 11 Feb 2015 20:05:49 +0000 (21:05 +0100)]
Fix invalid removal of left side in && and || compression

See #637. This does not produce the optimal result, but it does prevent the removal of non-side-effect-free code.

9 years agoParse regexes properly
Anthony Van de Gejuchte [Tue, 10 Feb 2015 15:57:17 +0000 (16:57 +0100)]
Parse regexes properly

9 years agoDrop all `console` statements properly
Richard van Velzen [Sat, 31 Jan 2015 12:22:07 +0000 (13:22 +0100)]
Drop all `console` statements properly

Because the base reference can be an member expression as well, we have to dig a bit deeper to find the leftmost base reference.

Fixes #451

9 years agoAdd option to preserve/enforce string quote style
Mihai Bazon [Tue, 27 Jan 2015 20:26:27 +0000 (22:26 +0200)]
Add option to preserve/enforce string quote style

`-q 0` (default) use single or double quotes such as to minimize the number of
 bytes (prefers double quotes when both will do); this is the previous
 behavior.

`-q 1` -- always use single quotes

`-q 2` -- always use double quotes

`-q 3` or just `-q` -- always use the original quotes.

Related codegen option: `quote_style`.

Close #495
Close #460

Some `yargs` guru please tell me why `uglifyjs --help` doesn't display the
help string for `-q` / `--quotes`, and why it doesn't output the expected
argument types anymore, like good old `optimist` did.

9 years agoKeep single line comments after nlb, after nlb
Anthony Van de Gejuchte [Fri, 9 Jan 2015 15:46:40 +0000 (16:46 +0100)]
Keep single line comments after nlb, after nlb

Fixes #583

9 years agoMake empty source map values more reasonable in .minify()
Richard van Velzen [Mon, 26 Jan 2015 11:07:44 +0000 (12:07 +0100)]
Make empty source map values more reasonable in .minify()

`"null"` isn't a very usable value. `JSON.parse(null)` also gives `null`, which makes this fully backwards compatible.

Closes #616

9 years agofixes issue #621 SourceMap toString JSON format
Bryce Cronkite-Ratcliff [Sat, 24 Jan 2015 08:24:08 +0000 (00:24 -0800)]
fixes issue #621 SourceMap toString JSON format

The correct format of a sourcemap is acquired
from a mozilla source map generator by calling
toJSON on this object. This patch alters the
toString function on mozilla generators to print
the format that is to spec instead of the generator's
internal representation of itself.

9 years agoMerge pull request #615 from avdg/unicode
Mihai Bazon [Tue, 20 Jan 2015 11:00:31 +0000 (13:00 +0200)]
Merge pull request #615 from avdg/unicode

Give parser more unicode support

9 years agoAdd test
Anthony Van de Gejuchte [Mon, 19 Jan 2015 23:31:44 +0000 (00:31 +0100)]
Add test

9 years agoAdd unicode digit parsing support
Anthony Van de Gejuchte [Mon, 19 Jan 2015 20:35:53 +0000 (21:35 +0100)]
Add unicode digit parsing support

9 years agoUpdate unicode letter
Anthony Van de Gejuchte [Sun, 18 Jan 2015 23:59:29 +0000 (00:59 +0100)]
Update unicode letter

9 years agoOptimize conditionals where the consequent and alternative are both booleans and...
Tal Ater [Sat, 13 Sep 2014 15:59:19 +0000 (18:59 +0300)]
Optimize conditionals where the consequent and alternative are both booleans and not equivalent

9 years agoMerge pull request #612 from rvanvelzen/issue-611
Mihai Bazon [Mon, 12 Jan 2015 16:18:55 +0000 (18:18 +0200)]
Merge pull request #612 from rvanvelzen/issue-611

Replace the correct node when replacing in `void` sequences

9 years agoReplace the correct node when replacing in `void` sequences
Richard van Velzen [Mon, 12 Jan 2015 16:09:34 +0000 (17:09 +0100)]
Replace the correct node when replacing in `void` sequences

Close #611.

9 years agoMerge pull request #482 from arty-name/inline-ng-inject
Mihai Bazon [Sun, 11 Jan 2015 10:10:42 +0000 (12:10 +0200)]
Merge pull request #482 from arty-name/inline-ng-inject

added @ngInject support for inline functions

9 years agoMerge pull request #606 from rvanvelzen/document-double-dash
Mihai Bazon [Wed, 7 Jan 2015 21:17:08 +0000 (23:17 +0200)]
Merge pull request #606 from rvanvelzen/document-double-dash

Document `--` for usage in CLI class

9 years agoDocument `--` for usage in CLI class
Richard van Velzen [Wed, 7 Jan 2015 18:04:10 +0000 (19:04 +0100)]
Document `--` for usage in CLI class

Close #518

9 years agoFix make_node_from_constant for Regexp-s
Mihai Bazon [Wed, 7 Jan 2015 09:20:04 +0000 (11:20 +0200)]
Fix make_node_from_constant for Regexp-s

Close #588

9 years agoaborts(AST_If) returns the `if` node
Mihai Bazon [Tue, 6 Jan 2015 11:57:18 +0000 (13:57 +0200)]
aborts(AST_If) returns the `if` node

Previously it returned the abort node from the alternative branch.  This is
not much use as it can be different from the one in the body
branch (i.e. return vs. throw) and can trick us into issues like #591.

Fix #591

9 years agoLocation fix for Mozilla AST start token.
Ingvar Stepanyan [Fri, 8 Aug 2014 11:54:34 +0000 (14:54 +0300)]
Location fix for Mozilla AST start token.

9 years agoTrack ending lines/columns; fix end locations in Mozilla AST.
Ingvar Stepanyan [Fri, 8 Aug 2014 11:15:43 +0000 (14:15 +0300)]
Track ending lines/columns; fix end locations in Mozilla AST.

9 years agoAST_Do nodes: walk body before condition
Mihai Bazon [Tue, 6 Jan 2015 10:27:23 +0000 (12:27 +0200)]
AST_Do nodes: walk body before condition

9 years agoPass mangle options to `figure_out_scope` and `compute_char_frequence`
Richard van Velzen [Mon, 5 Jan 2015 18:10:32 +0000 (19:10 +0100)]
Pass mangle options to `figure_out_scope` and `compute_char_frequence`

Fix #219. Because the options were not set and `toplevel` is `false` by default, some toplevel names would sometimes not be mangled correctly.

9 years agoFix handling \r\n
Mihai Bazon [Mon, 5 Jan 2015 10:14:42 +0000 (12:14 +0200)]
Fix handling \r\n

Close #437

9 years agoDeclare boolean type for --keep-fnames
Mihai Bazon [Mon, 5 Jan 2015 09:20:00 +0000 (11:20 +0200)]
Declare boolean type for --keep-fnames

9 years agoMerge branch 'keep-function-expression-names' of https://github.com/rvanvelzen/UglifyJS2
Mihai Bazon [Mon, 5 Jan 2015 09:11:38 +0000 (11:11 +0200)]
Merge branch 'keep-function-expression-names' of https://github.com/rvanvelzen/UglifyJS2

9 years agoSupport keep_fnames in compressor, and --keep-fnames. #552
Mihai Bazon [Mon, 5 Jan 2015 09:03:13 +0000 (11:03 +0200)]
Support keep_fnames in compressor, and --keep-fnames. #552

Passing `--keep-fnames` will enable it both for compressor/mangler, so that
function names will not be dropped (when unused) nor mangled.

9 years agoAdd an option to prevent function names from being mangled
Richard van Velzen [Sun, 4 Jan 2015 19:53:19 +0000 (20:53 +0100)]
Add an option to prevent function names from being mangled

See #552. This is mostly useful for having the actual function names in traces.

9 years agousing the original sourcemap as the base
Caridy Patino [Tue, 11 Nov 2014 19:38:01 +0000 (14:38 -0500)]
using the original sourcemap as the base

* Creates a new SourceMapGenerator based on a SourceMapConsumer:
  https://github.com/mozilla/source-map#sourcemapgeneratorfromsourcemapsourcemapconsumer

9 years agoResolve the relative path to lib files last
truiken [Fri, 29 Aug 2014 18:41:13 +0000 (11:41 -0700)]
Resolve the relative path to lib files last

This allows usage of UglifyJS on build systems which have a flat (or non-matching relative) directory structure for source files.

9 years agoAdd a "keep_fnames" option to the compressor to retain function expression names
Richard van Velzen [Sun, 4 Jan 2015 19:14:38 +0000 (20:14 +0100)]
Add a "keep_fnames" option to the compressor to retain function expression names

See #552. This is useful for stack traces.

9 years agopasses in references to process and Buffer to silence ReferenceErrors
achingbrain [Thu, 28 Nov 2013 08:32:39 +0000 (08:32 +0000)]
passes in references to process and Buffer to silence ReferenceErrors

9 years agoFix backslashes in source-map paths on Windows
Derek Wickern [Thu, 23 Oct 2014 23:27:53 +0000 (16:27 -0700)]
Fix backslashes in source-map paths on Windows

9 years agoUpdate README.md
Austin Brown [Thu, 27 Mar 2014 06:15:44 +0000 (23:15 -0700)]
Update README.md

otions => options

9 years agoUse svg instead of png to get better image quality
Peter Dave Hello [Thu, 25 Dec 2014 14:41:33 +0000 (22:41 +0800)]
Use svg instead of png to get better image quality

9 years agoFix #556
Richard van Velzen [Thu, 23 Oct 2014 14:16:19 +0000 (16:16 +0200)]
Fix #556

`\uFEFF` (ZERO WIDTH NO-BREAK SPACE) is removed when parsing, but was
un-escaped for the output when `ascii_only` was false.

When using
UglifyJS multiple times (creating packages from minified sources, for
example), this would lead to problems because the byte was removed when
parsing for the second time.

9 years agoMerge pull request #570 from rvanvelzen/fix-569
Richard van Velzen [Sun, 4 Jan 2015 13:02:08 +0000 (14:02 +0100)]
Merge pull request #570 from rvanvelzen/fix-569

Fix #569

9 years agoMerge pull request #584 from clyfish/fix-base54
Richard van Velzen [Sun, 4 Jan 2015 13:00:23 +0000 (14:00 +0100)]
Merge pull request #584 from clyfish/fix-base54

fix base54

9 years agoMerge pull request #592 from micschro/patch-1
Richard van Velzen [Sun, 4 Jan 2015 12:53:31 +0000 (13:53 +0100)]
Merge pull request #592 from micschro/patch-1

Fix max_line_len not working for JSON files

9 years agoMerge pull request #600 from KenPowers/master
Richard van Velzen [Sun, 4 Jan 2015 12:52:02 +0000 (13:52 +0100)]
Merge pull request #600 from KenPowers/master

Use yargs instead of optimist.

9 years agoFix #569
Richard van Velzen [Thu, 23 Oct 2014 13:57:12 +0000 (15:57 +0200)]
Fix #569

When no arguments are given to `new Function()`, it should be treated as
a regular anonymous function (http://es5.github.io/#x15.3.2.1)

9 years agoUse yargs instead of optimist.
Kenneth Powers [Thu, 1 Jan 2015 06:04:54 +0000 (01:04 -0500)]
Use yargs instead of optimist.

9 years agoMerge pull request #599 from rvanvelzen/fix-597
Mihai Bazon [Wed, 31 Dec 2014 12:18:31 +0000 (14:18 +0200)]
Merge pull request #599 from rvanvelzen/fix-597

Fix #597

9 years agoFix #597
Richard van Velzen [Wed, 31 Dec 2014 11:23:00 +0000 (12:23 +0100)]
Fix #597

NaN and Infinity were replaced in the output generation, instead of
during compression. This could lead to results where `1/0` was inserted
without parens leading to invalid output.

The nodes are replaced in the compression step now, and the output
generation returns their regular names. This should not be a problem,
since they're already only constructed from the original name.

9 years agoFix max_line_len not working for JSON files
micschro [Wed, 17 Dec 2014 15:31:03 +0000 (16:31 +0100)]
Fix max_line_len not working for JSON files

As `maybe_newline()` is only called when `might_need_semicolon` is `true`, the `max_line_len` option has no effect for files without (or with very few) semicolons (like JSON files). A simple for this problem is to use `maybe_newline()` instead of `noop` as the `newline()` function in non-beautify mode.

9 years agov2.4.16
Mihai Bazon [Tue, 9 Dec 2014 13:21:44 +0000 (15:21 +0200)]
v2.4.16

9 years agoMerge pull request #546 from jacobk/patch-1
Mihai Bazon [Thu, 4 Dec 2014 12:07:08 +0000 (14:07 +0200)]
Merge pull request #546 from jacobk/patch-1

Use uglify source map token names if missing

9 years agofix base54
Cheng Liangyu [Mon, 1 Dec 2014 05:16:44 +0000 (13:16 +0800)]
fix base54

9 years agoAdd option to allow return outside of functions.
Mihai Bazon [Mon, 20 Oct 2014 15:12:13 +0000 (18:12 +0300)]
Add option to allow return outside of functions.

Close #288

9 years agoDocument `keep_fargs`. Close #557
Mihai Bazon [Sun, 28 Sep 2014 09:36:36 +0000 (12:36 +0300)]
Document `keep_fargs`.  Close #557

9 years agoReferencing a global is assumed to have side effects.
Mihai Bazon [Sun, 28 Sep 2014 08:16:51 +0000 (11:16 +0300)]
Referencing a global is assumed to have side effects.

Close #550

10 years agoMerge pull request #549 from Arnavion/unreferenced-catch-symbol
Mihai Bazon [Sat, 13 Sep 2014 06:29:34 +0000 (09:29 +0300)]
Merge pull request #549 from Arnavion/unreferenced-catch-symbol

Don't warn for an unreferenced exception symbol in a catch block.

10 years agoDon't warn for an unreferenced exception symbol in a catch block.
Arnavion [Sat, 13 Sep 2014 04:01:19 +0000 (21:01 -0700)]
Don't warn for an unreferenced exception symbol in a catch block.

10 years agoMerge pull request #541 from TalAter/conditional-improvements
Mihai Bazon [Tue, 9 Sep 2014 15:45:12 +0000 (18:45 +0300)]
Merge pull request #541 from TalAter/conditional-improvements

Conditional assignment of equivalent constants compressed  ( x=y?1:1 --> x=1 )

10 years agoUse uglify source map token names if missing
Jacob Kristhammar [Tue, 9 Sep 2014 11:02:50 +0000 (13:02 +0200)]
Use uglify source map token names if missing

10 years agoCompress conditions that have side effects using sequences
Tal Ater [Wed, 3 Sep 2014 23:57:49 +0000 (02:57 +0300)]
Compress conditions that have side effects using sequences

10 years agoAdded a test for else if
Tal Ater [Tue, 2 Sep 2014 22:35:30 +0000 (01:35 +0300)]
Added a test for else if

10 years agoCompress conditional assignments where all possible outcomes are equivalant and condi...
Tal Ater [Tue, 2 Sep 2014 20:30:25 +0000 (23:30 +0300)]
Compress conditional assignments where all possible outcomes are equivalant and condition has no side effects

10 years agoTurn foo.new into foo["new"] when not --screw-ie8. Fix #534
Mihai Bazon [Tue, 26 Aug 2014 07:11:01 +0000 (10:11 +0300)]
Turn foo.new into foo["new"] when not --screw-ie8.  Fix #534

10 years agoPrevent error for Function(""). Close #538
Mihai Bazon [Wed, 20 Aug 2014 06:16:34 +0000 (09:16 +0300)]
Prevent error for Function("").  Close #538

10 years agoMerge pull request #529 from RReverser/master
Mihai Bazon [Mon, 4 Aug 2014 20:05:29 +0000 (23:05 +0300)]
Merge pull request #529 from RReverser/master

Added example for usage with SpiderMonkey AST

10 years agoAdded example for usage with SpiderMonkey AST.
Ingvar Stepanyan [Mon, 4 Aug 2014 17:48:14 +0000 (20:48 +0300)]
Added example for usage with SpiderMonkey AST.

10 years agoMerge branch 'master' of https://github.com/RReverser/UglifyJS2
Mihai Bazon [Mon, 4 Aug 2014 06:01:19 +0000 (09:01 +0300)]
Merge branch 'master' of https://github.com/RReverser/UglifyJS2

10 years agoInstall newest NPM on oldest Node.js.
Ingvar Stepanyan [Sun, 3 Aug 2014 18:44:59 +0000 (21:44 +0300)]
Install newest NPM on oldest Node.js.

10 years agoAdded generative testing for AST conversions.
Ingvar Stepanyan [Sun, 3 Aug 2014 17:48:59 +0000 (20:48 +0300)]
Added generative testing for AST conversions.

10 years agoMerge branch 'patch-1' of https://github.com/gdw2/UglifyJS2
Mihai Bazon [Sun, 3 Aug 2014 08:08:39 +0000 (11:08 +0300)]
Merge branch 'patch-1' of https://github.com/gdw2/UglifyJS2