You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/09/07 22:40:18 UTC
[17/50] git commit: [flex-falcon] [refs/heads/master] - try to fix
implicit type conversions
try to fix implicit type 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/796c0a37
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/796c0a37
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/796c0a37
Branch: refs/heads/master
Commit: 796c0a37f4ebb9dbde9d86395813f40bcaf3393d
Parents: 373d218
Author: Alex Harui <ah...@apache.org>
Authored: Fri Aug 12 23:59:39 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Aug 12 23:59:39 2016 -0700
----------------------------------------------------------------------
.../internal/codegen/js/jx/BinaryOperatorEmitter.java | 2 +-
.../codegen/js/flexjs/TestFlexJSExpressions.java | 12 +++++++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/796c0a37/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 bb454fc..bee0ed7 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
@@ -292,7 +292,7 @@ public class BinaryOperatorEmitter extends JSSubEmitter implements
fjs.isXMLList(mae);
}
}
- String coercion = (leftIsNumber && !rightIsNumber) ? "Number(" : "";
+ String coercion = (leftIsNumber && !rightIsNumber && isAssignment) ? "Number(" : "";
if (isAssignment && leftDef != null && leftDef.getQualifiedName().equals(IASLanguageConstants.String))
{
if (rNode.getNodeID() != ASTNodeID.LiteralStringID &&
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/796c0a37/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 2def937..559c1ae 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
@@ -634,6 +634,16 @@ public class TestFlexJSExpressions extends TestGoogExpressions
}
@Test
+ public void testVisitBinaryOperatorNode_NumberPlusString()
+ {
+ IBinaryOperatorNode node = (IBinaryOperatorNode) getNode(
+ "public class B {public var b:String; public function d() { b = 10 + 'px'; }}",
+ IBinaryOperatorNode.class, WRAP_LEVEL_PACKAGE);
+ asBlockWalker.visitBinaryOperator(node);
+ assertOut("this.b = 10 + 'px'");
+ }
+
+ @Test
public void testNamedFunctionAsArgument()
{
IFunctionNode node = (IFunctionNode) getNode(
@@ -1001,7 +1011,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)");
+ assertOut("var /** @type {*} */ a = ((a + b) - (c + d)) * e");
}
@Test