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 b08f10d  support MXML skinClass=<some class>
b08f10d is described below

commit b08f10de2729221a85602624838bc785a9b6fea9
Author: Alex Harui <[email protected]>
AuthorDate: Wed Jan 22 14:44:23 2020 -0800

    support MXML skinClass=<some class>
---
 .../apache/royale/compiler/codegen/mxml/IMXMLEmitter.java  |  3 +++
 .../compiler/internal/codegen/mxml/MXMLBlockWalker.java    |  9 +++++++++
 .../royale/compiler/internal/codegen/mxml/MXMLEmitter.java |  6 ++++++
 .../internal/codegen/mxml/royale/MXMLRoyaleEmitter.java    | 14 ++++++++++++++
 .../compiler/internal/visitor/mxml/MXMLNodeSwitch.java     |  5 ++++-
 .../royale/compiler/visitor/mxml/IMXMLBlockVisitor.java    |  3 +++
 6 files changed, 39 insertions(+), 1 deletion(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/mxml/IMXMLEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/mxml/IMXMLEmitter.java
index e20f8c9..450140d 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/mxml/IMXMLEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/codegen/mxml/IMXMLEmitter.java
@@ -25,6 +25,7 @@ import org.apache.royale.compiler.codegen.IEmitter;
 import org.apache.royale.compiler.tree.mxml.IMXMLArrayNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBooleanNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLClassDefinitionNode;
+import org.apache.royale.compiler.tree.mxml.IMXMLClassNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLComponentNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDataBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDeclarationsNode;
@@ -106,6 +107,8 @@ public interface IMXMLEmitter extends IEmitter
 
     void emitUint(IMXMLUintNode node);
 
+    void emitMXMLClass(IMXMLClassNode node);
+
     
//--------------------------------------------------------------------------
 
     void emitLiteral(IMXMLLiteralNode node);
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLBlockWalker.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLBlockWalker.java
index 5faa900..07ac4f6 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLBlockWalker.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLBlockWalker.java
@@ -32,6 +32,7 @@ import org.apache.royale.compiler.tree.mxml.IMXMLArrayNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBooleanNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLClassDefinitionNode;
+import org.apache.royale.compiler.tree.mxml.IMXMLClassNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLComponentNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDataBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDeclarationsNode;
@@ -344,6 +345,14 @@ public class MXMLBlockWalker implements IMXMLBlockVisitor, 
IMXMLBlockWalker
         mxmlEmitter.emitUint(node);
     }
 
+    @Override
+    public void visitMXMLClass(IMXMLClassNode node)
+    {
+        debug("visitMXMLClass()");
+
+        mxmlEmitter.emitMXMLClass(node);
+    }
+    
     
//--------------------------------------------------------------------------
 
     @Override
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLEmitter.java
index 1296684..cdef6e0 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/MXMLEmitter.java
@@ -321,6 +321,12 @@ public class MXMLEmitter extends Emitter implements 
IMXMLEmitter
         emitAttributeValue(node);
     }
 
+    @Override
+    public void emitMXMLClass(IMXMLClassNode node)
+    {          
+       write(node.getValue(getMXMLWalker().getProject()).getQualifiedName());
+    }
+
     
//--------------------------------------------------------------------------
 
     @Override
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
index 0e3925f..32ab604 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java
@@ -47,6 +47,7 @@ import org.apache.royale.compiler.codegen.js.IJSEmitter;
 import org.apache.royale.compiler.codegen.js.IMappingEmitter;
 import org.apache.royale.compiler.codegen.mxml.royale.IMXMLRoyaleEmitter;
 import org.apache.royale.compiler.common.ASModifier;
+import org.apache.royale.compiler.common.DependencyType;
 import org.apache.royale.compiler.common.ISourceLocation;
 import org.apache.royale.compiler.constants.IASKeywordConstants;
 import org.apache.royale.compiler.constants.IASLanguageConstants;
@@ -3011,6 +3012,19 @@ public class MXMLRoyaleEmitter extends MXMLEmitter 
implements
 
         emitAttributeValue(node);
     }
+    
+    @Override
+    public void emitMXMLClass(IMXMLClassNode node)
+    {   
+       RoyaleJSProject project = (RoyaleJSProject)getMXMLWalker().getProject();
+       ITypeDefinition cdef = node.getValue(project);
+       String qname = formatQualifiedName(cdef.getQualifiedName());
+       ICompilationUnit classCU = project.resolveQNameToCompilationUnit(qname);
+       ICompilationUnit cu = 
project.resolveQNameToCompilationUnit(classDefinition.getQualifiedName());
+       project.addDependency(cu, classCU, DependencyType.EXPRESSION, qname);
+        MXMLDescriptorSpecifier ps = getCurrentDescriptor("ps");
+        ps.value = qname;
+    }
 
     
//--------------------------------------------------------------------------
 
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
index 3317f49..8855cc1 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
@@ -23,6 +23,7 @@ import org.apache.royale.compiler.tree.as.IASNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLArrayNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBooleanNode;
+import org.apache.royale.compiler.tree.mxml.IMXMLClassNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLComponentNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDataBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDeclarationsNode;
@@ -121,6 +122,9 @@ public class MXMLNodeSwitch implements IASNodeStrategy
         case MXMLUintID:
             visitor.visitUint((IMXMLUintNode) node);
             break;
+        case MXMLClassID:
+            visitor.visitMXMLClass((IMXMLClassNode) node);
+            break;
         case MXMLStyleID:
             visitor.visitStyleBlock((IMXMLStyleNode)node);
             break;
@@ -174,7 +178,6 @@ public class MXMLNodeSwitch implements IASNodeStrategy
             break;
         case MXMLApplicationID:
         case MXMLBindingAttributeID:
-        case MXMLClassID:
         case MXMLClassDefinitionID:
         case MXMLClearID:
         case MXMLConcatenatedDataBindingID:
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/visitor/mxml/IMXMLBlockVisitor.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/visitor/mxml/IMXMLBlockVisitor.java
index fd8af60..2144865 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/visitor/mxml/IMXMLBlockVisitor.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/visitor/mxml/IMXMLBlockVisitor.java
@@ -23,6 +23,7 @@ import org.apache.royale.compiler.tree.mxml.IMXMLArrayNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLBooleanNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLClassDefinitionNode;
+import org.apache.royale.compiler.tree.mxml.IMXMLClassNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLComponentNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDataBindingNode;
 import org.apache.royale.compiler.tree.mxml.IMXMLDeclarationsNode;
@@ -104,6 +105,8 @@ public interface IMXMLBlockVisitor extends IBlockVisitor
 
     void visitUint(IMXMLUintNode node);
 
+    void visitMXMLClass(IMXMLClassNode node);
+
     
//--------------------------------------------------------------------------
 
     void visitLiteral(IMXMLLiteralNode node);

Reply via email to