Handle 'not ternary'

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

Branch: refs/heads/develop
Commit: 32186ca1bca69ea57d1be56c19199701a6164344
Parents: c30116a
Author: Alex Harui <aha...@apache.org>
Authored: Fri Apr 19 09:44:57 2013 -0700
Committer: Alex Harui <aha...@apache.org>
Committed: Fri Apr 19 10:37:01 2013 -0700

----------------------------------------------------------------------
 .../compiler/internal/codegen/as/ASEmitter.java    |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/32186ca1/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
index 19955e3..621105e 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
@@ -42,6 +42,8 @@ import 
org.apache.flex.compiler.internal.tree.as.ChainedVariableNode;
 import org.apache.flex.compiler.internal.tree.as.ContainerNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionNode;
 import org.apache.flex.compiler.internal.tree.as.LabeledStatementNode;
+import org.apache.flex.compiler.internal.tree.as.NamespaceAccessExpressionNode;
+import org.apache.flex.compiler.internal.tree.as.TernaryOperatorNode;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
@@ -1379,7 +1381,17 @@ public class ASEmitter implements IASEmitter, IEmitter
                 || node.getNodeID() == ASTNodeID.Op_AddID)
         {
             write(node.getOperator().getOperatorText());
-            getWalker().walk(node.getOperandNode());
+            IExpressionNode opNode = node.getOperandNode();
+            if (opNode instanceof TernaryOperatorNode)
+            {
+                write(ASEmitterTokens.PAREN_OPEN);
+                getWalker().walk(node.getOperandNode());
+                write(ASEmitterTokens.PAREN_CLOSE);
+            }
+            else
+            {
+                getWalker().walk(node.getOperandNode());            
+            }
         }
 
         else if (node.getNodeID() == ASTNodeID.Op_PostIncrID

Reply via email to