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 f60899dbd4c81fbef43769a3977f09d636f6bafe
Author: Alex Harui <[email protected]>
AuthorDate: Wed Aug 8 10:39:01 2018 -0700

    handle simple XML expressions.  Sometimes we don't get an XMLLiteralNode, 
just a plain LiteralNode.
---
 .../internal/codegen/js/jx/LiteralEmitter.java     | 124 +++++++++++----------
 1 file changed, 68 insertions(+), 56 deletions(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/LiteralEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/LiteralEmitter.java
index 467e587..6c79341 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/LiteralEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/LiteralEmitter.java
@@ -75,67 +75,79 @@ public class LiteralEmitter extends JSSubEmitter implements
                         }
                     }
                 }
-                XMLLiteralNode xmlNode = (XMLLiteralNode) node;
-                if (jsx)
+                if (node instanceof XMLLiteralNode)
                 {
-                    emitJSX(xmlNode);
-                    return;
+                    XMLLiteralNode xmlNode = (XMLLiteralNode) node;
+                       if (jsx)
+                       {
+                           emitJSX(xmlNode);
+                           return;
+                       }
+                       else
+                       {
+                           newlineReplacement = "\\\\\n";
+                           if (xmlNode.getContentsNode().getChildCount() == 1)
+                           {
+                               if (s.contains("'"))
+                                   s = "\"" + s + "\"";
+                               else
+                                   s = "'" + s + "'";
+                           }
+                           else
+                           {
+                               StringBuilder sb = new StringBuilder();
+                               // probably contains {initializers}
+                               boolean inAttribute = false;
+                               int n = 
xmlNode.getContentsNode().getChildCount();
+                               for (int i = 0; i < n; i++)
+                               {
+                                   if (i > 0)
+                                       sb.append(" + ");
+                                   IASNode child = 
xmlNode.getContentsNode().getChild(i);
+                                   if (child instanceof LiteralNode)
+                                   {
+                                       s = ((LiteralNode)child).getValue(true);
+                                       if (s.contains("'"))
+                                           sb.append("\"" + s + "\"");
+                                       else
+                                           sb.append("'" + s + "'");
+                                   }
+                                   else
+                                   {
+                                       s = getEmitter().stringifyNode(child);
+                                       if (inAttribute)
+                                       {
+                                           sb.append("'\"' + ");
+       
+                                           sb.append(s);
+       
+                                           sb.append(" + '\"'");
+                                       }
+                                       else
+                                           sb.append(s);
+                                   }
+                                   inAttribute = s.endsWith("=");
+                               }
+                               s = sb.toString();
+                           }
+                           char c = s.charAt(0);
+                           if (c == '"')
+                           {
+                               s = s.substring(1, s.length() - 1);
+                               s = s.replace("\"", "__QUOTE_PLACEHOLDER__");
+                               s = "\"" + s + "\"";
+                           }
+                           // use formatQualifiedName to get XML in the 
usedNames dependencies
+                           s = "new " + 
getEmitter().formatQualifiedName("XML") + "( " + s + ")";
+                       }
                 }
                 else
                 {
-                    newlineReplacement = "\\\\\n";
-                    if (xmlNode.getContentsNode().getChildCount() == 1)
-                    {
-                        if (s.contains("'"))
-                            s = "\"" + s + "\"";
-                        else
-                            s = "'" + s + "'";
-                    }
-                    else
-                    {
-                        StringBuilder sb = new StringBuilder();
-                        // probably contains {initializers}
-                        boolean inAttribute = false;
-                        int n = xmlNode.getContentsNode().getChildCount();
-                        for (int i = 0; i < n; i++)
-                        {
-                            if (i > 0)
-                                sb.append(" + ");
-                            IASNode child = 
xmlNode.getContentsNode().getChild(i);
-                            if (child instanceof LiteralNode)
-                            {
-                                s = ((LiteralNode)child).getValue(true);
-                                if (s.contains("'"))
-                                    sb.append("\"" + s + "\"");
-                                else
-                                    sb.append("'" + s + "'");
-                            }
-                            else
-                            {
-                                s = getEmitter().stringifyNode(child);
-                                if (inAttribute)
-                                {
-                                    sb.append("'\"' + ");
-
-                                    sb.append(s);
-
-                                    sb.append(" + '\"'");
-                                }
-                                else
-                                    sb.append(s);
-                            }
-                            inAttribute = s.endsWith("=");
-                        }
-                        s = sb.toString();
-                    }
-                    char c = s.charAt(0);
-                    if (c == '"')
-                    {
-                        s = s.substring(1, s.length() - 1);
-                        s = s.replace("\"", "__QUOTE_PLACEHOLDER__");
+                       s = node.getValue();
+                    if (s.contains("'"))
                         s = "\"" + s + "\"";
-                    }
-                    // use formatQualifiedName to get XML in the usedNames 
dependencies
+                    else
+                        s = "'" + s + "'";
                     s = "new " + getEmitter().formatQualifiedName("XML") + "( 
" + s + ")";
                 }
             }

Reply via email to