You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/09/11 18:33:05 UTC
[royale-compiler] branch develop updated: Better solution for rest
in debug mehtod
This is an automated email from the ASF dual-hosted git repository.
harbs 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 b6f3c01 Better solution for rest in debug mehtod
b6f3c01 is described below
commit b6f3c01b5244d5cba739ef58ff0483e3439a013d
Author: Harbs <ha...@in-tools.com>
AuthorDate: Tue Sep 11 21:32:54 2018 +0300
Better solution for rest in debug mehtod
---
.../internal/codegen/js/goog/JSGoogDocEmitter.java | 2 +-
.../internal/codegen/js/goog/JSGoogEmitter.java | 18 ++++++++++++++++--
.../codegen/js/goog/TestGoogMethodMembers.java | 2 +-
.../codegen/js/royale/TestRoyaleMethodMembers.java | 2 +-
4 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
index 63ff931..6c94259 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogDocEmitter.java
@@ -305,7 +305,7 @@ public class JSGoogDocEmitter extends JSDocEmitter implements IJSGoogDocEmitter
String paramType = "";
if (node.isRest())
{
- paramType = "*";
+ paramType = ASEmitterTokens.ELLIPSIS.getToken();
}
else
{
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index 8fee41b..3e7da84 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -668,11 +668,25 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
if (asDoc != null)
{
String asDocString = asDoc.commentNoEnd();
- String coercionToken = JSRoyaleEmitterTokens.DEBUG_COMMENT
+ String debugToken = JSRoyaleEmitterTokens.DEBUG_COMMENT
.getToken();
- int emitIndex = asDocString.indexOf(coercionToken);
+ int emitIndex = asDocString.indexOf(debugToken);
if(emitIndex != -1)
{
+ IParameterNode[] pnodes = node.getParameterNodes();
+
+ IParameterNode rest = EmitterUtils.getRest(pnodes);
+ if (rest != null)
+ {
+ final StringBuilder code = new StringBuilder();
+ code.append(rest.getName());
+ code.append(ASEmitterTokens.SPACE.getToken());
+ code.append(ASEmitterTokens.EQUAL.getToken());
+ code.append(ASEmitterTokens.SPACE.getToken());
+ code.append(rest.getName());
+ code.append(ASEmitterTokens.SEMICOLON.getToken());
+ write(code.toString());
+ }
write(JSRoyaleEmitterTokens.DEBUG_RETURN);
writeNewline();
}
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogMethodMembers.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogMethodMembers.java
index 18695bf..d297675 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogMethodMembers.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/goog/TestGoogMethodMembers.java
@@ -94,7 +94,7 @@ public class TestGoogMethodMembers extends TestMethodMembers
{
IFunctionNode node = getMethod("function foo(bar:String, ...rest):int{\treturn -1;}");
asBlockWalker.visitFunction(node);
- assertOut("/**\n * @param {string} bar\n * @param {*} rest\n * @return {number}\n */\nRoyaleTest_A.prototype.foo = function(bar, rest) {\n\tvar self = this;\n\trest = Array.prototype.slice.call(arguments, 1);\n\treturn -1;\n}");
+ assertOut("/**\n * @param {string} bar\n * @param {...} rest\n * @return {number}\n */\nRoyaleTest_A.prototype.foo = function(bar, rest) {\n\tvar self = this;\n\trest = Array.prototype.slice.call(arguments, 1);\n\treturn -1;\n}");
}
@Override
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleMethodMembers.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleMethodMembers.java
index 34e38f2..f05f4bc 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleMethodMembers.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleMethodMembers.java
@@ -91,7 +91,7 @@ public class TestRoyaleMethodMembers extends TestGoogMethodMembers
{
IFunctionNode node = getMethod("function foo(bar:String, ...rest):int{ return -1;}");
asBlockWalker.visitFunction(node);
- assertOut("/**\n * @param {string} bar\n * @param {*} rest\n * @return {number}\n */\nRoyaleTest_A.prototype.foo = function(bar, rest) {\n rest = Array.prototype.slice.call(arguments, 1);\n return -1;\n}");
+ assertOut("/**\n * @param {string} bar\n * @param {...} rest\n * @return {number}\n */\nRoyaleTest_A.prototype.foo = function(bar, rest) {\n rest = Array.prototype.slice.call(arguments, 1);\n return -1;\n}");
}
@Override