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 6b475f70d7897032dff93b66ae1cd967d1f2ce52
Author: Josh Tynjala <[email protected]>
AuthorDate: Mon Feb 4 10:37:06 2019 -0800

    compiler-jx: coercion on assignment also applies to member and static 
variables of a class (references #74)
---
 .../royale/compiler/internal/codegen/js/jx/ClassEmitter.java      | 2 +-
 .../royale/compiler/internal/codegen/js/jx/FieldEmitter.java      | 8 +++-----
 .../compiler/internal/codegen/mxml/royale/MXMLRoyaleEmitter.java  | 2 +-
 3 files changed, 5 insertions(+), 7 deletions(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
index 01f4d70..807e7ae 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -255,7 +255,7 @@ public class ClassEmitter extends JSSubEmitter implements
                     }
                     write(ASEmitterTokens.SPACE);
                     writeToken(ASEmitterTokens.EQUAL);
-                    getEmitter().getWalker().walk(vnode);
+                    getEmitter().emitAssignmentCoercion(vnode, 
varnode.getVariableTypeNode().resolve(getProject()));
                     write(ASEmitterTokens.SEMICOLON);
                     wroteOne = true;
                 }
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 1b1d07c..dfcff18 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
@@ -158,9 +158,7 @@ public class FieldEmitter extends JSSubEmitter implements
                    write(ASEmitterTokens.SPACE);
                    writeToken(ASEmitterTokens.EQUAL);
                    endMapping(node);
-                startMapping(vnode);
-                   write(vnodeString);
-                endMapping(vnode);
+                getEmitter().emitAssignmentCoercion(vnode, 
node.getVariableTypeNode().resolve(getProject()));
                }
                else if (ndef.isStatic() && 
EmitterUtils.needsStaticInitializer(vnodeString, className))
                {
@@ -267,8 +265,8 @@ public class FieldEmitter extends JSSubEmitter implements
                if (ndef.isStatic() && 
EmitterUtils.needsStaticInitializer(vnodeString, className) && 
!isPackageOrFileMember)
                {
                 writeNewline();
-                write(className
-                        + ASEmitterTokens.MEMBER_ACCESS.getToken());
+                write(className);
+                write(ASEmitterTokens.MEMBER_ACCESS.getToken());
                 write(node.getName());
        
                    if (node.getNodeID() == ASTNodeID.BindableVariableID && 
!node.isConst())
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 36dac1b..a1e1d3e 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
@@ -3059,7 +3059,7 @@ public class MXMLRoyaleEmitter extends MXMLEmitter 
implements
                                write("_"); // use backing variable
                            write(ASEmitterTokens.SPACE);
                            writeToken(ASEmitterTokens.EQUAL);
-                           fjs.getWalker().walk(vnode);
+                            fjs.emitAssignmentCoercion(vnode, 
varnode.getVariableTypeNode().resolve(getMXMLWalker().getProject()));
                            write(ASEmitterTokens.SEMICOLON);
 
                                }

Reply via email to