Reviewers: scottb, jgw,

Description:

While fixing the other stuff in JsToStringGeneration, this seemed like
an easy one to add, but its effect is close to zero on most GWT code
bases.

new Array() -> []
new Object() -> {}

See
http://code.google.com/p/google-web-toolkit/wiki/ArrayAndObjectLiteralOptimization

It would only really help if some really bad Javascript programmers
wrote some really bad JSNI code.

Probably not worth committing, but review at your pleasure.


Please review this at http://gwt-code-reviews.appspot.com/47810

Affected files:
   dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java


Index: dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java
===================================================================
--- dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(revision 5638)
+++ dev/core/src/com/google/gwt/dev/js/JsToStringGenerationVisitor.java  
(working copy)
@@ -570,10 +570,25 @@

    @Override
    public boolean visit(JsNew x, JsContext<JsExpression> ctx) {
+    JsExpression ctorExpr = x.getConstructorExpression();
+    // Implementation of wiki/ArrayAndObjectLiteralOptimization
+    if(ctorExpr instanceof JsNameRef) {
+      String nameRef = ((JsNameRef)ctorExpr).getIdent();
+      if("Array".equals(nameRef)) {
+        _lsquare();
+        _rsquare();
+        return false;
+      }
+      else if("Object".equals(nameRef)) {
+        _lbrace();
+        _rbrace();
+        return false;
+      }
+    }
+
      _new();
      _space();

-    JsExpression ctorExpr = x.getConstructorExpression();
      boolean needsParens = JsConstructExpressionVisitor.exec(ctorExpr);
      if (needsParens) {
        _lparen();



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

Reply via email to