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