You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ms...@apache.org on 2012/12/26 23:07:59 UTC

svn commit: r1426041 - in /incubator/flex/whiteboard/mschmalle/falconjx: compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java

Author: mschmalle
Date: Wed Dec 26 22:07:58 2012
New Revision: 1426041

URL: http://svn.apache.org/viewvc?rev=1426041&view=rev
Log:
Flex:FalconJx
- Fixed method name not being added to goog emitter

Modified:
    incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java
    incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java

Modified: incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java?rev=1426041&r1=1426040&r2=1426041&view=diff
==============================================================================
--- incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java (original)
+++ incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/js/internal/js/codegen/TestGoogEmiter.java Wed Dec 26 22:07:58 2012
@@ -63,12 +63,22 @@ public class TestGoogEmiter extends Test
     }
 
     @Test
+    public void testSimpleMethod()
+    {
+        JSSharedData.OUTPUT_JSDOC = false;
+        IFunctionNode node = getMethodSimple("function method1():void{\n}");
+        visitor.visitFunction(node);
+        assertOut("A.method1 = function() {\n}");
+        JSSharedData.OUTPUT_JSDOC = true;
+    }
+
+    @Test
     public void testSimpleParameterReturnType()
     {
         JSSharedData.OUTPUT_JSDOC = false;
-        IFunctionNode node = getMethod("function foo(bar:int):int{\n}");
+        IFunctionNode node = getMethod("function method1(bar:int):int{\n}");
         visitor.visitFunction(node);
-        assertOut("foo.bar.A = function(bar) {\n}");
+        assertOut("foo.bar.A.method1 = function(bar) {\n}");
         JSSharedData.OUTPUT_JSDOC = true;
     }
 
@@ -76,9 +86,9 @@ public class TestGoogEmiter extends Test
     public void testSimpleMultipleParameter()
     {
         JSSharedData.OUTPUT_JSDOC = false;
-        IFunctionNode node = getMethod("function foo(bar:int, baz:String, goo:A):void{\n}");
+        IFunctionNode node = getMethod("function method1(bar:int, baz:String, goo:A):void{\n}");
         visitor.visitFunction(node);
-        assertOut("foo.bar.A = function(bar, baz, goo) {\n}");
+        assertOut("foo.bar.A.method1 = function(bar, baz, goo) {\n}");
         JSSharedData.OUTPUT_JSDOC = true;
     }
 
@@ -87,10 +97,10 @@ public class TestGoogEmiter extends Test
     public void testSimpleMultipleParameter_JSDoc()
     {
         // jsdoc still needs to be sorted out before tests are executing
-        IFunctionNode node = getMethod("function foo(bar:int, baz:String, goo:A):void{\n}");
+        IFunctionNode node = getMethod("function method1(bar:int, baz:String, goo:A):void{\n}");
         visitor.visitFunction(node);
         assertOut("/**\n * @this {foo.bar.A}\n * @param {int} bar\n * @param {String} baz\n"
-                + " * @param {A} goo\n * @return {void}\n */\nfoo.bar.A = "
+                + " * @param {A} goo\n * @return {void}\n */\nfoo.bar.A.method1 = "
                 + "function(bar, baz, goo) {\n}");
     }
 
