This is an automated email from the ASF dual-hosted git repository. aharui 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 ddd7819 refactor in case we decide to coerce numbers to ints someday ddd7819 is described below commit ddd781958c55f75fee1c829b05145d226278755a Author: Alex Harui <aha...@apache.org> AuthorDate: Sun Dec 2 21:53:32 2018 -0800 refactor in case we decide to coerce numbers to ints someday --- .../internal/codegen/js/jx/VarDeclarationEmitter.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java index bead66f..fb4947c 100644 --- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java +++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java @@ -118,13 +118,19 @@ public class VarDeclarationEmitter extends JSSubEmitter implements write(ASEmitterTokens.SPACE); writeToken(ASEmitterTokens.EQUAL); endMapping(node); + boolean varIsInt = (variableTypeNode.getNodeID() == ASTNodeID.IdentifierID && + (((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants._int) || + ((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants.uint))); boolean varIsNumber = (variableTypeNode.getNodeID() == ASTNodeID.IdentifierID && (((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants.Number) || - ((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants._int) || - ((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants.uint))); + varIsInt)); + boolean valIsInt = (avdef != null && (avdef.getQualifiedName().equals(IASLanguageConstants._int) || + avdef.getQualifiedName().equals(IASLanguageConstants.uint) || + (avdef.getQualifiedName().equals(IASLanguageConstants.Number) && + (avnode.getNodeID() == ASTNodeID.LiteralIntegerID || + avnode.getNodeID() == ASTNodeID.LiteralIntegerZeroID)))); boolean valIsNumber = (avdef != null && (avdef.getQualifiedName().equals(IASLanguageConstants.Number) || - avdef.getQualifiedName().equals(IASLanguageConstants._int) || - avdef.getQualifiedName().equals(IASLanguageConstants.uint))); + valIsInt)); if (!valIsNumber && avdef == null && avnode.getNodeID() == ASTNodeID.MemberAccessExpressionID && fjs.isDateProperty(avnode, false)) valIsNumber = true; @@ -170,6 +176,8 @@ public class VarDeclarationEmitter extends JSSubEmitter implements String coercion = ""; if (varIsNumber && !valIsNumber) coercion = "Number("; + //else if (varIsNumber && valIsNumber && varIsInt && !valIsInt) + // coercion = "Math.floor("; if (variableTypeNode.getNodeID() == ASTNodeID.IdentifierID && ((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants.String) && (avdef == null || (!avdef.getQualifiedName().equals(IASLanguageConstants.String) &&