This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
The following commit(s) were added to refs/heads/develop by this push:
new e78dbcf special case XML == true/false. Partial fix for
apache/royale-asjs#819
e78dbcf is described below
commit e78dbcfff5a841467ab1d66f22e71cfa40a8a0c3
Author: Alex Harui <[email protected]>
AuthorDate: Sat May 9 14:31:32 2020 -0700
special case XML == true/false. Partial fix for apache/royale-asjs#819
---
.../internal/codegen/js/jx/BinaryOperatorEmitter.java | 9 +++++++++
.../codegen/js/royale/TestRoyaleExpressions.java | 16 ++++++++++++++++
2 files changed, 25 insertions(+)
diff --git
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
index 2138d61..b37e337 100644
---
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
+++
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java
@@ -255,6 +255,15 @@ public class BinaryOperatorEmitter extends JSSubEmitter
implements
write(ASEmitterTokens.PAREN_CLOSE);
return;
}
+ else if (node.getNodeID() == ASTNodeID.Op_EqualID &&
+ node.getRightOperandNode().getNodeID()
== ASTNodeID.LiteralBooleanID)
+ {
+ getWalker().walk(xmlNode);
+ write(" == '");
+ getWalker().walk(node.getRightOperandNode());
+ write("'");
+ return;
+ }
}
else if (isDynamicAccess &&
((JSRoyaleEmitter)getEmitter()).isXMLish((IExpressionNode)lnode))
{
diff --git
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
index a9a7c26..2c4e651 100644
---
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
+++
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
@@ -483,6 +483,22 @@ public class TestRoyaleExpressions extends
TestGoogExpressions
}
@Test
+ public void testVisitBinaryOperatorNode_XMLChildEqualsTrue()
+ {
+ IBinaryOperatorNode node = getBinaryNode("var var2:XML;var2.child ==
true");
+ asBlockWalker.visitBinaryOperator(node);
+ assertOut("var2.child('child') == 'true'");
+ }
+
+ @Test
+ public void testVisitBinaryOperatorNode_XMLChildEqualsFalse()
+ {
+ IBinaryOperatorNode node = getBinaryNode("var var2:XML;var2.child ==
false");
+ asBlockWalker.visitBinaryOperator(node);
+ assertOut("var2.child('child') == 'false'");
+ }
+
+ @Test
public void testVisitBinaryOperatorNode_AssignmentStringLiteralToString()
{
IBinaryOperatorNode node = getBinaryNode("var var1:String;var1 =
\"hi\"");