only wrap ++ in parens in certain cases

Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/096bc855
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/096bc855
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/096bc855

Branch: refs/heads/develop
Commit: 096bc85587edf2062408cd86971d06941ed747dd
Parents: e7f31d1
Author: Alex Harui <aha...@apache.org>
Authored: Fri Nov 14 22:27:52 2014 -0800
Committer: Alex Harui <aha...@apache.org>
Committed: Fri Nov 14 22:27:52 2014 -0800

----------------------------------------------------------------------
 .../internal/codegen/js/flexjs/JSFlexJSEmitter.java  | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/096bc855/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index 5e4951b..52f5303 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -62,6 +62,7 @@ import 
org.apache.flex.compiler.internal.tree.as.ChainedVariableNode;
 import org.apache.flex.compiler.internal.tree.as.ClassNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionCallNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionNode;
+import org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode;
 import org.apache.flex.compiler.internal.tree.as.ParameterNode;
 import org.apache.flex.compiler.internal.tree.as.RegExpLiteralNode;
 import org.apache.flex.compiler.internal.tree.as.UnaryOperatorAtNode;
@@ -1762,10 +1763,16 @@ public class JSFlexJSEmitter extends JSGoogEmitter 
implements IJSFlexJSEmitter
             }
             else
             {
-                write(ASEmitterTokens.PAREN_OPEN);
-                super.emitUnaryOperator(node);
-                write(ASEmitterTokens.PAREN_CLOSE);
-                return;
+               IASNode parentNode = node.getParent();
+               if (parentNode.getNodeID() == 
ASTNodeID.MemberAccessExpressionID &&
+                               
((MemberAccessExpressionNode)parentNode).getLeftOperandNode() == node)
+               {
+                       // GCC wanted parens around foo++.toString().  As in 
(foo++).toString();
+                       write(ASEmitterTokens.PAREN_OPEN);
+                       super.emitUnaryOperator(node);
+                       write(ASEmitterTokens.PAREN_CLOSE);
+                       return;
+               }
             }
 
         }

Reply via email to