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) &&

Reply via email to