You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/05/12 16:19:41 UTC
[3/3] git commit: [flex-falcon] [refs/heads/develop] - fix XML output
fix XML output
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/af288f13
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/af288f13
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/af288f13
Branch: refs/heads/develop
Commit: af288f13b4c404855f85495433bcea8d9a09432c
Parents: 6bd83ee
Author: Alex Harui <ah...@apache.org>
Authored: Thu May 12 09:19:32 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu May 12 09:19:32 2016 -0700
----------------------------------------------------------------------
.../codegen/js/jx/BinaryOperatorEmitter.java | 19 ++++++++++++++++---
.../js/flexjs/TestFlexJSGlobalClasses.java | 4 ++--
2 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/af288f13/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
index 6a6e470..231cee3 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
@@ -177,8 +177,19 @@ public class BinaryOperatorEmitter extends JSSubEmitter implements
}
else if (node.getNodeID() == ASTNodeID.Op_AddAssignID)
{
- getWalker().walk(xmlNode);
- write(" = ");
+ getWalker().walk(xmlNode.getLeftOperandNode());
+ IExpressionNode rightSide = xmlNode.getRightOperandNode();
+ if (rightSide instanceof UnaryOperatorAtNode)
+ {
+ write(".setAttribute('");
+ getWalker().walk(((UnaryOperatorAtNode)rightSide).getChild(0));
+ }
+ else
+ {
+ write(".setChild('");
+ getWalker().walk(rightSide);
+ }
+ write("', ");
getWalker().walk(node.getLeftOperandNode());
write(".plus(");
getWalker().walk(node.getRightOperandNode());
@@ -242,7 +253,9 @@ public class BinaryOperatorEmitter extends JSSubEmitter implements
if (node.getNodeID() == ASTNodeID.Op_AddAssignID)
{
getWalker().walk(leftSide);
- write(".concat(");
+ write(" = ");
+ getWalker().walk(leftSide);
+ write(".plus(");
getWalker().walk(node.getRightOperandNode());
write(ASEmitterTokens.PAREN_CLOSE);
return;
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/af288f13/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
index 5851986..f96646e 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
@@ -569,7 +569,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
{
IBinaryOperatorNode node = getBinaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");a.foo += a.child");
asBlockWalker.visitBinaryOperator(node);
- //assertOut("a.child('foo') = a.child('foo').plus(a.child('child'))");
+ assertOut("a.setChild('foo', a.child('foo').plus(a.child('child'))");
}
@Test
@@ -577,7 +577,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
{
IBinaryOperatorNode node = getBinaryNode("var a:XMLList; var b:XMLList; a += b");
asBlockWalker.visitBinaryOperator(node);
- //assertOut("a = a.plus(b)");
+ assertOut("a = a.plus(b)");
}
@Test