You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2021/11/23 22:00:53 UTC
[royale-compiler] branch develop updated: FieldEmitter: fix missing custom namespace special case formatting in emitFieldInitializer()
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 ad51da8 FieldEmitter: fix missing custom namespace special case formatting in emitFieldInitializer()
ad51da8 is described below
commit ad51da8c3ac4d5b6706509ca664720253f0862a1
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Tue Nov 23 14:00:46 2021 -0800
FieldEmitter: fix missing custom namespace special case formatting in emitFieldInitializer()
---
.../royale/compiler/internal/codegen/js/jx/FieldEmitter.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
index e3e8b21..801e5f5 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -497,6 +497,8 @@ public class FieldEmitter extends JSSubEmitter implements
public boolean emitFieldInitializer(IVariableNode node)
{
+ JSRoyaleEmitter fjs = (JSRoyaleEmitter) getEmitter();
+
IDefinition definition = EmitterUtils.getClassDefinition(node);
IDefinition ndef = node.getDefinition();
@@ -517,7 +519,15 @@ public class FieldEmitter extends JSSubEmitter implements
writeNewline();
write(className);
write(ASEmitterTokens.MEMBER_ACCESS.getToken());
- write(node.getName());
+
+ if (EmitterUtils.isCustomNamespace(node.getNamespace())) {
+ INamespaceDecorationNode ns = ((VariableNode) node).getNamespaceNode();
+ INamespaceDefinition nsDef = (INamespaceDefinition)ns.resolve(getProject());
+ fjs.formatQualifiedName(nsDef.getQualifiedName()); // register with used names
+ String s = nsDef.getURI();
+ write(JSRoyaleEmitter.formatNamespacedProperty(s, node.getName(), false));
+ }
+ else write(node.getName());
if (node.getNodeID() == ASTNodeID.BindableVariableID && !node.isConst())
{