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.">

Reply via email to