Repository: flex-falcon Updated Branches: refs/heads/develop aac9a3864 -> f5d0e2aab
don't call toString() in number conversions Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/f5d0e2aa Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/f5d0e2aa Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/f5d0e2aa Branch: refs/heads/develop Commit: f5d0e2aabae58a665a02bd0e69e322bf974b519a Parents: aac9a38 Author: Alex Harui <[email protected]> Authored: Fri Aug 5 14:33:58 2016 -0700 Committer: Alex Harui <[email protected]> Committed: Fri Aug 5 14:33:58 2016 -0700 ---------------------------------------------------------------------- .../compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java | 2 +- .../compiler/internal/codegen/js/jx/VarDeclarationEmitter.java | 3 +-- .../internal/codegen/js/flexjs/TestFlexJSExpressions.java | 2 +- .../internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java | 5 +++-- 4 files changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/f5d0e2aa/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java index 1ac5e37..35e1364 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/BinaryOperatorEmitter.java @@ -288,7 +288,7 @@ public class BinaryOperatorEmitter extends JSSubEmitter implements } } super_emitBinaryOperator(node, leftIsNumber, rightIsNumber); - if (leftDef != null && leftDef.getQualifiedName().equals(IASLanguageConstants.String) || (leftIsNumber && !rightIsNumber)) + if (leftDef != null && leftDef.getQualifiedName().equals(IASLanguageConstants.String)) { if (rNode.getNodeID() != ASTNodeID.LiteralStringID && rNode.getNodeID() != ASTNodeID.LiteralNullID) http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/f5d0e2aa/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java index d1a3ed2..6beafcd 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java @@ -138,8 +138,7 @@ public class VarDeclarationEmitter extends JSSubEmitter implements if (variableTypeNode.getNodeID() == ASTNodeID.IdentifierID && ((IdentifierNode)variableTypeNode).getName().equals(IASLanguageConstants.String) && (avdef == null || (!avdef.getQualifiedName().equals(IASLanguageConstants.String) && - !avdef.getQualifiedName().equals(IASLanguageConstants.Null))) || - (varIsNumber && !valIsNumber)) + !avdef.getQualifiedName().equals(IASLanguageConstants.Null)))) write(".toString()"); if (varIsNumber && !valIsNumber) write(")"); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/f5d0e2aa/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java index 0bd3440..64b9cc2 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java @@ -923,7 +923,7 @@ public class TestFlexJSExpressions extends TestGoogExpressions IVariableNode node = (IVariableNode) getNode( "var a = ((a + b) - (c + d)) * e;", IVariableNode.class); asBlockWalker.visitVariable(node); - assertOut("var /** @type {*} */ a = ((a + b) - (c + d)) * Number(e.toString())"); + assertOut("var /** @type {*} */ a = ((a + b) - (c + d)) * Number(e)"); } @Test http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/f5d0e2aa/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java index c60768e..504674f 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java @@ -531,13 +531,14 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses assertOut("b = a.attribute('attr1').toString()"); } + @Test public void testXMLAttributeToNumber() { IVariableNode node = getVariable("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Number = a.@attr1;"); IASNode parentNode = node.getParent(); node = (IVariableNode) parentNode.getChild(1); asBlockWalker.visitVariable(node); - assertOut("var /** @type {number} */ b = Number(a.attribute('attr1').toString())"); + assertOut("var /** @type {number} */ b = Number(a.attribute('attr1'))"); } @Test @@ -545,7 +546,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses { IBinaryOperatorNode node = (IBinaryOperatorNode)getNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Number; b = a.@attr1;", IBinaryOperatorNode.class); asBlockWalker.visitBinaryOperator(node); - assertOut("b = Number(a.attribute('attr1').toString())"); + assertOut("b = Number(a.attribute('attr1'))"); } @Test
