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