You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2013/11/05 13:45:30 UTC
[04/11] git commit: [flex-falcon] [refs/heads/develop] - Fixed old
TODO: handle parsing of 'rest' parameter.
Fixed old TODO: handle parsing of 'rest' parameter.
Signed-off-by: Erik de Bruin <er...@ixsoftware.nl>
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/15f1e139
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/15f1e139
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/15f1e139
Branch: refs/heads/develop
Commit: 15f1e13979fab1e8f20087c3cfed57a8e7ae9b59
Parents: fa7b340
Author: Erik de Bruin <er...@ixsoftware.nl>
Authored: Sun Nov 3 10:54:49 2013 +0100
Committer: Erik de Bruin <er...@ixsoftware.nl>
Committed: Tue Nov 5 07:15:07 2013 +0100
----------------------------------------------------------------------
.../internal/codegen/as/TestMethodMembers.java | 7 +++---
.../compiler/internal/codegen/as/ASEmitter.java | 24 +++++++++++++-------
2 files changed, 19 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/15f1e139/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/TestMethodMembers.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/TestMethodMembers.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/TestMethodMembers.java
index fda88cc..ce4316f 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/TestMethodMembers.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/TestMethodMembers.java
@@ -97,13 +97,12 @@ public class TestMethodMembers extends ASTestBase
assertOut("function foo(bar:String, baz:int = null):int {\n\treturn -1;\n}");
}
- // TODO (mschmalle) handle ...rest parameter correctly
@Test
public void testMethod_withRestParameterTypeReturnType()
{
-// IFunctionNode node = getMethod("function foo(bar:String, ...rest):int{\treturn -1;}");
-// asBlockWalker.visitFunction(node);
-// assertOut("function foo(bar:String, ...rest):int {\n\treturn -1;\n}");
+ IFunctionNode node = getMethod("function foo(bar:String, ...rest):int{\treturn -1;}");
+ asBlockWalker.visitFunction(node);
+ assertOut("function foo(bar:String, ...rest):int {\n\treturn -1;\n}");
}
@Test
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/15f1e139/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
index 3db6b55..f634e60 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
@@ -739,15 +739,23 @@ public class ASEmitter implements IASEmitter, IEmitter
@Override
public void emitParameter(IParameterNode node)
{
- getWalker().walk(node.getNameExpressionNode());
- write(ASEmitterTokens.COLON);
- getWalker().walk(node.getVariableTypeNode());
- IExpressionNode anode = node.getAssignedValueNode();
- if (anode != null)
+ if (node.isRest())
{
- write(ASEmitterTokens.SPACE);
- writeToken(ASEmitterTokens.EQUAL);
- getWalker().walk(anode);
+ write(ASEmitterTokens.ELLIPSIS);
+ write(node.getName());
+ }
+ else
+ {
+ getWalker().walk(node.getNameExpressionNode());
+ write(ASEmitterTokens.COLON);
+ getWalker().walk(node.getVariableTypeNode());
+ IExpressionNode anode = node.getAssignedValueNode();
+ if (anode != null)
+ {
+ write(ASEmitterTokens.SPACE);
+ writeToken(ASEmitterTokens.EQUAL);
+ getWalker().walk(anode);
+ }
}
}