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 -~----------~----~----~----~------~----~------~--~---