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

commit 9cca41eeba7c43bf9b4956dae8abde20c3c55fe9
Author: Josh Tynjala <[email protected]>
AuthorDate: Wed May 6 09:53:14 2026 -0700

    MXMLRoyaleEmitter: fix detection of E4X wildcard syntax (dot star) when 
generating JavaScript
---
 RELEASE_NOTES.md                                                  | 1 +
 .../compiler/internal/codegen/js/jx/MemberAccessEmitter.java      | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 37a5b1857..efcaa3616 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -78,6 +78,7 @@ Apache Royale Compiler 1.0.0
 - compiler: Improved parsing of `[Exclude]` metadata to make the member name 
an identifier for tooling.
 - compiler: Fixed namespace URI when namespace is defined in package.
 - compiler: Fixed warning for comparison of boolean or numeric type with 
`null` when using `-js-default-initializers=false` compiler option.
+- compiler: Fixed JavaScript code generation for E4X wildcard (.*) syntax.
 - debugger: Added missing isolate ID to SWF load and unload events.
 - debugger: Fixed debugger targeting the current JDK version instead of the 
intended minimum JDK version.
 - debugger: Fixed localized messages appearing as unprocessed tokens.
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
index 3a5f933f1..20e285532 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
@@ -98,6 +98,14 @@ public class MemberAccessEmitter extends JSSubEmitter 
implements
                else if (leftNode != null)
                        isXML = fjs.isXMLish(leftNode);
 
+                       if (!isXML
+                                       && rightNode instanceof 
ILanguageIdentifierNode
+                                       && 
ILanguageIdentifierNode.LanguageIdentifierKind.ANY_TYPE.equals(((ILanguageIdentifierNode)rightNode).getKind()))
+                       {
+                               // wildcard syntax may be used in E4X only
+                               isXML = true;
+                       }
+
                        if (!isXML) {
                                if (leftNode instanceof 
MemberAccessExpressionNode)
                                        isProxy = fjs.isProxy(leftNode);

Reply via email to