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