You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2019/02/04 22:47:34 UTC
[royale-compiler] 02/02: compiler-jx: added some missing tests for
local named functions
This is an automated email from the ASF dual-hosted git repository.
joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit fc7be4cade11f7923b870885bf027097cf8922a1
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Mon Feb 4 14:47:26 2019 -0800
compiler-jx: added some missing tests for local named functions
---
.../internal/codegen/as/TestExpressions.java | 17 ++++++++++++
.../codegen/js/goog/TestGoogExpressions.java | 9 ++++++
.../codegen/js/royale/TestRoyaleExpressions.java | 32 ++++++++++++++++++++++
3 files changed, 58 insertions(+)
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/as/TestExpressions.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/as/TestExpressions.java
index 0333265..e516bb9 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/as/TestExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/as/TestExpressions.java
@@ -25,6 +25,7 @@ import org.apache.royale.compiler.internal.tree.as.ObjectLiteralNode;
import org.apache.royale.compiler.tree.as.IBinaryOperatorNode;
import org.apache.royale.compiler.tree.as.IDynamicAccessNode;
import org.apache.royale.compiler.tree.as.IFunctionCallNode;
+import org.apache.royale.compiler.tree.as.IFunctionNode;
import org.apache.royale.compiler.tree.as.IIterationFlowNode;
import org.apache.royale.compiler.tree.as.IMemberAccessExpressionNode;
import org.apache.royale.compiler.tree.as.INamespaceAccessExpressionNode;
@@ -518,6 +519,22 @@ public class TestExpressions extends ASTestBase
asBlockWalker.visitFunctionCall(node);
assertOut("addListener('foo', function(event:Object):void {\n\tdoit();\n})");
}
+
+ @Test
+ public void testVisitLocalNamedFunction()
+ {
+ IFunctionNode node = (IFunctionNode) getLocalFunction("function a() {};");
+ asBlockWalker.visitFunction(node);
+ assertOut("function a() {\n}");
+ }
+
+ @Test
+ public void testVisitLocalNamedFunctionWithParamsReturn()
+ {
+ IFunctionNode node = (IFunctionNode) getLocalFunction("function a(foo:int, bar:String = 'goo'):int{return -1;};");
+ asBlockWalker.visitFunction(node);
+ assertOut("function a(foo:int, bar:String = 'goo'):int {\n\treturn -1;\n}");
+ }
@Test
public void testVisitDynamicAccessNode_1()
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogExpressions.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogExpressions.java
index d7c2072..a377574 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogExpressions.java
@@ -150,6 +150,15 @@ public class TestGoogExpressions extends TestExpressions
asBlockWalker.visitFunctionCall(node);
assertOut("addListener('foo', function(event) {\n\tdoit();\n})");
}
+
+ @Override
+ @Test
+ public void testVisitLocalNamedFunctionWithParamsReturn()
+ {
+ IFunctionNode node = (IFunctionNode) getLocalFunction("function a(foo:int, bar:String = 'goo'):int{return -1;};");
+ asBlockWalker.visitFunction(node);
+ assertOut("function a(foo, bar) {\n\tbar = typeof bar !== 'undefined' ? bar : 'goo';\n\treturn -1;\n}");
+ }
@Override
@Test
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
index c575b74..6e44fe1 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleExpressions.java
@@ -1245,6 +1245,38 @@ public class TestRoyaleExpressions extends TestGoogExpressions
" });\n" +
"}");
}
+
+ @Override
+ @Test
+ public void testVisitLocalNamedFunction()
+ {
+ IFunctionNode node = (IFunctionNode) getNode("function a() {};", IFunctionNode.class);
+ asBlockWalker.visitFunction(node);
+ System.err.println("**** " + removeGeneratedString(writer.toString()));
+ assertOut("RoyaleTest_A.prototype.royaleTest_a = function() {\n" +
+ " var self = this;\n" +
+ " function a() {\n" +
+ " };\n" +
+ " \n" +
+ "}");
+ }
+
+ @Override
+ @Test
+ public void testVisitLocalNamedFunctionWithParamsReturn()
+ {
+ IFunctionNode node = (IFunctionNode) getNode("function a(foo:int, bar:String = 'goo'):int{return -1;};", IFunctionNode.class);
+ asBlockWalker.visitFunction(node);
+ System.err.println("**** " + removeGeneratedString(writer.toString()));
+ assertOut("RoyaleTest_A.prototype.royaleTest_a = function() {\n" +
+ " var self = this;\n" +
+ " function a(foo, bar) {\n" +
+ " bar = typeof bar !== 'undefined' ? bar : 'goo';\n" +
+ " return -1;\n" +
+ " };\n" +
+ " \n" +
+ "}");
+ }
@Test
public void testES5StrictAnonymousFunctions()