You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/11/26 08:53:10 UTC
[royale-compiler] branch develop updated: handle nested ..
(descendant) operators
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 f8367b2 handle nested .. (descendant) operators
f8367b2 is described below
commit f8367b2a166335c9421206a8a2303c37b68503fa
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Nov 26 00:52:56 2018 -0800
handle nested .. (descendant) operators
---
.../compiler/internal/codegen/js/royale/JSRoyaleEmitter.java | 2 +-
.../internal/codegen/js/royale/TestRoyaleGlobalClasses.java | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
index 92d965f..72a3a52 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
@@ -1170,7 +1170,7 @@ public class JSRoyaleEmitter extends JSGoogEmitter implements IJSRoyaleEmitter
if (leftDef != null)
return IdentifierNode.isXMLish(leftDef, getWalker().getProject());
}
- else if (leftID == ASTNodeID.MemberAccessExpressionID)
+ else if (leftID == ASTNodeID.MemberAccessExpressionID || leftID == ASTNodeID.Op_DescendantsID)
{
MemberAccessExpressionNode maen = (MemberAccessExpressionNode)leftNode;
IExpressionNode rightNode = maen.getRightOperandNode();
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalClasses.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalClasses.java
index cd723c9..77d148c 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalClasses.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalClasses.java
@@ -688,6 +688,16 @@ public class TestRoyaleGlobalClasses extends TestGoogGlobalClasses
assertOut("var /** @type {XMLList} */ b = a.descendants('child')");
}
+ @Test
+ public void testXMLDoubleDotTwice()
+ {
+ IVariableNode node = getVariable("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:XMLList = a..child..grandchild;");
+ IASNode parentNode = node.getParent();
+ node = (IVariableNode) parentNode.getChild(1);
+ asBlockWalker.visitVariable(node);
+ assertOut("var /** @type {XMLList} */ b = a.descendants('child').descendants('grandchild')");
+ }
+
@Ignore
public void testXMLDoubleDotLiteral()
{