Updated Branches:
  refs/heads/develop d6ab6c9be -> c5bf781ac

updated emitInterface for goog output


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/c5bf781a
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/c5bf781a
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/c5bf781a

Branch: refs/heads/develop
Commit: c5bf781acfe3743aaf629a3f81cf6f85d235dbd2
Parents: d6ab6c9
Author: cyrill.zadra <[email protected]>
Authored: Mon Apr 15 04:51:36 2013 +0800
Committer: cyrill.zadra <[email protected]>
Committed: Mon Apr 15 04:51:36 2013 +0800

----------------------------------------------------------------------
 .../codegen/js/flexjs/TestFlexJSEmiter.java        |    9 ++++
 .../internal/codegen/js/goog/TestGoogEmiter.java   |    2 +-
 .../codegen/js/goog/TestGoogInterface.java         |   14 +++---
 .../internal/codegen/js/goog/JSGoogEmitter.java    |   34 +++++++++-----
 4 files changed, 39 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c5bf781a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
index 97a72a1..e5858aa 100644
--- 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
+++ 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
@@ -22,12 +22,21 @@ package org.apache.flex.compiler.internal.codegen.js.flexjs;
 import org.apache.flex.compiler.driver.IBackend;
 import org.apache.flex.compiler.internal.codegen.js.goog.TestGoogEmiter;
 import org.apache.flex.compiler.internal.driver.js.flexjs.FlexJSBackend;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 
 /**
  * @author Erik de Bruin
  */
 public class TestFlexJSEmiter extends TestGoogEmiter
 {
+    @Override
+    public void setUp()
+    {
+       project = new FlexJSProject(workspace);
+       
+        super.setUp();
+    }
+       
 
     @Override
     protected IBackend createBackend()

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c5bf781a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogEmiter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogEmiter.java
 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogEmiter.java
index 6968203..b599919 100644
--- 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogEmiter.java
+++ 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogEmiter.java
@@ -63,7 +63,7 @@ public class TestGoogEmiter extends ASTestBase
                 + "}";
         IFileNode node = compileAS(code);
         asBlockWalker.visitFile(node);
-        
assertOut("goog.provide('com.example.components.TestInterface');\n\n/**\n * 
@interface\n */\npublic interface TestInterface {\n}");
+        
assertOut("goog.provide('com.example.components.TestInterface');\n\n/**\n * 
@interface\n */\ncom.example.components.TestInterface = function() {\n};");
     }
     
     @Test

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c5bf781a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogInterface.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogInterface.java
 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogInterface.java
index b7ec729..460515a 100644
--- 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogInterface.java
+++ 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogInterface.java
@@ -40,7 +40,7 @@ public class TestGoogInterface extends TestInterface
     {
         IInterfaceNode node = getInterfaceNode("public interface IA{}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n */\npublic interface IA {\n}");
+        assertOut("/**\n * @interface\n */\nIA = function() {\n};");
     }
 
     @Override
@@ -49,7 +49,7 @@ public class TestGoogInterface extends TestInterface
     {
         IInterfaceNode node = getInterfaceNode("public interface IA extends 
IB{}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n * @extends {IB}\n */\npublic interface 
IA {\n}");
+        assertOut("/**\n * @interface\n * @extends {IB}\n */\nIA = function() 
{\n};");
     }
 
     @Override
@@ -58,7 +58,7 @@ public class TestGoogInterface extends TestInterface
     {
         IInterfaceNode node = getInterfaceNode("public interface IA extends 
IB, IC, ID {}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n * @extends {IB}\n * @extends {IC}\n * 
@extends {ID}\n */\npublic interface IA {\n}");
+        assertOut("/**\n * @interface\n * @extends {IB}\n * @extends {IC}\n * 
@extends {ID}\n */\nIA = function() {\n};");
     }
 
     @Override
@@ -67,7 +67,7 @@ public class TestGoogInterface extends TestInterface
     {
         IInterfaceNode node = getInterfaceNode("public interface IA extends 
foo.bar.IB, baz.goo.IC, foo.ID {}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n * @extends {foo.bar.IB}\n * @extends 
{baz.goo.IC}\n * @extends {foo.ID}\n */\npublic interface IA {\n}");
+        assertOut("/**\n * @interface\n * @extends {foo.bar.IB}\n * @extends 
{baz.goo.IC}\n * @extends {foo.ID}\n */\nIA = function() {\n};");
     }
 
     @Override
@@ -78,7 +78,7 @@ public class TestGoogInterface extends TestInterface
                 + "function get foo1():Object;"
                 + "function set foo1(value:Object):void;}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n */\npublic interface IA 
{\n}\nIA.prototype.foo1;");
+        assertOut("/**\n * @interface\n */\nIA = function() 
{\n};\nIA.prototype.foo1;");
     }
 
     @Override
@@ -89,7 +89,7 @@ public class TestGoogInterface extends TestInterface
                 + "function baz1():Object;"
                 + "function baz2(value:Object):void;}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n */\npublic interface IA 
{\n}\nIA.prototype.baz1 = function();\nIA.prototype.baz2 = function(value);");
+        assertOut("/**\n * @interface\n */\nIA = function() 
{\n};\nIA.prototype.baz1 = function() {\n};\nIA.prototype.baz2 = 
function(value) {\n};");
     }
 
     @Override
@@ -102,7 +102,7 @@ public class TestGoogInterface extends TestInterface
                 + "function baz1():Object;"
                 + "function baz2(value:Object):void;}");
         asBlockWalker.visitInterface(node);
-        assertOut("/**\n * @interface\n */\npublic interface IA 
{\n}\nIA.prototype.foo1;\nIA.prototype.baz1 = function();\nIA.prototype.baz2 = 
function(value);");
+        assertOut("/**\n * @interface\n */\nIA = function() 
{\n};\nIA.prototype.foo1;\nIA.prototype.baz1 = function() 
{\n};\nIA.prototype.baz2 = function(value) {\n};");
     }
 
     protected IBackend createBackend()

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c5bf781a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index 545cfce..3256506 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -251,17 +251,24 @@ public class JSGoogEmitter extends JSEmitter implements 
IJSGoogEmitter
 
     @Override
     public void emitInterface(IInterfaceNode node)
-    {
+    {  
         getDoc().emitInterfaceDoc(node);
 
-        writeToken(node.getNamespace());
-
-        writeToken(ASEmitterTokens.INTERFACE);
-        getWalker().walk(node.getNameExpressionNode());
-        write(ASEmitterTokens.SPACE);
-
-        writeNewline(ASEmitterTokens.BLOCK_OPEN);
-        write(ASEmitterTokens.BLOCK_CLOSE);
+        String qname = node.getQualifiedName();
+        if (qname != null && !qname.equals(""))
+        {
+            write(qname);
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
+            write(ASEmitterTokens.FUNCTION);
+            write(ASEmitterTokens.PAREN_OPEN);
+            write(ASEmitterTokens.PAREN_CLOSE);
+            write(ASEmitterTokens.SPACE);
+            write(ASEmitterTokens.BLOCK_OPEN);
+            writeNewline();
+            write(ASEmitterTokens.BLOCK_CLOSE);
+            write(ASEmitterTokens.SEMICOLON);
+        }
 
         final IDefinitionNode[] members = node.getAllMemberDefinitionNodes();
         for (IDefinitionNode mnode : members)
@@ -269,13 +276,11 @@ public class JSGoogEmitter extends JSEmitter implements 
IJSGoogEmitter
             boolean isAccessor = mnode.getNodeID() == ASTNodeID.GetterID
                     || mnode.getNodeID() == ASTNodeID.SetterID;
 
-            String qname = node.getQualifiedName();
-
             if (!isAccessor || !propertyNames.contains(qname))
             {
                 writeNewline();
 
-                emitMemberName(node);
+                write(qname);
                 write(ASEmitterTokens.MEMBER_ACCESS);
                 write(JSEmitterTokens.PROTOTYPE);
                 write(ASEmitterTokens.MEMBER_ACCESS);
@@ -292,6 +297,11 @@ public class JSGoogEmitter extends JSEmitter implements 
IJSGoogEmitter
                     write(ASEmitterTokens.FUNCTION);
 
                     emitParamters(((IFunctionNode) mnode).getParameterNodes());
+
+                    write(ASEmitterTokens.SPACE);
+                    write(ASEmitterTokens.BLOCK_OPEN);
+                    writeNewline();
+                    write(ASEmitterTokens.BLOCK_CLOSE);
                 }
 
                 write(ASEmitterTokens.SEMICOLON);

Reply via email to