Commit Graph

1823 Commits

Author SHA1 Message Date
Mihai Bazon df8c5623af minor 2013-12-10 19:39:03 +02:00
Mihai Bazon a790c09c91 v2.4.7 v2.4.7 2013-12-09 12:09:31 +02:00
Mihai Bazon 8f35a363d9 AST_Catch shouldn't really inherit from AST_Scope. Fix #363
I hereby acknowledge that figure_out_scope has become a mess.
2013-12-05 13:30:29 +02:00
Mihai Bazon d2190c2bf3 Properly scope catch identifier when --screw-ie8
Fix #344
v2.4.6
2013-11-28 16:43:30 +02:00
Mihai Bazon ea10642572 v2.4.6, because npm is foobar 2013-11-28 15:05:32 +02:00
Mihai Bazon 547561a568 v2.4.5 v2.4.5 2013-11-28 13:15:27 +02:00
Mihai Bazon c16d538ce7 Add --noerr to turn off argument name checking
for now only used for keys passed to `-c` or `-b`.
2013-11-28 13:15:01 +02:00
Mihai Bazon 73d082df2e v2.4.4 v2.4.4 2013-11-27 14:24:26 +02:00
Mihai Bazon 50b8d7272c Fix faulty compression
`String(x + 5)` is not always the same as `x + "5"`.  Overlooked that. :-(

Close #350
2013-11-20 21:13:16 +02:00
Mihai Bazon 7d11b96f48 Only descend twice after drop_unused if it's the same node type.
Fix #345
2013-11-08 11:57:17 +02:00
Mihai Bazon eab99a1c3d 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.
v2.4.3
2013-11-06 10:48:48 +02:00
Mihai Bazon 19e2fb134d v2.4.3 2013-11-06 10:21:29 +02:00
Mihai Bazon f4919e3a25 Do not lift sequence from right-hand side of binary operation. Fix #343 2013-11-06 10:18:28 +02:00
Mihai Bazon bb700daa4c v2.4.2 v2.4.2 2013-11-03 23:41:07 +02:00
Mihai Bazon 263577d5eb [README] Fix #278 2013-10-30 14:13:30 +02:00
Mihai Bazon 63287c0e68 Workaround for Safari bug
Close #313
2013-10-30 13:59:59 +02:00
Mihai Bazon c5ed2292bf 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
2013-10-30 11:50:22 +02:00
Mihai Bazon b70670b69f Fix regression after e4c5302406
`x * (y * z)` ==> `x * y * z` -- the better place to do this is in the
compressor rather than codegen.
2013-10-30 10:45:58 +02:00
Mihai Bazon 9dd97605bc indentation 2013-10-30 10:44:50 +02:00
Mihai Bazon e4c5302406 Fix output for x = 2 * (a % b / b * c)
(issue #337)
2013-10-30 09:11:55 +02:00
Mihai Bazon bea3d90771 minor 2013-10-30 09:10:56 +02:00
Richard van Velzen 785c6064cc Disallow reversal where lhs has higher or equal precedence
Fixes #267
2013-10-29 21:37:36 +01:00
Mihai Bazon b214d3786f Fix typo 2013-10-29 15:53:54 +02:00
Mihai Bazon 7cf79c302b Fix reading arguments
i.e. read `-c unsafe,unsafe-comps` as `-c unsafe=true,unsafe_comps=true`
2013-10-29 14:01:26 +02:00
Mihai Bazon a14c6b6574 Avoid shadowing name of function expression with function argument
Close #179, #326, #327
2013-10-29 13:18:09 +02:00
Mihai Bazon f1b7094a57 Add "preamble" output option
Close #335
2013-10-29 11:09:18 +02:00
Mihai Bazon 0358e376f0 Fix codegen for when comments_before is undefined.
Fix #333
2013-10-28 09:39:29 +02:00
Mihai Bazon b47f7b76b9 Merge branch 'master' of github.com:mishoo/UglifyJS2 2013-10-27 10:03:01 +02:00
Mihai Bazon 582cc55cff Display number of failed tests and corresponding files 2013-10-27 10:02:44 +02:00
Mihai Bazon 8979579e55 Merge pull request #330 from markjaquith/master
Unit test to detect issue in 8d14efe for #126 that causes aggressive parenthesis removal, functional differences
2013-10-27 01:01:57 -07:00
Mihai Bazon 0d6e08c541 Merge pull request #331 from rvanvelzen/rhs-strings-fix
Fix RHS concat (raised in #330)
2013-10-27 01:01:11 -07:00
Richard van Velzen e2daee9a65 Fix RHS concat (raised in #330)
When attempting to concat the left-side of the rhs, make sure the rhs is
a string.
2013-10-26 18:44:52 +02:00
Mark Jaquith 9cd118ca3d Add a unit test for issue-126
Add a unit test to test to test for aggressive parenthesis removal that causes functional changes.
2013-10-25 16:28:15 -04:00
Mihai Bazon cfd5c6155c Merge pull request #325 from rvanvelzen/fix-269
Fix #269
2013-10-24 02:39:07 -07:00
Richard van Velzen 1a5a4bd631 Fix #269
Shorten most primitives where possible. Also optimize some edge cases.
2013-10-24 11:08:33 +02:00
Mihai Bazon 63e1a8e1fd Merge pull request #323 from rvanvelzen/undefined-drop-vars-fix
Fix #280
2013-10-23 13:58:09 -07:00
Richard van Velzen 7055af8221 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.
2013-10-23 22:26:04 +02:00
Mihai Bazon aafe2e1db3 Merge pull request #322 from rvanvelzen/test-exit-code-1
Add an exit code to the test suite
2013-10-23 11:37:36 -07:00
Richard van Velzen 118105db43 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.
2013-10-23 20:24:58 +02:00
Mihai Bazon 63d04fff69 Revert #3a81f60 for now
(with it some tests break and it can generate invalid output, see issue #44)
v2.4.1
2013-10-22 21:50:55 +03:00
Mihai Bazon 8c9cc920fb v2.4.1 2013-10-22 21:31:01 +03:00
Mihai Bazon d09f0adae3 arguments outside of a function is an ordinary variable.
Fix #501
2013-10-17 18:20:33 +03:00
Mihai Bazon 3fa9265ce4 wrap up 2013-10-09 22:15:43 +03:00
Mihai Bazon 3a81f60982 Don't drop_unused before compression.
Fix #280, #282
2013-10-09 19:15:09 +03:00
Mihai Bazon f2348dd98b Rename clean_getters to pure_getters; add pure_funcs. 2013-10-04 13:17:25 +03:00
Mihai Bazon 253c7c2325 Merge pull request #308 from meteor/fix-unicode-keys
Only allow identifier start characters at the beginning of identifiers.
2013-10-04 00:13:52 -07:00
David Glasser bb0a762d12 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.)
2013-10-03 17:02:19 -07:00
Mihai Bazon 8cc86fee60 add clean_getters compressor option (default false)
allows one to specify if `foo.bar` is considered to have side effects.
2013-10-02 19:38:01 +03:00
Mihai Bazon 88fb83aa81 minor optimization
unlikely to help in hand-written code:

    (something() ? foo : bar) == foo  ==>  something()
2013-10-02 15:31:31 +03:00
Mihai Bazon 95b4507c02 Fix error in the output minifying Function("return this")() 2013-09-30 11:49:29 +03:00