Mihai Bazon [Thu, 28 Nov 2013 11:15:01 +0000 (13:15 +0200)]
Add --noerr to turn off argument name checking
for now only used for keys passed to `-c` or `-b`.
Mihai Bazon [Wed, 27 Nov 2013 12:24:26 +0000 (14:24 +0200)]
v2.4.4
Mihai Bazon [Wed, 20 Nov 2013 19:13:16 +0000 (21:13 +0200)]
Fix faulty compression
`String(x + 5)` is not always the same as `x + "5"`. Overlooked that. :-(
Close #350
Mihai Bazon [Fri, 8 Nov 2013 09:57:17 +0000 (11:57 +0200)]
Only descend twice after drop_unused if it's the same node type.
Fix #345
Mihai Bazon [Wed, 6 Nov 2013 08:47:36 +0000 (10:47 +0200)]
Better fix for #343
We can in fact lift sequences, but only if the operation is assignment and
the left-hand side has no side effects nor property access -- that should
guarantee that whatever we place before it cannot affect the sense of the
assignment.
Dropped contrived test case (too hard to support it now), added a more
meaningful one.
Mihai Bazon [Wed, 6 Nov 2013 08:21:29 +0000 (10:21 +0200)]
v2.4.3
Mihai Bazon [Wed, 6 Nov 2013 08:18:28 +0000 (10:18 +0200)]
Do not lift sequence from right-hand side of binary operation. Fix #343
Mihai Bazon [Sun, 3 Nov 2013 21:41:07 +0000 (23:41 +0200)]
v2.4.2
Mihai Bazon [Wed, 30 Oct 2013 12:13:10 +0000 (14:13 +0200)]
[README] Fix #278
Mihai Bazon [Wed, 30 Oct 2013 11:59:59 +0000 (13:59 +0200)]
Workaround for Safari bug
Close #313
Mihai Bazon [Wed, 30 Oct 2013 09:50:22 +0000 (11:50 +0200)]
Fix parsing setters/getters (allow keywords for name).
The "key" property was always "set" or "get", which didn't make much sense.
Now it'll be the actual name of the setter/getter (AST_Node), and the
AST_Accessor object itself, which represents the function, won't store any
name.
Close #319
Mihai Bazon [Wed, 30 Oct 2013 08:45:58 +0000 (10:45 +0200)]
Fix regression after
e4c530240650535d1cb46569dfb013193471af05
`x * (y * z)` ==> `x * y * z` -- the better place to do this is in the
compressor rather than codegen.
Mihai Bazon [Wed, 30 Oct 2013 08:44:50 +0000 (10:44 +0200)]
indentation
Mihai Bazon [Wed, 30 Oct 2013 07:11:55 +0000 (09:11 +0200)]
Fix output for `x = 2 * (a % b / b * c)`
(issue #337)
Mihai Bazon [Wed, 30 Oct 2013 07:10:56 +0000 (09:10 +0200)]
minor
Richard van Velzen [Tue, 29 Oct 2013 20:37:36 +0000 (21:37 +0100)]
Disallow reversal where lhs has higher or equal precedence
Fixes #267
Mihai Bazon [Tue, 29 Oct 2013 13:53:54 +0000 (15:53 +0200)]
Fix typo
Mihai Bazon [Tue, 29 Oct 2013 12:01:26 +0000 (14:01 +0200)]
Fix reading arguments
i.e. read `-c unsafe,unsafe-comps` as `-c unsafe=true,unsafe_comps=true`
Mihai Bazon [Tue, 29 Oct 2013 11:18:09 +0000 (13:18 +0200)]
Avoid shadowing name of function expression with function argument
Close #179, #326, #327
Mihai Bazon [Tue, 29 Oct 2013 08:43:43 +0000 (10:43 +0200)]
Add "preamble" output option
Close #335
Mihai Bazon [Mon, 28 Oct 2013 07:39:29 +0000 (09:39 +0200)]
Fix codegen for when comments_before is undefined.
Fix #333
Mihai Bazon [Sun, 27 Oct 2013 08:03:01 +0000 (10:03 +0200)]
Merge branch 'master' of github.com:mishoo/UglifyJS2
Mihai Bazon [Sun, 27 Oct 2013 08:02:44 +0000 (10:02 +0200)]
Display number of failed tests and corresponding files
Mihai Bazon [Sun, 27 Oct 2013 08:01:57 +0000 (01:01 -0700)]
Merge pull request #330 from markjaquith/master
Unit test to detect issue in
8d14efe for #126 that causes aggressive parenthesis removal, functional differences
Mihai Bazon [Sun, 27 Oct 2013 08:01:11 +0000 (01:01 -0700)]
Merge pull request #331 from rvanvelzen/rhs-strings-fix
Fix RHS concat (raised in #330)
Richard van Velzen [Sat, 26 Oct 2013 16:44:52 +0000 (18:44 +0200)]
Fix RHS concat (raised in #330)
When attempting to concat the left-side of the rhs, make sure the rhs is
a string.
Mark Jaquith [Fri, 25 Oct 2013 20:28:15 +0000 (16:28 -0400)]
Add a unit test for issue-126
Add a unit test to test to test for aggressive parenthesis removal that causes functional changes.
Mihai Bazon [Thu, 24 Oct 2013 09:39:07 +0000 (02:39 -0700)]
Merge pull request #325 from rvanvelzen/fix-269
Fix #269
Richard van Velzen [Thu, 24 Oct 2013 09:08:33 +0000 (11:08 +0200)]
Fix #269
Shorten most primitives where possible. Also optimize some edge cases.
Mihai Bazon [Wed, 23 Oct 2013 20:58:09 +0000 (13:58 -0700)]
Merge pull request #323 from rvanvelzen/undefined-drop-vars-fix
Fix #280
Richard van Velzen [Wed, 23 Oct 2013 20:26:04 +0000 (22:26 +0200)]
Fix #280
The `init` of the `ForStatement` is not a `BlockStatement` before it was
descended. The descend has to happen first, and *then* the actual
checks.
Mihai Bazon [Wed, 23 Oct 2013 18:37:36 +0000 (11:37 -0700)]
Merge pull request #322 from rvanvelzen/test-exit-code-1
Add an exit code to the test suite
Richard van Velzen [Wed, 23 Oct 2013 18:24:58 +0000 (20:24 +0200)]
Add an exit code to the test suite
By adding the exit code 1 (or any other non-zero exit code) `npm test`
will know the tests didn't perform correctly. This way it's easier to
know if pull requests are good or bad.
Mihai Bazon [Tue, 22 Oct 2013 18:49:33 +0000 (21:49 +0300)]
Revert #
3a81f60 for now
(with it some tests break and it can generate invalid output, see issue #44)
Mihai Bazon [Tue, 22 Oct 2013 18:31:01 +0000 (21:31 +0300)]
v2.4.1
Mihai Bazon [Thu, 17 Oct 2013 15:20:33 +0000 (18:20 +0300)]
`arguments` outside of a function is an ordinary variable.
Fix #501
Mihai Bazon [Wed, 9 Oct 2013 19:15:43 +0000 (22:15 +0300)]
wrap up
Mihai Bazon [Wed, 9 Oct 2013 16:15:09 +0000 (19:15 +0300)]
Don't drop_unused before compression.
Fix #280, #282
Mihai Bazon [Fri, 4 Oct 2013 10:17:25 +0000 (13:17 +0300)]
Rename clean_getters to pure_getters; add pure_funcs.
Mihai Bazon [Fri, 4 Oct 2013 07:13:52 +0000 (00:13 -0700)]
Merge pull request #308 from meteor/fix-unicode-keys
Only allow identifier start characters at the beginning of identifiers.
David Glasser [Fri, 4 Oct 2013 00:02:19 +0000 (17:02 -0700)]
Only allow identifier start characters at the beginning of identifiers.
Without this fix, the following source:
x = {"\u200c": 42};
would incorrectly be converted into a quoteless key. But while \u200c is allowed
to be in identifiers, it cannot be at the beginning, as per ES5.
(For example, the SockJS client library doesn't work under uglify starting with
d9ad3c7c.)
Mihai Bazon [Wed, 2 Oct 2013 16:33:45 +0000 (19:33 +0300)]
add `clean_getters` compressor option (default `false`)
allows one to specify if `foo.bar` is considered to have side effects.
Mihai Bazon [Wed, 2 Oct 2013 12:31:31 +0000 (15:31 +0300)]
minor optimization
unlikely to help in hand-written code:
(something() ? foo : bar) == foo ==> something()
Mihai Bazon [Mon, 30 Sep 2013 08:49:29 +0000 (11:49 +0300)]
Fix error in the output minifying `Function("return this")()`
Mihai Bazon [Sun, 22 Sep 2013 12:26:10 +0000 (15:26 +0300)]
More attempts to determine when addition is associative
Somebody hit me with bug reports on this. :)
Refs #300
Mihai Bazon [Sun, 22 Sep 2013 11:54:32 +0000 (14:54 +0300)]
Actually let's move away those monsters from the evaluate function
ev() should do a single thing — evaluate constant expressions. if that's
not possible, just return the original node. it's not the best place for
partial evaluation there, instead doing it in the compress functions.
Mihai Bazon [Sun, 22 Sep 2013 10:12:34 +0000 (13:12 +0300)]
More dirty handling of [ ... ].join() in unsafe mode
Close #300
Dan Wolff [Fri, 20 Sep 2013 04:24:25 +0000 (06:24 +0200)]
Evaluate [...].join() if possible: minor bugfix
Follow-up to
78e98d2.
Mihai Bazon [Thu, 19 Sep 2013 15:20:45 +0000 (18:20 +0300)]
When `unsafe` is set, evaluate [...].join() if possible
Close #298
Dan Wolff [Thu, 19 Sep 2013 08:58:50 +0000 (10:58 +0200)]
Concatenate strings also on the right-hand side of an expression that cannot be evaluated. Fix #126
E.g. converts:
a+'Hello'+'World'
to
a+'HelloWorld'
Mihai Bazon [Fri, 6 Sep 2013 07:10:45 +0000 (10:10 +0300)]
Avoid printing <!-- in the output (HTML5 comment)
Mihai Bazon [Fri, 6 Sep 2013 06:54:30 +0000 (09:54 +0300)]
Support HTML5 comment syntax (enabled by default!)
See http://javascript.spec.whatwg.org/#comment-syntax
https://github.com/mishoo/UglifyJS/issues/503
https://github.com/marijnh/acorn/issues/62
Mihai Bazon [Fri, 6 Sep 2013 06:52:56 +0000 (09:52 +0300)]
minor
Mihai Bazon [Mon, 2 Sep 2013 16:38:00 +0000 (19:38 +0300)]
Fix names.
Mihai Bazon [Mon, 2 Sep 2013 16:36:16 +0000 (19:36 +0300)]
Disallow `continue` referring to a non-IterationStatement. Fix #287
Simplifies handling of labels (their definition/references can be easily
figured out at parse time, no need to do it in `figure_out_scope`).
Mihai Bazon [Mon, 2 Sep 2013 08:36:48 +0000 (11:36 +0300)]
Better fix for #286
Mihai Bazon [Mon, 2 Sep 2013 08:09:54 +0000 (11:09 +0300)]
Fix parsing `a.case /= 1`
Close #286
Mihai Bazon [Mon, 2 Sep 2013 06:56:27 +0000 (09:56 +0300)]
Fix parsing regexp after unary-prefix operator
++/x/.y
Fix #284
Mihai Bazon [Mon, 2 Sep 2013 06:55:34 +0000 (09:55 +0300)]
Better reporting of parse errors
Mihai Bazon [Thu, 22 Aug 2013 12:06:42 +0000 (15:06 +0300)]
v2.4.0
Mihai Bazon [Thu, 22 Aug 2013 07:10:25 +0000 (10:10 +0300)]
Remove --ie-proof from the readme.
Fix #276
Mihai Bazon [Tue, 20 Aug 2013 14:45:52 +0000 (17:45 +0300)]
Move support for `negate_iife` in the compressor, rather than code generator
(the code generator doesn't maintain enough context to know whether
the return value is important or discarded)
Fixes #272
Mihai Bazon [Mon, 19 Aug 2013 07:21:08 +0000 (00:21 -0700)]
Merge pull request #270 from michaelficarra/GH-259
fixes #259: don't unnecessarily quote object properties when --screw-ie8
Michael Ficarra [Mon, 19 Aug 2013 00:45:06 +0000 (19:45 -0500)]
fixes #259: don't unnecessarily quote object properties when --screw-ie8
Mihai Bazon [Thu, 8 Aug 2013 06:15:13 +0000 (09:15 +0300)]
fix usage
Mihai Bazon [Wed, 7 Aug 2013 09:04:58 +0000 (12:04 +0300)]
Don't drop unused setter argument.
Fix #257
Mihai Bazon [Wed, 7 Aug 2013 08:43:47 +0000 (11:43 +0300)]
Support `-p relative`. Fix #256
Forbes Lindesay [Thu, 1 Aug 2013 04:51:09 +0000 (05:51 +0100)]
Add support for browserify
Mihai Bazon [Sun, 4 Aug 2013 18:44:17 +0000 (21:44 +0300)]
Don't pretend to evaluate lambdas
Fix #255
Mihai Bazon [Tue, 30 Jul 2013 09:16:29 +0000 (12:16 +0300)]
Fix #251
Mihai Bazon [Sun, 28 Jul 2013 08:11:11 +0000 (11:11 +0300)]
Don't require arguments to --enclose
Mihai Bazon [Thu, 25 Jul 2013 15:08:36 +0000 (18:08 +0300)]
Reverting "added option for dropping unused params"
Revert "added option for dropping unused params"
(turns out we already had the `unused` option for this.)
This reverts commit
e54df2226f7f3887d2f850cea8caf5c0353dce00.
Dusan Bartos [Thu, 25 Jul 2013 13:32:21 +0000 (15:32 +0200)]
added option for dropping unused params
David Glasser [Wed, 16 Jan 2013 19:59:19 +0000 (14:59 -0500)]
Fix output for arrays whose last element is a hole: [1,,]
1529ab96 started to do this (by considering holes to be separate from
"undefined") but it still converted
[1,,] (length 2, last element hole, trailing comma)
to
[1,] (length 1, trailing comma)
Unfortunately the test suite doesn't really make this clear: the new test here
passes with or without this patch because run-tests.js beautifys the expected
output (in "make_code"), which does the incorrect transformation! If you make
some manual change to arrays.js to make the test fail and see the INPUT and
OUTPUT, then you can see that without this fix, [1,,] -> [1,], and with this fix
it stays [1,,].
Mihai Bazon [Mon, 15 Jul 2013 08:59:23 +0000 (11:59 +0300)]
Revert previous patch, it was no good.
Mihai Bazon [Mon, 15 Jul 2013 08:27:11 +0000 (11:27 +0300)]
Add "position" option to parser, to specify initial pos/line/col
(for parsing embedded scripts)
Mihai Bazon [Sun, 14 Jul 2013 10:24:09 +0000 (13:24 +0300)]
Apply transformer to AST_VarDef's name
Fix #237
Mihai Bazon [Fri, 12 Jul 2013 06:56:58 +0000 (09:56 +0300)]
Fix typo.
Close #239
Mihai Bazon [Fri, 28 Jun 2013 07:08:13 +0000 (10:08 +0300)]
Reset the base54 counters every time minify is called.
Close #229
Mihai Bazon [Fri, 7 Jun 2013 09:51:23 +0000 (12:51 +0300)]
Don't swap binary ops when "use asm" is in effect.
Refs #167
Mihai Bazon [Mon, 3 Jun 2013 18:10:14 +0000 (11:10 -0700)]
Merge pull request #220 from lautis/escape-null
Escape null characters as \x00
Ville Lautanala [Mon, 3 Jun 2013 17:18:42 +0000 (20:18 +0300)]
Escape null characters as \x00
Since \0 might be mistakenly interpreted as octal if followed by a
number and using literal null is in some cases interpreted as end of
string, escape null as \x00.
Mihai Bazon [Thu, 23 May 2013 20:42:32 +0000 (23:42 +0300)]
v2.3.6
Mihai Bazon [Wed, 22 May 2013 18:30:54 +0000 (11:30 -0700)]
Merge pull request #213 from mattrobenolt/patch-1
SourceMapping pragma has changed to //#
Mihai Bazon [Wed, 22 May 2013 18:22:14 +0000 (21:22 +0300)]
Add `negate_iife` option to the code generator.
See discussion in
a9511dfbe5c0d96d8cacb87582aa9a19737bbb98
Mihai Bazon [Wed, 22 May 2013 10:08:19 +0000 (13:08 +0300)]
Set "global" on undeclared SymbolDef-s
Matt Robenolt [Tue, 21 May 2013 14:50:21 +0000 (08:50 -0600)]
The extra /* */ isn't needed now
Matt Robenolt [Tue, 21 May 2013 14:46:27 +0000 (08:46 -0600)]
SourceMapping pragma has changed to //#
See: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
The spec was updated on May 16th since `//@` was causing some issues with IE.
Mihai Bazon [Mon, 20 May 2013 05:27:37 +0000 (08:27 +0300)]
Fix output of statement: `new function(){...};`
Close #209
Mihai Bazon [Sun, 19 May 2013 11:25:05 +0000 (14:25 +0300)]
v2.3.5
Mihai Bazon [Sun, 19 May 2013 11:24:33 +0000 (14:24 +0300)]
Fix package.json (use `repository` instead of `repositories`)
Mihai Bazon [Wed, 15 May 2013 10:27:40 +0000 (13:27 +0300)]
v2.3.4
Mihai Bazon [Wed, 15 May 2013 10:27:23 +0000 (13:27 +0300)]
Add `--expr`, an option to parse a single expression (suitable for JSON)
Mihai Bazon [Tue, 14 May 2013 15:36:31 +0000 (18:36 +0300)]
Only compress code in `new Function` if all arguments are strings.
Mihai Bazon [Tue, 14 May 2013 08:33:28 +0000 (11:33 +0300)]
v2.3.3
Mihai Bazon [Tue, 14 May 2013 07:47:06 +0000 (10:47 +0300)]
Compress code passed to `new Function` if it's a constant.
Only for `--unsafe`.
Close #203
Mihai Bazon [Tue, 14 May 2013 07:41:28 +0000 (10:41 +0300)]
Fix a["1_1"]
Close #204
Mihai Bazon [Fri, 10 May 2013 09:56:24 +0000 (02:56 -0700)]
Merge pull request #202 from nschonni/add-travis-ci
Add CI build for supported Node versions
Mihai Bazon [Thu, 9 May 2013 05:58:55 +0000 (08:58 +0300)]
v2.3.2
Mihai Bazon [Thu, 9 May 2013 05:58:47 +0000 (08:58 +0300)]
Use the negation hack rather than parens for a toplevel function expression call
(only in !beautify mode)