Fixes issue #1761 by adding parentheses around the qualifier of an invocation when appropriate.

Note: I screwed up this check-in and fixed it in r1798.

Found by: mmastrac
Patch by: sgross
Review by: me


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1794 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java b/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
index 0bba5c0..524b69f 100644
--- a/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
+++ b/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
@@ -524,7 +524,10 @@
 
   @Override
   public boolean visit(JsInvocation x, JsContext<JsExpression> ctx) {
-    accept(x.getQualifier());
+    JsExpression qualifier = x.getQualifier();
+//    _parenPush(x, qualifier, false);
+    accept(qualifier);
+//    _parenPop(x, qualifier, false);
 
     _lparen();
     boolean sep = false;
diff --git a/dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java b/dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java
index 3e63efb..fe4041a 100644
--- a/dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java
+++ b/dev/core/test/com/google/gwt/dev/js/JsToStringGenerationVisitorAccuracyTest.java
@@ -51,6 +51,10 @@
     doTest("(new (new (a(({a : 'b', c : 'd'}),[1,2,3,x,y,z]))())())()");
   }
 
+  public void testConditionalInvocation() throws Exception {
+    doTest("(flag?f:g)()");
+  }
+
   public void testConstructionInvocation() throws Exception {
     doTest("(new a())()");
   }
@@ -117,7 +121,7 @@
   private List<JsStatement> parse(List<JsStatement> expected, boolean compact)
       throws Exception {
     TextOutput text = new DefaultTextOutput(compact);
-    JsVisitor generator = new JsToStringGenerationVisitor(text);
+    JsVisitor generator = new JsSourceGenerationVisitor(text);
     generator.acceptList(expected);
     return parser.parse(new JsProgram().getScope(), new StringReader(
         text.toString()), 0);