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; + } } }