Fix issues #222 and #324
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"+""

(fixes #399)
Add base54 digits override for unit tests.

Prevents unit tests from depending on how mangled variable name
generation is optimized for gzip compression.
Merge pull request #400 from proxv/override-digits-in-tests

Add base54 digits override for unit tests.
Also descend arg AST nodes in ast_squeeze function-call handler
Merge pull request #401 from proxv/ast-squeeze-call

Also descend arg AST nodes in ast_squeeze function-call handler
v1.3.0

- support for directives (i.e. "use strict";)
- newlines in multi-line comments trigger ASI
- added nodeunit dependency for NPM, other code restructuring
- apply ascii_only option to regexps
- allow defines when not mangling
- some parser/code generator fixes #376, #396
- (static) mangler optimization for gzip (#397)

Contributors (in no particular order):

Richard van Velzen <rvanvelzen@expert-shops.com>
Paul Baumgart <paul@proxv.com>
Mal Graty <mal.graty@googlemail.com>
Jez Ng <jezreel@gmail.com>
Robert Gust-Bardon <donate@robert.gust-bardon.org>
ast_mangle should, well, mangle by default. (fixes #404)
also don't mangle function names if !options.mangle (#404)
fix options for ast_mangle

issue #404
Remove unnecessary "+" sign in SignedInteger

A "+" sign is added unnecessarily for numbers like 1e21 (resulting in
1e+21) due to make_num using the Number.prototype.toString method
(15.7.4.2) which in turn performs the abstract operation ToString
(9.8) which adds the "+" sign in accordance with the last step of
9.8.1.

This patch removes the sign after the conversion in question by
replacing "e+" with "e".
Remove NOT in IfStatement with EmptyStatement (-s)

If the only statement of a nonterminal IfStatement is a nonterminal
EmptyStatement or a nonterminal IfStatement consists of two
nonterminal EmptyStatement symbols, such a statement is transformed
into a nonterminal ExpressionStatement that consists of a
UnaryExpression with the logical NOT operator and the expression found
in the nonterminal IfStatement.  The operator in question is
superfluous.

This patch omits the negation by detecting the described case earlier.
Merge pull request #407 from RGustBardon/1e+21

Remove unnecessary "+" sign in SignedInteger
Merge pull request #408 from RGustBardon/if-not

Remove NOT in IfStatement with EmptyStatement (-s)
Fix representation of infinite values

Infinite numbers (NaN and Infinity) were represented incorrectly due
to make_num using the Number.prototype.toString method (15.7.4.2)
which in turn performs the abstract operation ToString (9.8) which
returns a string "NaN" or "Infinity" in accordance with the first and
the fourth step of 9.8.1.

As the corresponding value properties of the global object can be
"shadowed", representing such numbers as "NaN" and "Infinity" can lead
to incorrect behavior. For example:

```javascript
with({
  get NaN() {
    throw new Error();
  }
}) {
  0 / 0;
}
```

This patch checks for the values in question in the make_num function
and represents them using MultiplicativeExpression nonterminals
(e.g. "0/0" instead of "NaN").
Merge pull request #410 from RGustBardon/infinite

Fix representation of infinite values
cleaner fix for 0/0, 1/0, -1/0 (issue #410)
minor --make stuff

- use eval rather than JSON.parse for reading the Makefile (I dislike the
  obligatory quotes in property names in JSON)

- locate files relative to the path of the Makefile