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)
{