move exportSymbol of the class earlier in the file so other @exports are added to the class export. Otherwise the class export overwrites the object holding the other exports
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/caf79f2a Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/caf79f2a Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/caf79f2a Branch: refs/heads/develop Commit: caf79f2a6480d8a7be069e136b50bed2748e1015 Parents: 203e769 Author: Alex Harui <[email protected]> Authored: Wed Jul 12 23:08:39 2017 -0700 Committer: Alex Harui <[email protected]> Committed: Wed Jul 12 23:08:39 2017 -0700 ---------------------------------------------------------------------- .../internal/codegen/js/jx/ClassEmitter.java | 24 ++++ .../codegen/js/jx/InterfaceEmitter.java | 24 ++++ .../codegen/js/jx/PackageFooterEmitter.java | 23 --- .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java | 34 ++--- .../js/flexjs/TestFlexJSAccessorMembers.java | 24 ++-- .../codegen/js/flexjs/TestFlexJSAccessors.java | 14 +- .../codegen/js/flexjs/TestFlexJSClass.java | 84 +++++------ .../codegen/js/flexjs/TestFlexJSEmitter.java | 48 +++---- .../js/flexjs/TestFlexJSExpressions.java | 2 +- .../js/flexjs/TestFlexJSFieldMembers.java | 20 +-- .../codegen/js/flexjs/TestFlexJSInterface.java | 42 +++++- .../js/flexjs/TestFlexJSMethodMembers.java | 12 +- .../codegen/js/flexjs/TestFlexJSPackage.java | 144 +++---------------- .../codegen/js/flexjs/TestFlexJSStatements.java | 8 +- .../mxml/flexjs/TestFlexJSMXMLApplication.java | 72 +++++----- .../mxml/flexjs/TestFlexJSMXMLScript.java | 36 ++--- .../sourcemaps/TestSourceMapMXMLEvents.java | 2 +- .../sourcemaps/TestSourceMapMXMLScript.java | 14 +- .../flexjs/files/FlexJSTest_again_result.js | 12 +- .../flexjs/files/LocalFunction_result.js | 12 +- .../flexjs/files/MyInitialView_result.js | 12 +- .../files/controllers/MyController_result.js | 12 +- .../flexjs/files/models/MyModel_result.js | 12 +- .../flexjs/files/wildcard_import_result.js | 12 +- .../projects/bad_overrides/Test_result.js | 12 +- .../projects/bad_overrides/classes/A_result.js | 12 +- .../projects/bad_overrides/classes/B_result.js | 12 +- .../projects/bad_overrides/classes/C_result.js | 12 +- .../bad_overrides/interfaces/IA_result.js | 12 +- .../bad_overrides/interfaces/IB_result.js | 12 +- .../bad_overrides/interfaces/IC_result.js | 12 +- .../flexjs/projects/circular/Base_result.js | 12 +- .../flexjs/projects/circular/Super_result.js | 12 +- .../flexjs/projects/circular_proto/A_result.js | 12 +- .../flexjs/projects/circular_proto/B_result.js | 12 +- .../flexjs/projects/circular_proto/C_result.js | 12 +- .../flexjs/projects/circular_proto/D_result.js | 12 +- .../flexjs/projects/circular_proto/E_result.js | 12 +- .../flexjs/projects/circular_proto/F_result.js | 12 +- .../flexjs/projects/interfaces/Test_result.js | 12 +- .../projects/interfaces/classes/A_result.js | 12 +- .../projects/interfaces/classes/B_result.js | 12 +- .../projects/interfaces/classes/C_result.js | 12 +- .../projects/interfaces/interfaces/IA_result.js | 12 +- .../projects/interfaces/interfaces/IC_result.js | 12 +- .../projects/interfaces/interfaces/ID_result.js | 12 +- .../projects/interfaces/interfaces/IE_result.js | 12 +- .../projects/internal/MainClass_result.js | 24 ++-- .../projects/internal/OtherClass_result.js | 12 +- .../flexjs/projects/overrides/Test_result.js | 12 +- .../projects/overrides/classes/A_result.js | 12 +- .../projects/overrides/classes/B_result.js | 12 +- .../projects/overrides/classes/C_result.js | 12 +- .../projects/overrides/interfaces/IA_result.js | 12 +- .../projects/overrides/interfaces/IB_result.js | 12 +- .../projects/overrides/interfaces/IC_result.js | 12 +- .../DifferentPackageAsConflict_result.js | 12 +- .../Event_result.js | 12 +- .../mypackage/TestClass_result.js | 12 +- .../otherpackage/Event_result.js | 12 +- .../Event_result.js | 12 +- .../NoConflictNoWindow_result.js | 12 +- .../mypackage/TestClass_result.js | 12 +- .../Event_result.js | 12 +- .../NoConflictUseWindow_result.js | 12 +- .../mypackage/TestClass_result.js | 12 +- .../Event_result.js | 12 +- .../SamePackageAsConflict_result.js | 12 +- .../mypackage/Event_result.js | 12 +- .../mypackage/TestClass_result.js | 12 +- .../Event_result.js | 12 +- .../UseWindow_result.js | 12 +- .../mypackage/TestClass_result.js | 12 +- .../otherpackage/Event_result.js | 12 +- .../flexjs/projects/super/Base_result.js | 12 +- .../flexjs/projects/super/Super_result.js | 12 +- .../projects/xml_requires/XMLRequire_result.js | 12 +- 77 files changed, 647 insertions(+), 700 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java index 9ee555e..4df1a21 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java @@ -27,7 +27,9 @@ import org.apache.flex.compiler.definitions.IDefinition; import org.apache.flex.compiler.definitions.IFunctionDefinition; import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.JSSubEmitter; +import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSDocEmitter; import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter; +import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.utils.DocEmitterUtils; import org.apache.flex.compiler.internal.codegen.js.utils.EmitterUtils; import org.apache.flex.compiler.internal.projects.FlexJSProject; @@ -129,6 +131,28 @@ public class ClassEmitter extends JSSubEmitter implements } } + if (!getEmitter().getModel().isExterns) + { + JSFlexJSDocEmitter doc = (JSFlexJSDocEmitter) getEmitter() + .getDocEmitter(); + writeNewline(); + writeNewline(); + writeNewline(); + doc.begin(); + writeNewline(" * Prevent renaming of class. Needed for reflection."); + doc.end(); + write(JSFlexJSEmitterTokens.GOOG_EXPORT_SYMBOL); + write(ASEmitterTokens.PAREN_OPEN); + write(ASEmitterTokens.SINGLE_QUOTE); + write(getEmitter().formatQualifiedName(node.getQualifiedName())); + write(ASEmitterTokens.SINGLE_QUOTE); + write(ASEmitterTokens.COMMA); + write(ASEmitterTokens.SPACE); + write(getEmitter().formatQualifiedName(node.getQualifiedName())); + write(ASEmitterTokens.PAREN_CLOSE); + write(ASEmitterTokens.SEMICOLON); + } + IDefinitionNode[] dnodes = node.getAllMemberNodes(); for (IDefinitionNode dnode : dnodes) { http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java index 626896f..3c15b64 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java @@ -26,7 +26,9 @@ import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.JSDocEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.JSEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.JSSubEmitter; +import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSDocEmitter; import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter; +import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitterTokens; import org.apache.flex.compiler.projects.ICompilerProject; import org.apache.flex.compiler.tree.ASTNodeID; import org.apache.flex.compiler.tree.as.IAccessorNode; @@ -70,6 +72,28 @@ public class InterfaceEmitter extends JSSubEmitter implements write(ASEmitterTokens.SEMICOLON); } + if (!getEmitter().getModel().isExterns) + { + JSFlexJSDocEmitter doc = (JSFlexJSDocEmitter) getEmitter() + .getDocEmitter(); + writeNewline(); + writeNewline(); + writeNewline(); + doc.begin(); + writeNewline(" * Prevent renaming of class. Needed for reflection."); + doc.end(); + write(JSFlexJSEmitterTokens.GOOG_EXPORT_SYMBOL); + write(ASEmitterTokens.PAREN_OPEN); + write(ASEmitterTokens.SINGLE_QUOTE); + write(getEmitter().formatQualifiedName(node.getQualifiedName())); + write(ASEmitterTokens.SINGLE_QUOTE); + write(ASEmitterTokens.COMMA); + write(ASEmitterTokens.SPACE); + write(getEmitter().formatQualifiedName(node.getQualifiedName())); + write(ASEmitterTokens.PAREN_CLOSE); + write(ASEmitterTokens.SEMICOLON); + } + final IDefinitionNode[] members = node.getAllMemberDefinitionNodes(); for (IDefinitionNode mnode : members) { http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java index abfb297..5952352 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/PackageFooterEmitter.java @@ -172,29 +172,6 @@ public class PackageFooterEmitter extends JSSubEmitter implements write(ASEmitterTokens.SPACE); write(ASEmitterTokens.BLOCK_CLOSE); write(ASEmitterTokens.SEMICOLON); - // Removed this exclusion to support interface reflection (GD) - // if (!(tnode instanceof IInterfaceNode)) - // { - if (!getEmitter().getModel().isExterns) - { - writeNewline(); - writeNewline(); - writeNewline(); - doc.begin(); - writeNewline(" * Prevent renaming of class. Needed for reflection."); - doc.end(); - write(JSFlexJSEmitterTokens.GOOG_EXPORT_SYMBOL); - write(ASEmitterTokens.PAREN_OPEN); - write(ASEmitterTokens.SINGLE_QUOTE); - write(getEmitter().formatQualifiedName(tnode.getQualifiedName())); - write(ASEmitterTokens.SINGLE_QUOTE); - write(ASEmitterTokens.COMMA); - write(ASEmitterTokens.SPACE); - write(getEmitter().formatQualifiedName(tnode.getQualifiedName())); - write(ASEmitterTokens.PAREN_CLOSE); - write(ASEmitterTokens.SEMICOLON); - } - // } collectReflectionData(tnode); IMetaTagNode[] metadata = null; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java index ab57497..77377c9 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java @@ -799,8 +799,25 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements write(formatQualifiedName(baseClassName)); write(ASEmitterTokens.PAREN_CLOSE); writeNewline(ASEmitterTokens.SEMICOLON); + + writeNewline(); + writeNewline(); + writeNewline("/**"); + writeNewline(" * Prevent renaming of class. Needed for reflection."); + writeNewline(" */"); + write(JSFlexJSEmitterTokens.GOOG_EXPORT_SYMBOL); + write(ASEmitterTokens.PAREN_OPEN); + write(ASEmitterTokens.SINGLE_QUOTE); + write(formatQualifiedName(cname)); + write(ASEmitterTokens.SINGLE_QUOTE); + write(ASEmitterTokens.COMMA); + write(ASEmitterTokens.SPACE); + write(formatQualifiedName(cname)); + write(ASEmitterTokens.PAREN_CLOSE); + write(ASEmitterTokens.SEMICOLON); writeNewline(); writeNewline(); + writeNewline(); } //-------------------------------------------------------------------------- @@ -834,23 +851,6 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements } write(" };"); - writeNewline(); - writeNewline(); - writeNewline(); - writeNewline("/**"); - writeNewline(" * Prevent renaming of class. Needed for reflection."); - writeNewline(" */"); - write(JSFlexJSEmitterTokens.GOOG_EXPORT_SYMBOL); - write(ASEmitterTokens.PAREN_OPEN); - write(ASEmitterTokens.SINGLE_QUOTE); - write(formatQualifiedName(cname)); - write(ASEmitterTokens.SINGLE_QUOTE); - write(ASEmitterTokens.COMMA); - write(ASEmitterTokens.SPACE); - write(formatQualifiedName(cname)); - write(ASEmitterTokens.PAREN_CLOSE); - write(ASEmitterTokens.SEMICOLON); - emitReflectionData(cdef); writeNewline(); writeNewline(); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java index cfc0578..4070eb8 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java @@ -37,7 +37,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("function get foo():int{}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.get__foo = function() {\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);"); } @@ -49,7 +49,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("function get foo():int{return -1;}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.get__foo = function() {\n return -1;\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);"); } @@ -61,7 +61,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public function get foo():int{return -1;}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.get__foo = function() {\n return -1;\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);"); } @@ -73,7 +73,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public class B extends A { public override function get foo():int{return super.foo;} }; public class A {public function get foo():int {return 0;}} ", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n" + + assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n" + "B.prototype.get__foo = function() {\n return B.superClass_.get__foo.apply(this);\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nfoo: {\nget: B.prototype.get__foo}}\n);"); } @@ -84,7 +84,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public class B extends A { public override function get foo():int{return super.foo;} }; public class A { public function set foo(value:int):void{} public function get foo():int {return 0;}}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n" + + assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n" + "B.prototype.get__foo = function() {\n return B.superClass_.get__foo.apply(this);\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nfoo: {\nget: B.prototype.get__foo,\nset: A.prototype.set__foo}}\n);"); } @@ -96,7 +96,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public static function get foo():int{return -1;}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.get__foo = function() {\n return -1;\n};\n\n\n" + "Object.defineProperties(FalconTest_A, /** @lends {FalconTest_A} */ {\n/** @export */\nfoo: {\nget: FalconTest_A.get__foo}}\n);"); } @@ -108,7 +108,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("function set foo(value:int):void{}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.set__foo = function(value) {\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);"); } @@ -120,7 +120,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("function set foo(value:int):void{fetch('haai');}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.set__foo = function(value) {\n fetch('haai');\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);"); } @@ -132,7 +132,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public function set foo(value:int):void{}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.prototype.set__foo = function(value) {\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);"); } @@ -144,7 +144,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public class B extends A { public override function set foo(value:int):void {super.foo = value;} }; public class A { public function set foo(value:int):void{}}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n" + + assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n" + "B.prototype.set__foo = function(value) {\n B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nfoo: {\nset: B.prototype.set__foo}}\n);"); } @@ -156,7 +156,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public static function set foo(value:int):void{}", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" + "FalconTest_A.set__foo = function(value) {\n};\n\n\n" + "Object.defineProperties(FalconTest_A, /** @lends {FalconTest_A} */ {\n/** @export */\nfoo: {\nset: FalconTest_A.set__foo}}\n);"); } @@ -167,7 +167,7 @@ public class TestFlexJSAccessorMembers extends TestGoogAccessorMembers IClassNode node = (IClassNode) getNode("public class B extends A { public override function set foo(value:int):void {super.foo = value;} }; public class A { public function set foo(value:int):void{} public function get foo():int { return 0;}}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n" + + assertOut("/**\n * @constructor\n * @extends {A}\n */\nB = function() {\n B.base(this, 'constructor');\n};\ngoog.inherits(B, A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n" + "B.prototype.set__foo = function(value) {\n B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nfoo: {\nget: A.prototype.get__foo,\nset: B.prototype.set__foo}}\n);"); } http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessors.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessors.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessors.java index 1f88fe4..93a6e09 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessors.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSAccessors.java @@ -46,7 +46,7 @@ public class TestFlexJSAccessors extends ASTestBase "public function doStuff():void {label = 'hello, bye'; var theLabel:String = label;}; private var _label:String; public function get label():String {return _label}; public function set label(value:String):void {_label = value}; ", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + "FalconTest_A.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "FalconTest_A.prototype.set__label = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\n" + @@ -61,7 +61,7 @@ public class TestFlexJSAccessors extends ASTestBase "public class B { public function B() {}; public function doStuff():void {this.label = label + 'bye'; var theLabel:String = label;}; private var _label:String; public function get label():String {return _label}; public function set label(value:String):void {_label = value};}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n this.label = this.label + 'bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n this.label = this.label + 'bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + "B.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "B.prototype.set__label = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nlabel: {\n" + @@ -76,7 +76,7 @@ public class TestFlexJSAccessors extends ASTestBase "public function doStuff():void {label = label + 'bye'; var theLabel:String = label;}; private var _label:String; public function get label():String {return _label}; public function set label(value:String):void {_label = value}; ", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = this.label + 'bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = this.label + 'bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + "FalconTest_A.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "FalconTest_A.prototype.set__label = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nlabel: {\n" + @@ -91,7 +91,7 @@ public class TestFlexJSAccessors extends ASTestBase "public class B { public function B() {}; public function doStuff():void {label = this.label; var theLabel:String = label;}; private var _label:String; public function get label():String {return _label}; public function set label(value:String):void {_label = value};}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n this.label = this.label;\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n this.label = this.label;\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + "B.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "B.prototype.set__label = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\nlabel: {\n" + @@ -106,7 +106,7 @@ public class TestFlexJSAccessors extends ASTestBase "import flash.utils.flash_proxy;use namespace flash_proxy;public class B { public function B() {}; public function doStuff():void {var theLabel:String = label; label = theLabel;}; private var _label:String; flash_proxy function get label():String {return _label}; flash_proxy function set label(value:String):void {_label = value};}", IClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n var /** @type {string} */ theLabel = this[\"http://www.adobe.com/2006/actionscript/flash/proxy::label\"];\n this[\"http://www.adobe.com/2006/actionscript/flash/proxy::label\"] = theLabel;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nB = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n */\nB.prototype.doStuff = function() {\n var /** @type {string} */ theLabel = this[\"http://www.adobe.com/2006/actionscript/flash/proxy::label\"];\n this[\"http://www.adobe.com/2006/actionscript/flash/proxy::label\"] = theLabel;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" + "B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::get__label\"] = function() {\n return this._label;\n};\n\n\n" + "B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::set__label\"] = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(B.prototype, /** @lends {B.prototype} */ {\n/** @export */\n\"http://www.adobe.com/2006/actionscript/flash/proxy::label\": {\nget: B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::get__label\"],\nset: B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::set__label\"]}}\n);"; @@ -120,7 +120,7 @@ public class TestFlexJSAccessors extends ASTestBase "public function doStuff():void {label = 'hello, bye'; var theLabel:String = label;}; private var _label:String; [Bindable] public function get label():String {return _label}; public function set label(value:String):void {_label = value}; ", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + "FalconTest_A.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "FalconTest_A.prototype.bindable__set__label = function(value) {\n this._label = value;\n};\n\n\n" + "FalconTest_A.prototype.set__label = function(value) {\nvar oldValue = this.get__label();\nif (oldValue != value) {\nthis.bindable__set__label(value);\n" + @@ -138,7 +138,7 @@ public class TestFlexJSAccessors extends ASTestBase "public function doStuff():void {label = 'hello, bye'; var theLabel:String = label;}; private var _label:String; [Bindable(\"change\")] public function get label():String {return _label}; public function set label(value:String):void {_label = value}; ", IClassNode.class, WRAP_LEVEL_CLASS); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + + String expected = "/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff = function() {\n this.label = 'hello, bye';\n var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n */\nFalconTest_A.prototype._label;\n\n\n" + "FalconTest_A.prototype.get__label = function() {\n return this._label;\n};\n\n\n" + "FalconTest_A.prototype.set__label = function(value) {\n this._label = value;\n};\n\n\n" + "Object.defineProperties(FalconTest_A.prototype, /** @lends {FalconTest_A.prototype} */ {\n/** @export */\n" + http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java index 07c8000..fbb1c41 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java @@ -48,7 +48,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {public function A() { super(); }}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n ;\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n ;\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -57,7 +57,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Test @@ -65,7 +65,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher {public function A(arg:String) { super(arg);}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg\n */\norg.apache.flex.A = function(arg) {\n org.apache.flex.A.base(this, 'constructor', arg);\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg\n */\norg.apache.flex.A = function(arg) {\n org.apache.flex.A.base(this, 'constructor', arg);\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Test @@ -73,7 +73,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher {public function A(arg:String) {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg\n */\norg.apache.flex.A = function(arg) {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg\n */\norg.apache.flex.A = function(arg) {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -82,7 +82,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher implements IEventDispatcher {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -91,7 +91,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher implements IEventDispatcher, IBitmapDrawable {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -100,7 +100,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public final class A extends EventDispatcher implements IEventDispatcher, IBitmapDrawable {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -109,7 +109,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends flash.events.EventDispatcher implements flash.events.IEventDispatcher, flash.display.IBitmapDrawable {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -118,7 +118,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends flash.events.EventDispatcher { public function A() { super('foo', 42);}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor', 'foo', 42);\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor', 'foo', 42);\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Test @@ -126,7 +126,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B(arg1:String) {this.arg1 = arg1}; public var arg1:String;}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n * @param {string} arg1\n */\norg.apache.flex.B = function(arg1) {\n this.arg1 = arg1;\n};\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.B.prototype.arg1;"; + String expected = "/**\n * @constructor\n * @param {string} arg1\n */\norg.apache.flex.B = function(arg1) {\n this.arg1 = arg1;\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.B.prototype.arg1;"; assertOut(expected); } @@ -135,7 +135,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; public var event:Event = new Event(); public function foo():String {return event.type;};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n\nthis.event = new flash.events.Event();\n};\n\n\n/**\n * @export\n * @type {flash.events.Event}\n */\norg.apache.flex.B.prototype.event;\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo = function() {\n return this.event.type;\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n\nthis.event = new flash.events.Event();\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @type {flash.events.Event}\n */\norg.apache.flex.B.prototype.event;\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo = function() {\n return this.event.type;\n};"; assertOut(expected); } @@ -144,7 +144,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; public function foo():void {};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; assertOut(expected); } @@ -153,7 +153,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; override public function foo():void {};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; assertOut(expected); } @@ -162,7 +162,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; override public function foo(value:Object):void {baz = ''};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n baz = '';\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n baz = '';\n};"; assertOut(expected); } @@ -171,7 +171,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; override public function foo():void {super.foo();};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n org.apache.flex.B.superClass_.foo.apply(this);\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n org.apache.flex.B.superClass_.foo.apply(this);\n};"; assertOut(expected); } @@ -180,7 +180,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; public function set baz(value:Object):void {}; public function set foo(value:Object):void {baz = value;};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\norg.apache.flex.B.prototype.set__baz = function(value) {\n};\n\n\norg.apache.flex.B.prototype.set__foo = function(value) {\n this.baz = value;\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype, /** @lends {org.apache.flex.B.prototype} */ {\n/** @export */\nbaz: {\nset: org.apache.flex.B.prototype.set__baz},\n/** @export */\nfoo: {\nset: org.apache.flex.B.prototype.set__foo}}\n);"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__baz = function(value) {\n};\n\n\norg.apache.flex.B.prototype.set__foo = function(value) {\n this.baz = value;\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype, /** @lends {org.apache.flex.B.prototype} */ {\n/** @export */\nbaz: {\nset: org.apache.flex.B.prototype.set__baz},\n/** @export */\nfoo: {\nset: org.apache.flex.B.prototype.set__foo}}\n);"; assertOut(expected); } @@ -189,7 +189,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class B extends A {public function B() {}; override public function set foo(value:Object):void {super.foo = value;};} class A {public function set foo(value:Object):void {}}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n * @extends {org.apache.flex.A}\n */\norg.apache.flex.B = function() {\n org.apache.flex.B.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.B, org.apache.flex.A);\n\n\norg.apache.flex.B.prototype.set__foo = function(value) {\n org.apache.flex.B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype, /** @lends {org.apache.flex.B.prototype} */ {\n/** @export */\nfoo: {\nset: org.apache.flex.B.prototype.set__foo}}\n);"; + String expected = "/**\n * @constructor\n * @extends {org.apache.flex.A}\n */\norg.apache.flex.B = function() {\n org.apache.flex.B.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.B, org.apache.flex.A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__foo = function(value) {\n org.apache.flex.B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype, /** @lends {org.apache.flex.B.prototype} */ {\n/** @export */\nfoo: {\nset: org.apache.flex.B.prototype.set__foo}}\n);"; assertOut(expected); } @@ -198,7 +198,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("import flash.utils.flash_proxy; use namespace flash_proxy; public class B {public function B() {}; flash_proxy function foo():void {};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n */\norg.apache.flex.B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::foo\"] = function() {\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n */\norg.apache.flex.B.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::foo\"] = function() {\n};"; assertOut(expected); } @@ -208,7 +208,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends flash.events.EventDispatcher {public function A(arg1:String, arg2:int) {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n org.apache.flex.A.base(this, 'constructor');\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -218,7 +218,7 @@ public class TestFlexJSClass extends TestGoogClass IClassNode node = getClassNode("public class A {public var a:Object;protected var b:String; " + "private var c:int; internal var d:uint; var e:Number}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @type {Object}\n */\norg.apache.flex.A.prototype.a;\n\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.flex.A.prototype.b;\n\n\n/**\n * @private\n * @type {number}\n */\norg.apache.flex.A.prototype.c = 0;\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.prototype.d = 0;\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.prototype.e;"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @type {Object}\n */\norg.apache.flex.A.prototype.a;\n\n\n/**\n * @protected\n * @type {string}\n */\norg.apache.flex.A.prototype.b;\n\n\n/**\n * @private\n * @type {number}\n */\norg.apache.flex.A.prototype.c = 0;\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.prototype.d = 0;\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.prototype.e;"); } @Test @@ -229,7 +229,7 @@ public class TestFlexJSClass extends TestGoogClass asBlockWalker.visitClass(node); assertOut("/**\n * @constructor\n" + " */\norg.apache.flex.A = function() {\n" + - "};\n\n\n" + + "};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n" + "/**\n" + " * @export\n" + " * @type {Object}\n" + @@ -319,7 +319,7 @@ public class TestFlexJSClass extends TestGoogClass assertOut("/**\n * @constructor\n" + " */\norg.apache.flex.A = function() {\n\n" + "this.a_ = {foo:1};\n" + - "};\n\n\n" + + "};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n" + "/**\n" + " * @export\n" + " * @type {Object}\n" + @@ -408,7 +408,7 @@ public class TestFlexJSClass extends TestGoogClass asBlockWalker.visitClass(node); assertOut("/**\n * @constructor\n" + " */\norg.apache.flex.A = function() {\n" + - "};\n\n\n" + + "};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n" + "/**\n" + " * @export\n" + " * @type {Object}\n" + @@ -460,7 +460,7 @@ public class TestFlexJSClass extends TestGoogClass IClassNode node = getClassNode("public class A {public static var a:int = 10;public static var b:String = initStatic(); " + "private static function initStatic():String { return \"foo\"; }}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.a = 10;\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.A.b;\n\n\n/**\n * @private\n * @return {string}\n */\norg.apache.flex.A.initStatic = function() {\n return \"foo\";\n};\n\norg.apache.flex.A.b = org.apache.flex.A.initStatic();\n\n"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @type {number}\n */\norg.apache.flex.A.a = 10;\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.A.b;\n\n\n/**\n * @private\n * @return {string}\n */\norg.apache.flex.A.initStatic = function() {\n return \"foo\";\n};\n\norg.apache.flex.A.b = org.apache.flex.A.initStatic();\n\n"); } @Test @@ -468,7 +468,7 @@ public class TestFlexJSClass extends TestGoogClass { FileNode node = (FileNode)getNode("package org.apache.flex {\npublic class A {\nimport flash.display.Sprite; Sprite;\n}}", FileNode.class, 0); asBlockWalker.visitFile(node); - assertOut("/**\n * org.apache.flex.A\n *\n * @fileoverview\n *\n * @suppress {checkTypes|accessControls}\n */\n\ngoog.provide('org.apache.flex.A');\n\ngoog.require('flash.display.Sprite');\n\n\n\n/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * org.apache.flex.A\n *\n * @fileoverview\n *\n * @suppress {checkTypes|accessControls}\n */\n\ngoog.provide('org.apache.flex.A');\n\ngoog.require('flash.display.Sprite');\n\n\n\n/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -481,7 +481,7 @@ public class TestFlexJSClass extends TestGoogClass + "private static const C:Number = 42;" + "foo_bar static const C:String = 'me' + 'you';}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @const\n * @type {number}\n */\norg.apache.flex.A.A = 42;\n\n\n/**\n * @protected\n * @const\n * @type {number}\n */\norg.apache.flex.A.B = 42;\n\n\n/**\n * @private\n * @const\n * @type {number}\n */\norg.apache.flex.A.C = 42;\n\n\n/**\n * @export\n * @const\n * @type {string}\n */\norg.apache.flex.A.C = 'me' + 'you';"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @const\n * @type {number}\n */\norg.apache.flex.A.A = 42;\n\n\n/**\n * @protected\n * @const\n * @type {number}\n */\norg.apache.flex.A.B = 42;\n\n\n/**\n * @private\n * @const\n * @type {number}\n */\norg.apache.flex.A.C = 42;\n\n\n/**\n * @export\n * @const\n * @type {string}\n */\norg.apache.flex.A.C = 'me' + 'you';"); } @Override @@ -500,7 +500,7 @@ public class TestFlexJSClass extends TestGoogClass + "flash_proxy function get foo6():Object{return null;}" + "flash_proxy function set foo6(value:Object):void{}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n" + + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n" + "org.apache.flex.A.prototype.get__foo1 = function() {\n return null;\n};\n\n\n" + "org.apache.flex.A.prototype.set__foo1 = function(value) {\n};\n\n\n" + "org.apache.flex.A.prototype.get__foo2 = function() {\n return null;\n};\n\n\n" + @@ -535,7 +535,7 @@ public class TestFlexJSClass extends TestGoogClass + "public static function foo7(value:Object):void{}" + "flash_proxy static function foo7(value:Object):void{}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n return null;\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n return org.apache.flex.A.superClass_.foo1b.apply(this);\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype[\"http://www.adobe.com/2006/actionscript/flash/proxy::foo6\"] = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */ \norg.apache.flex.A.foo7 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A[\"http://www.adobe.com/2006/actionscript/flash/proxy::foo7\"] = function(value) {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n return null;\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n return org.apache.flex.A.superClass_.foo1b.apply(this);\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype[\"http:// www.adobe.com/2006/actionscript/flash/proxy::foo6\"] = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.flex.A.foo7 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A[\"http://www.adobe.com/2006/actionscript/flash/proxy::foo7\"] = function(value) {\n};"); } @Test @@ -546,7 +546,7 @@ public class TestFlexJSClass extends TestGoogClass + "public function foo2():Object{function bar2(param1:Object):Object {return null;}; return bar2('foo');}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n var self = this;\n function bar1() {\n return null;\n };\n return bar1();\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n var self = this;\n function bar2(param1) {\n return null;\n };\n return bar2('foo');\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n var self = this;\n function bar1() {\n return null;\n };\n return bar1();\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n var self = this;\n function bar2(param1) {\n return null;\n };\n return bar2('foo');\n};"); } @Test @@ -558,7 +558,7 @@ public class TestFlexJSClass extends TestGoogClass + "public function foo2():String{function bar2(param1:String):String {return param1 + baz1;}; return bar2('foo');}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.B.prototype.baz1;\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n var self = this;\n function bar1() {\n return self.baz1;\n };\n return bar1();\n};\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n var self = this;\n function bar2(param1) {\n return param1 + self.baz1;\n };\n return bar2('foo');\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @type {string}\n */\norg.apache.flex.B.prototype.baz1;\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n var self = this;\n function bar1() {\n return self.baz1;\n };\n return bar1();\n};\n\n\n/**\n * @export\n * @return {string}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n var self = this;\n function bar2(param1) {\n return param1 + self.baz1;\n };\n return bar2('foo');\n};"); } @Test @@ -578,7 +578,7 @@ public class TestFlexJSClass extends TestGoogClass + "public function clone():B { return new B() }" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @return {org.apache.flex.B}\n */\norg.apache.flex.B.prototype.clone = function() {\n return new org.apache.flex.B();\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.B', org.apache.flex.B);\n\n\n/**\n * @export\n * @return {org.apache.flex.B}\n */\norg.apache.flex.B.prototype.clone = function() {\n return new org.apache.flex.B();\n};"); } @Override @@ -587,7 +587,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A{}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -598,7 +598,7 @@ public class TestFlexJSClass extends TestGoogClass // in JS we ignore it IClassNode node = getClassNode("internal class A{}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -609,7 +609,7 @@ public class TestFlexJSClass extends TestGoogClass // in JS we ignore it IClassNode node = getClassNode("public final class A{}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -619,7 +619,7 @@ public class TestFlexJSClass extends TestGoogClass // (erikdebruin) all JS objects are 'dynamic' by design IClassNode node = getClassNode("public dynamic class A{}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -628,7 +628,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A implements IEventDispatcher {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Override @@ -637,7 +637,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A implements IEventDispatcher, IBitmapDrawable {public function A() {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n * @implements {flash.events.IEventDispatcher}\n * @implements {flash.display.IBitmapDrawable}\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @@ -647,7 +647,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {public function A() { }}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @@ -657,7 +657,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {public function A(arg1:String, arg2:int) {}}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n};"); + assertOut("/**\n * @constructor\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);"); } @Test @@ -665,7 +665,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {public function A(arg1:String, arg2:int) {arg2 = arg2 + 2;} public var foo:Array = [];}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n \n this.foo = [];\n arg2 = arg2 + 2;\n};\n\n\n/**\n * @export\n * @type {Array}\n */\norg.apache.flex.A.prototype.foo;"); + assertOut("/**\n * @constructor\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n \n this.foo = [];\n arg2 = arg2 + 2;\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @type {Array}\n */\norg.apache.flex.A.prototype.foo;"); } @Test @@ -673,7 +673,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A extends EventDispatcher {public function A(arg1:String, arg2:int) {arg2 = arg2 + 2;} public var foo:Array = [];}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n org.apache.flex.A.base(this, 'constructor');\n \n this.foo = [];\n arg2 = arg2 + 2;\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * @export\n * @type {Array}\n */\norg.apache.flex.A.prototype.foo;"); + assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n org.apache.flex.A.base(this, 'constructor');\n \n this.foo = [];\n arg2 = arg2 + 2;\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @type {Array}\n */\norg.apache.flex.A.prototype.foo;"); } @Test @@ -681,7 +681,7 @@ public class TestFlexJSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {public static const NAME:String = 'Dummy'; public function A(arg1:String = NAME) {_name = arg1;} private var _name:String;}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @param {string=} arg1\n */\norg.apache.flex.A = function(arg1) {\n arg1 = typeof arg1 !== 'undefined' ? arg1 : org.apache.flex.A.NAME;\n this._name = arg1;\n};\n\n\n/**\n * @export\n * @const\n * @type {string}\n */\norg.apache.flex.A.NAME = 'Dummy';\n\n\n/**\n * @private\n * @type {string}\n */\norg.apache.flex.A.prototype._name;"); + assertOut("/**\n * @constructor\n * @param {string=} arg1\n */\norg.apache.flex.A = function(arg1) {\n arg1 = typeof arg1 !== 'undefined' ? arg1 : org.apache.flex.A.NAME;\n this._name = arg1;\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('org.apache.flex.A', org.apache.flex.A);\n\n\n/**\n * @export\n * @const\n * @type {string}\n */\norg.apache.flex.A.NAME = 'Dummy';\n\n\n/**\n * @private\n * @type {string}\n */\norg.apache.flex.A.prototype._name;"); } protected IBackend createBackend() http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java index 11d9402..88b5348 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java @@ -83,6 +83,12 @@ public class TestFlexJSEmitter extends TestGoogEmitter " }\n" + "};\n" + "goog.inherits(com.example.components.MyEventTarget, flash.events.EventDispatcher);\n" + + "\n" + + "\n" + + "/**\n" + + " * Prevent renaming of class. Needed for reflection.\n" + + " */\n" + + "goog.exportSymbol('com.example.components.MyEventTarget', com.example.components.MyEventTarget);\n" + "\n" + "\n" + "/**\n" + @@ -117,12 +123,6 @@ public class TestFlexJSEmitter extends TestGoogEmitter "com.example.components.MyEventTarget.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'MyEventTarget', qName: 'com.example.components.MyEventTarget', kind: 'class' }] };\n" + "\n" + "\n" + - "/**\n" + - " * Prevent renaming of class. Needed for reflection.\n" + - " */\n" + - "goog.exportSymbol('com.example.components.MyEventTarget', com.example.components.MyEventTarget);\n" + - "\n" + - "\n" + "\n" + "/**\n" + " * Reflection\n" + @@ -171,6 +171,12 @@ public class TestFlexJSEmitter extends TestGoogEmitter " * @interface\n" + " */\ncom.example.components.TestInterface = function() {\n" + "};\n" + + "\n" + + "\n" + + "/**\n" + + " * Prevent renaming of class. Needed for reflection.\n" + + " */\n" + + "goog.exportSymbol('com.example.components.TestInterface', com.example.components.TestInterface);\n" + "\n" + "\n" + "/**\n" + @@ -179,12 +185,6 @@ public class TestFlexJSEmitter extends TestGoogEmitter " * @type {Object.<string, Array.<Object>>}\n" + " */\n" + "com.example.components.TestInterface.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestInterface', qName: 'com.example.components.TestInterface', kind: 'interface' }] };\n" + - "\n" + - "\n" + - "/**\n" + - " * Prevent renaming of class. Needed for reflection.\n" + - " */\n" + - "goog.exportSymbol('com.example.components.TestInterface', com.example.components.TestInterface);\n" + "\n" + "\n" + "\n" + @@ -229,17 +229,17 @@ public class TestFlexJSEmitter extends TestGoogEmitter "\n" + "\n" + "/**\n" + - " * Metadata\n" + - " *\n" + - " * @type {Object.<string, Array.<Object>>}\n" + + " * Prevent renaming of class. Needed for reflection.\n" + " */\n" + - "com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" + + "goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" + "\n" + "\n" + "/**\n" + - " * Prevent renaming of class. Needed for reflection.\n" + + " * Metadata\n" + + " *\n" + + " * @type {Object.<string, Array.<Object>>}\n" + " */\n" + - "goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" + + "com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" + "\n" + "\n" + "\n" + @@ -293,17 +293,17 @@ public class TestFlexJSEmitter extends TestGoogEmitter "\n" + "\n" + "/**\n" + - " * Metadata\n" + - " *\n" + - " * @type {Object.<string, Array.<Object>>}\n" + + " * Prevent renaming of class. Needed for reflection.\n" + " */\n" + - "com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" + + "goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" + "\n" + "\n" + "/**\n" + - " * Prevent renaming of class. Needed for reflection.\n" + + " * Metadata\n" + + " *\n" + + " * @type {Object.<string, Array.<Object>>}\n" + " */\n" + - "goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" + + "com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" + "\n" + "\n" + "\n" + http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/caf79f2a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java index 6f8d28d..7c9fa2f 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java @@ -967,7 +967,7 @@ public class TestFlexJSExpressions extends TestGoogExpressions { IClassNode node = (IClassNode) getNode("import flash.display.IBitmapDrawable; public class B implements IBitmapDrawable { public function B() { IBitmapDrawable(b).type = ''; } }", ClassNode.class, WRAP_LEVEL_PACKAGE); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n * @implements {flash.display.IBitmapDrawable}\n */\nB = function() {\n org.apache.flex.utils.Language.as(b, flash.display.IBitmapDrawable, true).type = '';\n};"); + assertOut("/**\n * @constructor\n * @implements {flash.display.IBitmapDrawable}\n */\nB = function() {\n org.apache.flex.utils.Language.as(b, flash.display.IBitmapDrawable, true).type = '';\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n */\ngoog.exportSymbol('B', B);"); } @Test
