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

Reply via email to