@@ -98,7 +108,7 @@ public class TestGoogEmiter extends Test
     public void testDefaultParameter_NoBody()
     {
         /*
-        foo.bar.A = function(bar, bax) {
+        foo.bar.A.method1 = function(bar, bax) {
             if (arguments.length < 2) {
                 if (arguments.length < 1) {
                     bar = 42;
@@ -108,9 +118,9 @@ public class TestGoogEmiter extends Test
         }
         */
         JSSharedData.OUTPUT_JSDOC = false;
-        IFunctionNode node = getMethod("function foo(bar:int = 42, bax:int = 4):void{\n}");
+        IFunctionNode node = getMethod("function method1(bar:int = 42, bax:int = 4):void{\n}");
         visitor.visitFunction(node);
-        assertOut("foo.bar.A = function(bar, bax) {\n\tif (arguments.length < 2) {\n\t\t"
+        assertOut("foo.bar.A.method1 = function(bar, bax) {\n\tif (arguments.length < 2) {\n\t\t"
                 + "if (arguments.length < 1) {\n\t\t\tbar = 42;\n\t\t}\n\t\tbax = 4;\n\t}\n}");
         JSSharedData.OUTPUT_JSDOC = true;
     }
@@ -119,7 +129,7 @@ public class TestGoogEmiter extends Test
     public void testDefaultParameter_Body()
     {
         /*
-        foo.bar.A = function(bar, bax) {
+        foo.bar.A.method1 = function(bar, bax) {
             if (arguments.length < 2) {
                 if (arguments.length < 1) {
                     bar = 42;
@@ -129,9 +139,9 @@ public class TestGoogEmiter extends Test
         }
         */
         JSSharedData.OUTPUT_JSDOC = false;
-        IFunctionNode node = getMethod("function foo(bar:int = 42, bax:int = 4):void{if (a) foo();}");
+        IFunctionNode node = getMethod("function method1(bar:int = 42, bax:int = 4):void{if (a) foo();}");
         visitor.visitFunction(node);
-        assertOut("foo.bar.A = function(bar, bax) {\n\tif (arguments.length < 2) {\n\t\t"
+        assertOut("foo.bar.A.method1 = function(bar, bax) {\n\tif (arguments.length < 2) {\n\t\t"
                 + "if (arguments.length < 1) {\n\t\t\tbar = 42;\n\t\t}\n\t\tbax = 4;\n\t}\n\t"
                 + "if (a)\n\t\tfoo();\n}");
         JSSharedData.OUTPUT_JSDOC = true;
@@ -141,7 +151,7 @@ public class TestGoogEmiter extends Test
     public void testDefaultParameter()
     {
         /*
-         foo.bar.A = function(p1, p2, p3, p4) {
+         foo.bar.A.method1 = function(p1, p2, p3, p4) {
             if (arguments.length < 4) {
                 if (arguments.length < 3) {
                     p3 = 3;
@@ -152,9 +162,9 @@ public class TestGoogEmiter extends Test
          }
          */
         JSSharedData.OUTPUT_JSDOC = false;
-        IFunctionNode node = getMethod("function foo(p1:int, p2:int, p3:int = 3, p4:int = 4):int{return p1 + p2 + p3 + p4;}");
+        IFunctionNode node = getMethod("function method1(p1:int, p2:int, p3:int = 3, p4:int = 4):int{return p1 + p2 + p3 + p4;}");
         visitor.visitFunction(node);
-        assertOut("foo.bar.A = function(p1, p2, p3, p4) {\n\tif (arguments.length < 4) "
+        assertOut("foo.bar.A.method1 = function(p1, p2, p3, p4) {\n\tif (arguments.length < 4) "
                 + "{\n\t\tif (arguments.length < 3) {\n\t\t\tp3 = 3;\n\t\t}\n\t\tp4 = 4;\n\t}"
                 + "\n\treturn p1 + p2 + p3 + p4;\n}");
         JSSharedData.OUTPUT_JSDOC = true;
@@ -174,6 +184,15 @@ public class TestGoogEmiter extends Test
         }
     }
 
+    protected IFunctionNode getMethodSimple(String code)
+    {
+        String source = "package {public class A {" + code + "}}";
+        IFileNode node = getFileNode(source);
+        IFunctionNode child = (IFunctionNode) findFirstDescendantOfType(node,
+                IFunctionNode.class);
+        return child;
+    }
+
     protected IFunctionNode getMethod(String code)
     {
         String source = "package foo.bar {public class A {" + code + "}}";

Modified: incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java?rev=1426041&r1=1426040&r2=1426041&view=diff
==============================================================================
--- incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java (original)
+++ incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/js/codgen/JSGoogEmitter.java Wed Dec 26 22:07:58 2012
@@ -192,7 +192,13 @@ public class JSGoogEmitter extends JSEmi
         fn.parseFunctionBody(new ArrayList<ICompilerProblem>());
 
         String qname = getTypeDefinition(node).getQualifiedName();
-        write(qname);
+        if (qname != null && !qname.equals(""))
+        {
+            write(qname);
+            write(".");
+        }
+        
+        emitMemberName(node);
         write(" ");
         write("=");
         write(" ");