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 <[email protected]>
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) &&