You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cz...@apache.org on 2013/04/14 19:11:56 UTC

git commit: emitPackageContents should not explicitly call emitClass because IClassNode or IInterfaceNode is a possible node in emitPackageConents, added two unit test

Updated Branches:
  refs/heads/develop 1ae474113 -> d6ab6c9be


emitPackageContents should not explicitly call emitClass because IClassNode or IInterfaceNode is a possible node in emitPackageConents, added two unit test


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

Branch: refs/heads/develop
Commit: d6ab6c9be3dec9e13d8bd702ca64f3e93c2a26b7
Parents: 1ae4741
Author: cyrill.zadra <cy...@gmail.com>
Authored: Mon Apr 15 01:03:42 2013 +0800
Committer: cyrill.zadra <cy...@gmail.com>
Committed: Mon Apr 15 01:03:42 2013 +0800

----------------------------------------------------------------------
 .../internal/codegen/js/goog/TestGoogEmiter.java   |   22 +++++++++++++++
 .../internal/codegen/js/goog/JSGoogEmitter.java    |   12 ++++----
 2 files changed, 28 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d6ab6c9b/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 7c1deef..6968203 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
@@ -54,6 +54,28 @@ public class TestGoogEmiter extends ASTestBase
         asBlockWalker.visitFile(node);
         assertOut("goog.provide('com.example.components.MyTextButton');\n\ngoog.require('spark.components.Button');\n\n/**\n * @constructor\n * @extends {spark.components.Button}\n */\ncom.example.components.MyTextButton = function() {\n\tvar self = this;\n\tgoog.base(this);\n\tif (foo() != 42) {\n\t\tbar();\n\t}\n}\ngoog.inherits(com.example.components.MyTextButton, spark.components.Button);\n\n/**\n * @private\n * @type {string}\n */\ncom.example.components.MyTextButton.prototype._privateVar = \"do \";\n\n/**\n * @type {number}\n */\ncom.example.components.MyTextButton.prototype.publicProperty = 100;\n\n/**\n * @param {string} value\n * @return {string}\n */\ncom.example.components.MyTextButton.prototype.myFunction = function(value) {\n\tvar self = this;\n\treturn \"Don't \" + self._privateVar + value;\n};");
     }
+    
+    @Test
+    public void testSimpleInterface()
+    {
+        String code = "package com.example.components {"
+                + "public interface TestInterface { }"
+                + "}";
+        IFileNode node = compileAS(code);
+        asBlockWalker.visitFile(node);
+        assertOut("goog.provide('com.example.components.TestInterface');\n\n/**\n * @interface\n */\npublic interface TestInterface {\n}");
+    }
+    
+    @Test
+    public void testSimpleClass()
+    {
+        String code = "package com.example.components {"
+                + "public class TestClass { }"
+                + "}";
+        IFileNode node = compileAS(code);
+        asBlockWalker.visitFile(node);
+        assertOut("goog.provide('com.example.components.TestClass');\n\n/**\n * @constructor\n */\ncom.example.components.TestClass = function() {\n};");
+    }
 
     @Test
     public void testSimpleMethod()

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d6ab6c9b/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 063a22e..545cfce 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
@@ -165,11 +165,11 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         if (type == null)
             return;
 
-        IClassNode cnode = (IClassNode) type.getNode();
-        if (cnode == null)
-            return;
-
-        emitClass(cnode);
+        ITypeNode tnode = findTypeNode(definition.getNode());
+        if (tnode != null)
+        {
+            getWalker().walk(tnode); // IClassNode | IInterfaceNode
+        }
     }
 
     @Override
@@ -1103,7 +1103,6 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
 
     private List<String> resolveImports(ITypeDefinition type)
     {
-        ClassDefinition cdefinition = (ClassDefinition) type;
         ArrayList<String> list = new ArrayList<String>();
         IScopedNode scopeNode = type.getContainedScope().getScopeNode();
         if (scopeNode != null)
@@ -1113,6 +1112,7 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         else
         {
             // MXML
+        	ClassDefinition cdefinition = (ClassDefinition) type;
             String[] implicitImports = cdefinition.getImplicitImports();
             for (String imp : implicitImports)
             {