This is an automated email from the ASF dual-hosted git repository.
joshtynjala 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 4bec47177 MXMLRoyaleEmitter: fixed missing event handlers with
children-as-data=false because children of container weren't walked
4bec47177 is described below
commit 4bec47177b748bb04c083f447ed950221160e000
Author: Josh Tynjala <[email protected]>
AuthorDate: Mon May 4 13:51:16 2026 -0700
MXMLRoyaleEmitter: fixed missing event handlers with children-as-data=false
because children of container weren't walked
Followup to commit a05d8400c466da4bebebb04e0f99415e14c3a5ab
---
.../codegen/mxml/royale/MXMLRoyaleEmitter.java | 39 ++++++++++++++++------
1 file changed, 29 insertions(+), 10 deletions(-)
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 b9d347699..505cc1692 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
@@ -2716,22 +2716,41 @@ public class MXMLRoyaleEmitter extends MXMLEmitter
implements
String methodName = "_" + documentDefinition.getBaseName() + "_" +
cdef.getBaseName() + "_" + factoryMethodCounter;
factoryMethodCounter++;
factoryMethodNames.put(node, methodName);
+
+ walkInstanceAndChildren(node);
+ }
+ }
- IMXMLPropertySpecifierNode[] pnodes =
node.getPropertySpecifierNodes();
- if (pnodes != null)
+ private void walkInstanceAndChildren(IMXMLInstanceNode node)
+ {
+ IMXMLPropertySpecifierNode[] pnodes = node.getPropertySpecifierNodes();
+ if (pnodes != null)
+ {
+ for (IMXMLPropertySpecifierNode pnode : pnodes)
{
- for (IMXMLPropertySpecifierNode pnode : pnodes)
- {
- getMXMLWalker().walk(pnode);
- }
+ getMXMLWalker().walk(pnode);
}
+ }
- IMXMLEventSpecifierNode[] enodes = node.getEventSpecifierNodes();
- if (enodes != null)
+ IMXMLEventSpecifierNode[] enodes = node.getEventSpecifierNodes();
+ if (enodes != null)
+ {
+ for (IMXMLEventSpecifierNode enode : enodes)
{
- for (IMXMLEventSpecifierNode enode : enodes)
+ getMXMLWalker().walk(enode);
+ }
+ }
+
+ if (node.isContainer())
+ {
+ // instance nodes not added to declarations will be children
+ for (int i = 0; i < node.getChildCount(); i++)
+ {
+ IASNode childNode = node.getChild(i);
+ if (childNode instanceof IMXMLInstanceNode)
{
- getMXMLWalker().walk(enode);
+ IMXMLInstanceNode instanceNode = (IMXMLInstanceNode)
childNode;
+ walkInstanceAndChildren(instanceNode);
}
}
}