merge develop

Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/80eb2361
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/80eb2361
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/80eb2361

Branch: refs/heads/develop
Commit: 80eb2361059d483a93a087b8c844b14563074a63
Parents: 72f0c52 a965094
Author: Josh Tynjala <joshtynj...@gmail.com>
Authored: Fri Oct 14 10:50:35 2016 -0700
Committer: Josh Tynjala <joshtynj...@gmail.com>
Committed: Fri Oct 14 10:57:09 2016 -0700

----------------------------------------------------------------------
 .../apache/flex/compiler/clients/ASDOCJSC.java  |  13 --
 .../apache/flex/compiler/clients/COMPJSC.java   |   2 -
 .../compiler/internal/codegen/js/JSEmitter.java |   7 +
 .../internal/codegen/js/JSSessionModel.java     |   1 -
 .../codegen/js/flexjs/JSFlexJSASDocEmitter.java |  63 ------
 .../internal/codegen/js/jx/AccessorEmitter.java |   2 -
 .../codegen/js/jx/BinaryOperatorEmitter.java    |   2 -
 .../internal/codegen/js/jx/FieldEmitter.java    |  14 --
 .../codegen/js/jx/FunctionCallEmitter.java      |  30 ++-
 .../codegen/js/jx/IdentifierEmitter.java        |   4 -
 .../internal/codegen/js/jx/LiteralEmitter.java  |   8 +-
 .../codegen/js/jx/MemberAccessEmitter.java      |   3 -
 .../codegen/js/jx/StatementEmitter.java         |   6 +
 .../codegen/js/jx/SuperCallEmitter.java         |   2 -
 .../mxml/flexjs/MXMLFlexJSASDocEmitter.java     | 210 -------------------
 .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java  |   6 +-
 .../driver/js/goog/ASDocConfiguration.java      |   2 -
 .../driver/mxml/ASDocASSourceFileHandler.java   |   1 -
 .../mxml/flexjs/MXMLFlexJSASDocBackend.java     |   5 -
 .../internal/projects/FlexJSProject.java        |   1 -
 .../js/flexjs/TestFlexJSGlobalClasses.java      |  26 +++
 .../js/flexjs/TestFlexJSGlobalFunctions.java    |   8 +
 .../codegen/js/flexjs/TestFlexJSStatements.java |  13 ++
 .../flex/compiler/internal/scopes/ASScope.java  |   2 -
 .../compiler/internal/tree/as/ImportNode.java   |   1 -
 .../src/test/java/as/ASInheritanceTests.java    |   1 -
 26 files changed, 91 insertions(+), 342 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/80eb2361/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
----------------------------------------------------------------------
diff --cc 
compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
index c3e371d,d3fc55d..47f0c8d
--- 
a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java
@@@ -59,83 -49,60 +59,83 @@@ public class LiteralEmitter extends JSS
          {
              if (node.getLiteralType() == LiteralType.XML)
              {
 -              newlineReplacement = "\\\\\n";
 -              XMLLiteralNode xmlNode = (XMLLiteralNode)node;
 -              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 == '"')
 +                boolean jsx = false;
 +                IFunctionNode functionNode = (IFunctionNode) node
 +                        .getAncestorOfType(IFunctionNode.class);
 +                if (functionNode != null)
                  {
 -                    s = s.substring(1, s.length() - 1);
 -                    s = s.replace("\"", "\\\"");
 -                    s = "\"" + s + "\"";
 +                    IMetaInfo[] metaInfos = functionNode.getMetaInfos();
 +                    for (IMetaInfo metaInfo : metaInfos)
 +                    {
 +                        if 
(metaInfo.getTagName().equals(JSFlexJSEmitterTokens.JSX.getToken()))
 +                        {
 +                            jsx = true;
 +                            break;
 +                        }
 +                    }
 +                }
 +                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);
++                                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.equals("=");
++                            inAttribute = s.endsWith("=");
 +                        }
 +                        s = sb.toString();
 +                    }
 +                    char c = s.charAt(0);
 +                    if (c == '"')
 +                    {
 +                        s = s.substring(1, s.length() - 1);
 +                        s = s.replace("\"", "\\\"");
 +                        s = "\"" + s + "\"";
 +                    }
 +                    s = "new XML( " + s + ")";
                  }
 -                s = "new XML( " + s + ")";
              }
              s = s.replaceAll("\n", "__NEWLINE_PLACEHOLDER__");
              s = s.replaceAll("\r", "__CR_PLACEHOLDER__");

Reply via email to