Author: cromwellian
Date: Tue Jul  7 13:05:33 2009
New Revision: 5685

Modified:
    trunk/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java

Log:
Remove trailing parentheses from "new Constructor()" expressions. See  
http://code.google.com/p/google-web-toolkit/wiki/NewParenthesisRemovalOptimization



Modified:  
trunk/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
==============================================================================
---  
trunk/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java       
 
(original)
+++  
trunk/dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java       
 
Tue Jul  7 13:05:33 2009
@@ -76,6 +76,7 @@
  import java.util.ArrayList;
  import java.util.Iterator;
  import java.util.Set;
+import java.util.List;
  import java.util.regex.Pattern;

  /**
@@ -583,16 +584,22 @@
        _rparen();
      }

-    _lparen();
-    boolean sep = false;
-    for (Object element : x.getArguments()) {
-      JsExpression arg = (JsExpression) element;
-      sep = _sepCommaOptSpace(sep);
-      _parenPushIfCommaExpr(arg);
-      accept(arg);
-      _parenPopIfCommaExpr(arg);
+    /*
+     * If a constructor call has no arguments, it may simply be
+     * replaced with "new Constructor" with no parentheses.
+     */
+    List<JsExpression> args = x.getArguments();
+    if (args.size() > 0) {
+      _lparen();
+      boolean sep = false;
+      for (JsExpression arg : args) {
+        sep = _sepCommaOptSpace(sep);
+        _parenPushIfCommaExpr(arg);
+        accept(arg);
+        _parenPopIfCommaExpr(arg);
+      }
+      _rparen();
      }
-    _rparen();

      return false;
    }

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to