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()
     {