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);