Added and updated VF2JS tests and test files Signed-off-by: Erik de Bruin <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/bd111dd4 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/bd111dd4 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/bd111dd4 Branch: refs/heads/develop Commit: bd111dd430283ef20c554c5ff35d7dffaf3d2d53 Parents: 2b12a20 Author: Erik de Bruin <[email protected]> Authored: Fri Oct 31 17:43:53 2014 +0100 Committer: Erik de Bruin <[email protected]> Committed: Fri Oct 31 17:44:04 2014 +0100 ---------------------------------------------------------------------- .../codegen/js/vf2js/TestVF2JSClass.java | 109 +++++++++++++++--- .../codegen/js/vf2js/TestVF2JSFile.java | 18 +++ .../codegen/js/vf2js/TestVF2JSProject.java | 15 +++ .../codegen/js/vf2js/TestVF2JSStatements.java | 11 +- .../mxml/vf2js/TestVF2JSMXMLApplication.java | 3 + .../test-files/vf2js/files/Version.as | 7 ++ .../projects/interfaces/classes/B_result.js | 3 +- .../projects/interfaces/classes/C_result.js | 3 +- .../vf2js/projects/sdk/SomeSDKClass.as | 68 +++++++++++ .../vf2js/projects/sdk/SomeSDKClass_result.js | 114 +++++++++++++++++++ .../vf2js/projects/sdk/bases/HelperBaseClass.as | 33 ++++++ .../sdk/bases/HelperBaseClass_result.js | 46 ++++++++ .../simpleMXML/src/SimpleMXML_Project_result.js | 2 +- .../test-files/vf2js/projects/super/Base.as | 8 ++ .../vf2js/projects/super/Base_result.js | 37 +++++- .../vf2js/projects/super/Super_result.js | 3 +- compiler.jx/downloads.xml | 16 +-- 17 files changed, 464 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSClass.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSClass.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSClass.java index 8998868..1e6b546 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSClass.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSClass.java @@ -33,6 +33,47 @@ public class TestVF2JSClass extends TestGoogClass @Override @Test + public void testSimple() + { + IClassNode node = getClassNode("public class A{}"); + asBlockWalker.visitClass(node); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};"); + } + + @Override + @Test + public void testSimpleInternal() + { + // (erikdebruin) the AS compiler will enforce 'internal' namespace, + // in JS we ignore it + IClassNode node = getClassNode("internal class A{}"); + asBlockWalker.visitClass(node); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};"); + } + + @Override + @Test + public void testSimpleFinal() + { + // (erikdebruin) the AS compiler will enforce the 'final' keyword, + // in JS we ignore it + IClassNode node = getClassNode("public final class A{}"); + asBlockWalker.visitClass(node); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};"); + } + + @Override + @Test + public void testSimpleDynamic() + { + // (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() {};"); + } + + @Override + @Test public void testConstructor_super() { IClassNode node = getClassNode("public class A {public function A() { super(); }}"); @@ -51,6 +92,24 @@ public class TestVF2JSClass extends TestGoogClass @Override @Test + public void testSimpleImplements() + { + 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() {};"); + } + + @Override + @Test + public void testSimpleImplementsMultiple() + { + IClassNode node = getClassNode("public class A implements IEventDispatcher, ILogger {public function A() {}}"); + asBlockWalker.visitClass(node); + assertOut("/**\n * @constructor\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {};"); + } + + @Override + @Test public void testSimpleExtendsImplements() { IClassNode node = getClassNode("public class A extends Button implements IEventDispatcher {public function A() {}}"); @@ -87,6 +146,15 @@ public class TestVF2JSClass extends TestGoogClass @Override @Test + public void testConstructor() + { + IClassNode node = getClassNode("public class A {public function A() { }}"); + asBlockWalker.visitClass(node); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};"); + } + + @Override + @Test public void testExtendsConstructor_super() { IClassNode node = getClassNode("public class A extends spark.components.Button { public function A() { super('foo', 42);}}"); @@ -94,6 +162,15 @@ public class TestVF2JSClass extends TestGoogClass assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.base(this, 'constructor', 'foo', 42);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);"); } + @Override + @Test + public void testConstructor_withArguments() + { + 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) {};"); + } + @Test public void testConstructor_withArgumentNameMatchingMemberName() { @@ -108,7 +185,7 @@ public class TestVF2JSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; public var button:Button = new Button(); public function foo():String {return button.label;};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @type {spark.components.Button}\n */\norg.apache.flex.B.prototype.button = new spark.components.Button();\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo = function() {\n return this.button.get_label();\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n this.button = new spark.components.Button();\n};\n\n\n/**\n * @type {spark.components.Button}\n */\norg.apache.flex.B.prototype.button;\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo = function() {\n return this.button.get_label();\n};"; assertOut(expected); } @@ -117,7 +194,7 @@ public class TestVF2JSClass 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 * @expose\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @expose\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; assertOut(expected); } @@ -126,7 +203,7 @@ public class TestVF2JSClass 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 * @expose\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 * @expose\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n};"; assertOut(expected); } @@ -135,7 +212,7 @@ public class TestVF2JSClass 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 * @expose\n * @param {Object} value\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 * @expose\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n baz = '';\n};"; assertOut(expected); } @@ -144,7 +221,7 @@ public class TestVF2JSClass 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 * @expose\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n org.apache.flex.B.base(this, 'foo');\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @expose\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n org.apache.flex.B.base(this, 'foo');\n};"; assertOut(expected); } @@ -153,7 +230,7 @@ public class TestVF2JSClass 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\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_baz = function(value) {\n};\n\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n this.set_baz(value);\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_baz = function(value) {\n};\n\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n this.set_baz(value);\n};"; assertOut(expected); } @@ -162,7 +239,7 @@ public class TestVF2JSClass extends TestGoogClass { IClassNode node = getClassNode("public class B {public function B() {}; override public function set foo(value:Object):void {super.foo = value;};}"); asBlockWalker.visitClass(node); - String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @expose\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n org.apache.flex.B.base(this, 'set_foo', value);\n};"; + String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @expose\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n org.apache.flex.B.base(this, 'set_foo', value);\n};"; assertOut(expected); } @@ -182,7 +259,7 @@ public class TestVF2JSClass 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 * @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;\n\n\n/**\n * @type {number}\n */\norg.apache.flex.A.prototype.d;\n\n\n/**\n * @type {number}\n */\norg.apache.flex.A.prototype.e;"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};\n\n\n/**\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;\n\n\n/**\n * @type {number}\n */\norg.apache.flex.A.prototype.d;\n\n\n/**\n * @type {number}\n */\norg.apache.flex.A.prototype.e;"); } @Test @@ -190,7 +267,7 @@ public class TestVF2JSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {[Embed(source=\"LuminosityMaskFilter.pbj\", mimeType=\"application/octet-stream\")]\nprivate static var ShaderClass:Class;}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.flex.A.ShaderClass;"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};\n\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.flex.A.ShaderClass;"); } @Test @@ -198,7 +275,7 @@ public class TestVF2JSClass extends TestGoogClass { IClassNode node = getClassNode("public class A {private var controlBarGroupProperties:Object = { visible: true }; private var _visible:Boolean; public function get visible():Boolean { return _visible; }; public function set visible(value:Boolean):void { _visible = value; };}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.flex.A.prototype.controlBarGroupProperties = {visible:true};\n\n\n/**\n * @private\n * @type {boolean}\n */\norg.apache.flex.A.prototype._visible;\n\n\n/**\n * @expose\n * @return {boolean}\n */\norg.apache.flex.A.prototype.get_visible = function() {\n return this._visible;\n};\n\n\n/**\n * @expose\n * @param {boolean} value\n */\norg.apache.flex.A.prototype.set_visible = function(value) {\n this._visible = value;\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};\n\n\n/**\n * @private\n * @type {Object}\n */\norg.apache.flex.A.prototype.controlBarGroupProperties = {visible:true};\n\n\n/**\n * @private\n * @type {boolean}\n */\norg.apache.flex.A.prototype._visible;\n\n\n/**\n * @expose\n * @return {boolean}\n */\norg.apache.flex.A.prototype.get_visible = function() {\n return this._visible;\n};\n\n\n/**\n * @expose\n * @param {boolean} value\n */\norg.apache.flex.A.prototype.set_visible = function(value) {\n this._visible = value;\n};"); } @Override @@ -211,7 +288,7 @@ public class TestVF2JSClass 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 * @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 * @const\n * @type {string}\n */\norg.apache.flex.A.C = 'me' + 'you';"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n org.apache.flex.A.C = 'me' + 'you';\n};\n\n\n/**\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 * @const\n * @type {string}\n */\norg.apache.flex.A.C;"); } @Override @@ -230,7 +307,7 @@ public class TestVF2JSClass extends TestGoogClass + "foo_bar function get foo6():Object{return null;}" + "foo_bar function set foo6(value:Object):void{}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo1 = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo1 = function(value) {\n};\n\n\n/**\n * @protected\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo2 = function() {\n return null;\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo3 = function() {\n return null;\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo3 = function(value) {\n};\n\n\n/**\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo5 = function() {\n return null;\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo5 = function(value) {\n};\n\n\n/**\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo6 = function() {\n return null;\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo6 = function(value) {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo1 = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo1 = function(value) {\n};\n\n\n/**\n * @protected\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo2 = function() {\n return null;\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo3 = function() {\n return null;\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo3 = function(value) {\n};\n\n\n/**\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo5 = function() {\n return null;\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo5 = function(value) {\ n};\n\n\n/**\n * @return {Object}\n */\norg.apache.flex.A.prototype.get_foo6 = function() {\n return null;\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.set_foo6 = function(value) {\n};"); } @Override @@ -248,7 +325,7 @@ public class TestVF2JSClass extends TestGoogClass + "public static function foo7(value:Object):void{}" + "foo_bar static function foo7(value:Object):void{}" + "}"); asBlockWalker.visitClass(node); - assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @return {Object}\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n return org.apache.flex.A.base(this, 'foo1b');\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.foo6 = function(value) {\n};\n\n\n/**\n * @expose\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.foo7 = function(value) {\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n return null;\n};\n\n\n/**\n * @expose\n * @return {Object}\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n return org.apache.flex.A.base(this, 'foo1b');\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.foo6 = function(value) {\n};\n\n\n/**\n * @expose\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.foo7 = function(value) {\n};"); } @Test @@ -259,7 +336,7 @@ public class TestVF2JSClass 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 * @expose\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n function bar1() {\n return null;\n };\n return goog.bind(bar1, this)();\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n function bar2(param1) {\n return null;\n };\n return goog.bind(bar2, this)('foo');\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n function bar1() {\n return null;\n };\n return goog.bind(bar1, this)();\n};\n\n\n/**\n * @expose\n * @return {Object}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n function bar2(param1) {\n return null;\n };\n return goog.bind(bar2, this)('foo');\n};"); } @Test @@ -271,7 +348,7 @@ public class TestVF2JSClass 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 * @type {string}\n */\norg.apache.flex.B.prototype.baz1;\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n function bar1() {\n return this.baz1;\n };\n return goog.bind(bar1, this)();\n};\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n function bar2(param1) {\n return param1 + this.baz1;\n };\n return goog.bind(bar2, this)('foo');\n};"); + assertOut("/**\n * @constructor\n */\norg.apache.flex.B = function() {};\n\n\n/**\n * @type {string}\n */\norg.apache.flex.B.prototype.baz1;\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo1 = function() {\n function bar1() {\n return this.baz1;\n };\n return goog.bind(bar1, this)();\n};\n\n\n/**\n * @expose\n * @return {string}\n */\norg.apache.flex.B.prototype.foo2 = function() {\n function bar2(param1) {\n return param1 + this.baz1;\n };\n return goog.bind(bar2, this)('foo');\n};"); } @Test @@ -291,7 +368,7 @@ public class TestVF2JSClass 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 * @expose\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 * @expose\n * @return {org.apache.flex.B}\n */\norg.apache.flex.B.prototype.clone = function() {\n return new org.apache.flex.B();\n};"); } protected IBackend createBackend() http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSFile.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSFile.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSFile.java index 66a591d..56bb290 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSFile.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSFile.java @@ -56,6 +56,24 @@ public class TestVF2JSFile extends VF2JSTestBase assertOut(getCodeFromFile(fileName + "_result", true, "vf2js" + File.separator + "files")); } + + @Test + public void testVersion() + { + String fileName = "Version"; + + IFileNode node = compileAS(fileName, true, + "test-files" + + File.separator + "vf2js" + File.separator + "files", + false); + + asBlockWalker.visitFile(node); + + //writeResultToFile(writer.toString(), fileName); + + assertOut(getCodeFromFile(fileName + "_result", true, + "vf2js" + File.separator + "files")); + } @Override protected void addSourcePaths(List<File> sourcePaths) http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSProject.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSProject.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSProject.java index 06984bd..5160272 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSProject.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSProject.java @@ -69,6 +69,18 @@ public class TestVF2JSProject extends TestGoogProject } @Test + public void test_SDKTricks() + { + String testDirPath = projectDirPath + "/sdk"; + + String fileName = "SomeSDKClass"; + + List<String> compiledFileNames = compileProject(fileName, testDirPath); + + assertProjectOut(compiledFileNames, testDirPath); + } + + @Test public void test_Super() { String testDirPath = projectDirPath + "/super"; @@ -87,6 +99,9 @@ public class TestVF2JSProject extends TestGoogProject + File.separator + projectDirPath + "/interfaces"))); sourcePaths.add(new File(FilenameNormalization.normalize("test-files" + + File.separator + projectDirPath + "/sdk"))); + + sourcePaths.add(new File(FilenameNormalization.normalize("test-files" + File.separator + projectDirPath + "/super"))); super.addSourcePaths(sourcePaths); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSStatements.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSStatements.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSStatements.java index 648666f..061be59 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSStatements.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/vf2js/TestVF2JSStatements.java @@ -135,6 +135,15 @@ public class TestVF2JSStatements extends TestGoogStatements asBlockWalker.visitForLoop(node); assertOut("for (var /** @type {number} */ i = 0; i < len; i++)\n break;"); } + + @Test + public void testVisitFor_1c() + { + IForLoopNode node = (IForLoopNode) getNode( + "for (var i:int = 0, j:int = 3; i < j; i++) break;", IForLoopNode.class); + asBlockWalker.visitForLoop(node); + assertOut("for (var /** @type {number} */ i = 0, /** @type {number} */ j = 3; i < j; i++)\n break;"); + } @Override @Test @@ -516,7 +525,7 @@ public class TestVF2JSStatements extends TestGoogStatements + "foo: for each(var i:int in obj) break foo;", IFileNode.class); asBlockWalker.visitFile(node); - assertOut("/**\n * FalconTest_A\n *\n * @fileoverview\n *\n * @suppress {checkTypes}\n */\n\ngoog.provide('FalconTest_A');\n\n\n\n/**\n * @constructor\n */\nFalconTest_A = function() {\n};\n\n\nFalconTest_A.prototype.falconTest_a = function() {\n try {\n a;\n } catch (e) {\n if (a) {\n if (b) {\n if (c)\n b;\n else if (f)\n a;\n else\n e;\n }\n }\n } finally {\n }\n if (d)\n for (var /** @type {number} */ i = 0; i < len; i++)\n break;\n if (a) {\n with (ab) {\n c();\n }\n do {\n a++;\n do\n a++;\n while (a > b);\n } while (c > d);\n }\n if (b) {\n try {\n a;\n throw new Error('foo');\n } catch (e) {\n switch (i) {\n case 1:\n break;\n default:\n return;\n }\n } finally {\n d;\n var /** @type {Object} */ a = function(foo, bar) {\n bar = typeof bar !== 'undefined' ? bar : 'goo';\n return -1;\n };\n eee.dd;\n eee.dd;\n eee.dd;\n eee.dd;\n }\n }\n foo : for (var foreachiter0 in obj) \n {\n var i = obj[foreachiter0];\n \n break foo;}\n ;\n};\n\n\n/**\n * Metadata\n *\n * @type {Object.<string, Array.<Object>>}\n */\nFalconTest_A.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'FalconTest_A', qName: 'FalconTest_A'}] };\n"); + assertOut("/**\n * FalconTest_A\n *\n * @fileoverview\n *\n * @suppress {checkTypes}\n */\n\ngoog.provide('FalconTest_A');\n\n\n\n/**\n * @constructor\n */\nFalconTest_A = function() {};\n\n\nFalconTest_A.prototype.falconTest_a = function() {\n try {\n a;\n } catch (e) {\n if (a) {\n if (b) {\n if (c)\n b;\n else if (f)\n a;\n else\n e;\n }\n }\n } finally {\n }\n if (d)\n for (var /** @type {number} */ i = 0; i < len; i++)\n break;\n if (a) {\n with (ab) {\n c();\n }\n do {\n a++;\n do\n a++;\n while (a > b);\n } while (c > d);\n }\n if (b) {\n try {\n a;\n throw new Error('foo');\n } catch (e) {\n switch (i) {\n case 1:\n break;\n default:\n return;\n }\n } finally {\n d;\n var /** @type {Object} */ a = function(foo, bar) {\n bar = typeof bar !== 'undefined' ? bar : 'goo';\n return -1;\n };\n eee.dd;\n eee.dd;\n eee.dd;\n eee.dd;\n }\n }\n foo : for (var foreachiter0 in obj) \n {\n var i = obj[foreachiter0];\n \n break foo;}\n ;\n};\n\n\n/**\n * Metadata\n *\n * @type {Object.<string, Array.<Object>>}\n */\nFalconTest_A.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'FalconTest_A', qName: 'FalconTest_A'}] };\n"); } @Override http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/TestVF2JSMXMLApplication.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/TestVF2JSMXMLApplication.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/TestVF2JSMXMLApplication.java index 376e95d..4aa4856 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/TestVF2JSMXMLApplication.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/vf2js/TestVF2JSMXMLApplication.java @@ -66,6 +66,9 @@ public class TestVF2JSMXMLApplication extends VF2JSMXMLTestBase List<String> compiledFileNames = compileProject(fileName, testDirPath); + // ToDo (erikdebruin): MXML property initialized with a FunctionCall + // are not included in the output (the assignment + // should be handled in the constructor, like in AS assertProjectOut(compiledFileNames, testDirPath); } http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/files/Version.as ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/files/Version.as b/compiler.jx.tests/test-files/vf2js/files/Version.as new file mode 100644 index 0000000..322d76b --- /dev/null +++ b/compiler.jx.tests/test-files/vf2js/files/Version.as @@ -0,0 +1,7 @@ +import mx.core.mx_internal; + +/** + * @private + * Version string for this class. + */ +mx_internal static const VERSION:String = "4.14.0.0"; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/B_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/B_result.js b/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/B_result.js index 2fef89c..d8e3b89 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/B_result.js +++ b/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/B_result.js @@ -26,8 +26,7 @@ goog.provide('classes.B'); /** * @constructor */ -classes.B = function() { -}; +classes.B = function() {}; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/C_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/C_result.js b/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/C_result.js index 729cda3..c3b72f4 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/C_result.js +++ b/compiler.jx.tests/test-files/vf2js/projects/interfaces/classes/C_result.js @@ -26,8 +26,7 @@ goog.provide('classes.C'); /** * @constructor */ -classes.C = function() { -}; +classes.C = function() {}; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass.as ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass.as b/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass.as new file mode 100644 index 0000000..52541c2 --- /dev/null +++ b/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass.as @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// +package +{ + +import mx.core.mx_internal; + +import bases.HelperBaseClass; + +use namespace mx_internal; + +public class SomeSDKClass +{ + public function SomeSDKClass() {}; + + private var number:Number = 'Got it: ' + this.getString(); + + public function getString():String + { + return Helper.helperFunction(); + } + + public function someFunction():String + { + helperBaseClass.doSomething(); + } + + mx_internal var helperBaseClass:HelperBaseClass = new HelperBaseClass(); +} + +} + +import bases.HelperBaseClass; + +class Helper extends HelperBaseClass +{ + + public static function helperFunction():String { + return "Hello world"; + } + + public function Helper(url:String) { + url_ = url; + } + + private var url_:String; + + public function get url():String { + return url_; + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass_result.js b/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass_result.js new file mode 100644 index 0000000..a622dc1 --- /dev/null +++ b/compiler.jx.tests/test-files/vf2js/projects/sdk/SomeSDKClass_result.js @@ -0,0 +1,114 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * SomeSDKClass + * + * @fileoverview + * + * @suppress {checkTypes} + */ + +goog.provide('SomeSDKClass'); + +goog.require('mx.core.mx_internal'); +goog.require('bases.HelperBaseClass'); +goog.require('org.apache.flex.utils.Language'); + + + +/** + * @constructor + */ +SomeSDKClass = function() { + this.number = 'Got it: ' + this.getString(); + + this.helperBaseClass = new bases.HelperBaseClass(); +}; + + +/** + * @private + * @type {number} + */ +SomeSDKClass.prototype.number; + + +/** + * @expose + * @return {string} + */ +SomeSDKClass.prototype.getString = function() { + return Helper.helperFunction(); +}; + + +/** + * @expose + * @return {string} + */ +SomeSDKClass.prototype.someFunction = function() { + this.helperBaseClass.doSomething(); +}; + + +/** + * @type {bases.HelperBaseClass} + */ +SomeSDKClass.prototype.helperBaseClass; + + +/** + * Metadata + * + * @type {Object.<string, Array.<Object>>} + */ +SomeSDKClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'SomeSDKClass', qName: 'SomeSDKClass'}] }; + + + +/** + * @constructor + * @extends {bases.HelperBaseClass} + * @param {string} url + */ +Helper = function(url) { + Helper.base(this, 'constructor', url); + this.url_ = url; +}; +goog.inherits(Helper, bases.HelperBaseClass); + + +/** + * @expose + * @return {string} + */ +Helper.helperFunction = function() { + return "Hello world"; +}; + + +/** + * @private + * @type {string} + */ +Helper.prototype.url_; + + +/** + * @expose + * @return {string} + */ +Helper.prototype.get_url = function() { + return this.url_; +}; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass.as ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass.as b/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass.as new file mode 100644 index 0000000..487990a --- /dev/null +++ b/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass.as @@ -0,0 +1,33 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// +package bases +{ + +public class HelperBaseClass +{ + + public function HelperBaseClass() {}; + + public function doSomething():String { + return 'doneSomething'; + } + +} + +} http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass_result.js b/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass_result.js new file mode 100644 index 0000000..9d18b3d --- /dev/null +++ b/compiler.jx.tests/test-files/vf2js/projects/sdk/bases/HelperBaseClass_result.js @@ -0,0 +1,46 @@ +/** + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * bases.HelperBaseClass + * + * @fileoverview + * + * @suppress {checkTypes} + */ + +goog.provide('bases.HelperBaseClass'); + + + +/** + * @constructor + */ +bases.HelperBaseClass = function() {}; + + +/** + * @expose + * @return {string} + */ +bases.HelperBaseClass.prototype.doSomething = function() { + return 'doneSomething'; +}; + + +/** + * Metadata + * + * @type {Object.<string, Array.<Object>>} + */ +bases.HelperBaseClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'HelperBaseClass', qName: 'bases.HelperBaseClass'}] }; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/simpleMXML/src/SimpleMXML_Project_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/simpleMXML/src/SimpleMXML_Project_result.js b/compiler.jx.tests/test-files/vf2js/projects/simpleMXML/src/SimpleMXML_Project_result.js index aaad9b6..2ad1ea6 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/simpleMXML/src/SimpleMXML_Project_result.js +++ b/compiler.jx.tests/test-files/vf2js/projects/simpleMXML/src/SimpleMXML_Project_result.js @@ -50,7 +50,7 @@ SimpleMXML_Project.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'SimpleMXML_P * @private * @type {example.Component} */ -SimpleMXML_Project.prototype.myComponent = new example.Component(); +SimpleMXML_Project.prototype.myComponent; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/super/Base.as ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/super/Base.as b/compiler.jx.tests/test-files/vf2js/projects/super/Base.as index 8dccc35..3cc5462 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/super/Base.as +++ b/compiler.jx.tests/test-files/vf2js/projects/super/Base.as @@ -22,11 +22,19 @@ package public class Base extends Super { + public static var myClassConst:String = new Number(); + public function Base() { super(); }; + private var number:Number = this.getNumber(); + + private var newText:String = this.text; + + private var newTextAgain:String = text; + override public function get text():String { return "A" + super.text; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/super/Base_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/super/Base_result.js b/compiler.jx.tests/test-files/vf2js/projects/super/Base_result.js index cd666d4..b5063c6 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/super/Base_result.js +++ b/compiler.jx.tests/test-files/vf2js/projects/super/Base_result.js @@ -31,12 +31,47 @@ goog.require('org.apache.flex.utils.Language'); * @extends {Super} */ Base = function() { + + Base.myClassConst = new Number(); + + this.number = this.getNumber(); + + this.newText = this.get_text(); + + this.newTextAgain = this.get_text(); Base.base(this, 'constructor'); }; goog.inherits(Base, Super); /** + * @type {string} + */ +Base.myClassConst; + + +/** + * @private + * @type {number} + */ +Base.prototype.number; + + +/** + * @private + * @type {string} + */ +Base.prototype.newText; + + +/** + * @private + * @type {string} + */ +Base.prototype.newTextAgain; + + +/** * @expose * @return {string} * @override @@ -71,4 +106,4 @@ Base.prototype.getNumber = function() { * * @type {Object.<string, Array.<Object>>} */ -Base.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Base', qName: 'Base'}] }; +Base.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Base', qName: 'Base'}] }; \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx.tests/test-files/vf2js/projects/super/Super_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/vf2js/projects/super/Super_result.js b/compiler.jx.tests/test-files/vf2js/projects/super/Super_result.js index 9082c3e..f4fdb42 100644 --- a/compiler.jx.tests/test-files/vf2js/projects/super/Super_result.js +++ b/compiler.jx.tests/test-files/vf2js/projects/super/Super_result.js @@ -26,8 +26,7 @@ goog.provide('Super'); /** * @constructor */ -Super = function() { -}; +Super = function() {}; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/bd111dd4/compiler.jx/downloads.xml ---------------------------------------------------------------------- diff --git a/compiler.jx/downloads.xml b/compiler.jx/downloads.xml index f6f9150..2a57a71 100644 --- a/compiler.jx/downloads.xml +++ b/compiler.jx/downloads.xml @@ -81,16 +81,18 @@ <!-- closure --> <property name="closure.name" value="compiler"/> - <property name="closure.version" value="20140625"/> + <property name="closure.version" value="20141023"/> + <!-- property name="closure.version" value="20140625"/ --> <!-- property name="closure.version" value="20140508"/ --> <property name="closure.dest.folder" value="google/closure-compiler"/> <property name="closure.dest.filename" value="${closure.name}.jar"/> <antcall target="download-dependency-closure"> <param name="name" value="${closure.name}"/> - <param name="src.server" value="https://github.com"/> - <param name="src.folder" value="google/closure-compiler/archive"/> - <param name="src.filename" value="v${closure.version}.zip"/> - <param name="src.checksum" value="2cc65539b3ccaa1cf6f08c81fb7cdef3"/> + <param name="src.server" value="http://dl.google.com"/> + <param name="src.folder" value="closure-compiler"/> + <param name="src.filename" value="compiler-${closure.version}.zip"/> + <param name="src.checksum" value="91a73299a09ba5087c3bc5af5891219f"/> + <!-- param name="src.checksum" value="2cc65539b3ccaa1cf6f08c81fb7cdef3"/ --><!-- 20140625 --> <!-- param name="src.checksum" value="b4e4e20f32730b2aeb220e306f605236"/ --><!-- v20140508 --> <param name="dest.folder" value="${closure.dest.folder}"/> <param name="dest.filename" value="${closure.dest.filename}"/> @@ -216,9 +218,9 @@ <param name="checksum" value="${src.checksum}"/> </antcall> - <ant dir="${download.dir}/temp/closure-compiler-${closure.version}" inheritAll="false" /> + <!-- ant dir="${download.dir}/temp/closure-compiler-${closure.version}" inheritAll="false" / --> - <copy file="${download.dir}/temp/closure-${closure.name}-${closure.version}/build/${closure.name}.jar" toFile="${lib.dir}/${closure.dest.folder}/${closure.dest.filename}" verbose="true"/> + <copy file="${download.dir}/temp/${closure.name}.jar" toFile="${lib.dir}/${closure.dest.folder}/${closure.dest.filename}" verbose="true"/> </target> <target name="download-dependency-jar" if="project.download.jar" description="Downloads a jar to the lib directory.">
