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/08/06 04:39:30 UTC

[royale-compiler] 02/02: handle XML conversion function

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

commit d34c3482fea3bcdff85d5e7488e6f2e5f7ab990d
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sun Aug 5 21:39:20 2018 -0700

    handle XML conversion function
---
 .../royale/compiler/internal/codegen/js/jx/FunctionCallEmitter.java | 6 ++++++
 .../internal/codegen/js/royale/TestRoyaleGlobalClasses.java         | 4 ++--
 .../internal/codegen/js/royale/TestRoyaleGlobalFunctions.java       | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FunctionCallEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
index d348f03..0dd6769 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
@@ -263,6 +263,12 @@ public class FunctionCallEmitter extends JSSubEmitter implements ISubEmitter<IFu
                         }
                         return;
                     }
+                    else if (def.getBaseName().equals(IASLanguageConstants.XML))
+                    {
+                    	write("XML.conversion");
+                        getEmitter().emitArguments(node.getArgumentsNode());
+                    	return;
+                    }
                 }
             	getWalker().walk(node.getNameNode());
 
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 aa516d9..85b3a15 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
@@ -523,7 +523,7 @@ public class TestRoyaleGlobalClasses extends TestGoogGlobalClasses
     {
         IUnaryOperatorNode node = getUnaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Object = { xml: a};delete XML(b.xml).child.grandchild;");
         asBlockWalker.visitUnaryOperator(node);
-        assertOut("XML(b.xml).child('child').removeChild('grandchild')");
+        assertOut("XML.conversion(b.xml).child('child').removeChild('grandchild')");
     }
     
     @Test
@@ -564,7 +564,7 @@ public class TestRoyaleGlobalClasses extends TestGoogGlobalClasses
     {
         IUnaryOperatorNode node = getUnaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Object = { xml: a};delete XML(b.xml).child.grandchild[0];");
         asBlockWalker.visitUnaryOperator(node);
-        assertOut("XML(b.xml).child('child').child('grandchild').removeChildAt(0)");
+        assertOut("XML.conversion(b.xml).child('child').child('grandchild').removeChildAt(0)");
     }
     
     @Test
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalFunctions.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalFunctions.java
index ddf5f53..2c6eaf7 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalFunctions.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleGlobalFunctions.java
@@ -217,7 +217,7 @@ public class TestRoyaleGlobalFunctions extends TestGoogGlobalFunctions
         // (erikdebruin) E4X in Javascript is obsolete.
         //               Ref.: https://developer.mozilla.org/en-US/docs/E4X
         
-        assertOut("var /** @type {XML} */ a = XML('@')");
+        assertOut("var /** @type {XML} */ a = XML.conversion('@')");
     }
 
     @Override