You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2013/11/12 12:05:16 UTC

[3/4] git commit: [flex-falcon] [refs/heads/develop] - Some more 'corrections' for whitespace emission.

Some more 'corrections' for whitespace emission.

Signed-off-by: Erik de Bruin <er...@ixsoftware.nl>


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/daa6e771
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/daa6e771
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/daa6e771

Branch: refs/heads/develop
Commit: daa6e7710a6a6cc0f35bc1552e6fae617ace0c2e
Parents: c4bdbf5
Author: Erik de Bruin <er...@ixsoftware.nl>
Authored: Tue Nov 12 12:03:40 2013 +0100
Committer: Erik de Bruin <er...@ixsoftware.nl>
Committed: Tue Nov 12 12:03:40 2013 +0100

----------------------------------------------------------------------
 .../codegen/js/flexjs/TestFlexJSClass.java      | 24 +++---
 .../codegen/js/flexjs/TestFlexJSEmiter.java     |  2 +-
 .../flexjs/files/MyInitialView_result.js        | 31 ++++++++
 .../flexjs/files/models/MyModel_result.js       |  2 +-
 .../flexjs/files/wildcard_import_result.js      |  3 +
 .../codegen/js/flexjs/JSFlexJSEmitter.java      | 81 ++++++++++++++++++++
 .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java  |  7 ++
 7 files changed, 136 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
index 49ce793..4a45d10 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
@@ -46,7 +46,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends Button {public function A() {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override
@@ -55,7 +55,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends Button implements IEventDispatcher {public function A() {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override
@@ -64,7 +64,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends Button implements IEventDispatcher, ILogger {public function A() {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override
@@ -73,7 +73,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public final class A extends Button implements IEventDispatcher, ILogger {public function A() {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override
@@ -82,7 +82,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends spark.components.Button implements flash.events.IEventDispatcher, mx.logging.ILogger {public function A() {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @implements {flash.events.IEventDispatcher}\n * @implements {mx.logging.ILogger}\n */\norg.apache.flex.A = function() {\n  goog.base(this);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override
@@ -91,7 +91,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends spark.components.Button { public function A() { super('foo', 42);}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n */\norg.apache.flex.A = function() {\n  goog.base(this, 'foo', 42);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n */\norg.apache.flex.A = function() {\n  goog.base(this, 'foo', 42);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Test
@@ -126,7 +126,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class B {public function B() {}; override public function foo():void {};}");
         asBlockWalker.visitClass(node);
-        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n/**\n * @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/**\n * @expose\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n};";
         assertOut(expected);
     }
 
@@ -135,7 +135,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class B {public function B() {}; override public function foo(value:Object):void {baz = ''};}");
         asBlockWalker.visitClass(node);
-        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n/**\n * @expose\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n\tbaz = '';\n};";
+        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};";
         assertOut(expected);
     }
 
@@ -144,7 +144,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class B {public function B() {}; override public function foo():void {super.foo();};}");
         asBlockWalker.visitClass(node);
-        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n/**\n * @expose\n * @override\n */\norg.apache.flex.B.prototype.foo = function() {\n\tgoog.base(this, 'foo');\n};";
+        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  goog.base(this, 'foo');\n};";
         assertOut(expected);
     }
 
@@ -153,7 +153,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class B {public function B() {}; public function set baz(value:Object):void {}; public function set foo(value:Object):void {baz = value;};}");
         asBlockWalker.visitClass(node);
-        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_baz = function(value) {\n};\n\n/**\n * @expose\n * @param {Object} value\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n\tthis.set_baz(value);\n};";
+        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};";
         assertOut(expected);
     }
 
@@ -162,7 +162,7 @@ public class TestFlexJSClass 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 * @expose\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.set_foo = function(value) {\n\tgoog.base(this, 'set_foo', value);\n};";
+        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  goog.base(this, 'set_foo', value);\n};";
         assertOut(expected);
     }
 
@@ -172,7 +172,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class A extends spark.components.Button {public function A(arg1:String, arg2:int) {}}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n  goog.base(this, arg1, arg2);\n}\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
+        assertOut("/**\n * @constructor\n * @extends {spark.components.Button}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n  goog.base(this, arg1, arg2);\n};\ngoog.inherits(org.apache.flex.A, spark.components.Button);");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
index 5ede669..c2fa6c9 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmiter.java
@@ -54,7 +54,7 @@ public class TestFlexJSEmiter extends TestGoogEmiter
                 + "return \"Don't \" + _privateVar + value; }";
         IFileNode node = compileAS(code);
         asBlockWalker.visitFile(node);
-        assertOut("goog.provide('com.example.components.MyTextButton');\n\n\n\n/**\n * @constructor\n * @extends {spark.components.Button}\n */\ncom.example.components.MyTextButton = function() {\n  goog.base(this);\n  if (foo() != 42) {\n    bar();\n  }\n}\ngoog.inherits(com.example.components.MyTextButton, spark.components.Button);\n\n\n/**\n * @private\n * @type {string}\n */\ncom.example.components.MyTextButton.prototype._privateVar = \"do \";\n\n\n/**\n * @type {number}\n */\ncom.example.components.MyTextButton.prototype.publicProperty = 100;\n\n\n/**\n * @expose\n * @param {string} value\n * @return {string}\n */\ncom.example.components.MyTextButton.prototype.myFunction = function(value) {\n  return \"Don't \" + this._privateVar + value;\n};");
+        assertOut("goog.provide('com.example.components.MyTextButton');\n\n\n\n/**\n * @constructor\n * @extends {spark.components.Button}\n */\ncom.example.components.MyTextButton = function() {\n  goog.base(this);\n  if (foo() != 42) {\n    bar();\n  }\n};\ngoog.inherits(com.example.components.MyTextButton, spark.components.Button);\n\n\n/**\n * @private\n * @type {string}\n */\ncom.example.components.MyTextButton.prototype._privateVar = \"do \";\n\n\n/**\n * @type {number}\n */\ncom.example.components.MyTextButton.prototype.publicProperty = 100;\n\n\n/**\n * @expose\n * @param {string} value\n * @return {string}\n */\ncom.example.components.MyTextButton.prototype.myFunction = function(value) {\n  return \"Don't \" + this._privateVar + value;\n};");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
index 5ef10ba..0f29b72 100644
--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
@@ -16,6 +16,8 @@ goog.require('org.apache.flex.events.CustomEvent');
 goog.require('org.apache.flex.events.Event');
 goog.require('org.apache.flex.utils.Timer');
 
+
+
 /**
  * @constructor
  * @extends {org.apache.flex.core.ViewBase}
@@ -175,12 +177,14 @@ MyInitialView = function() {
 };
 goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
 
+
 /**
  * @private
  * @type {org.apache.flex.utils.org.apache.flex.utils.Timer}
  */
 MyInitialView.prototype.timer;
 
+
 /**
  * @expose
  * @return {string}
@@ -189,6 +193,7 @@ MyInitialView.prototype.get_symbol = function() {
   return org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(), String);
 };
 
+
 /**
  * @expose
  * @return {string}
@@ -197,6 +202,7 @@ MyInitialView.prototype.get_city = function() {
   return org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(), String);
 };
 
+
 /**
  * @expose
  * @return {string}
@@ -205,6 +211,7 @@ MyInitialView.prototype.get_inputText = function() {
   return this.get_input().get_text();
 };
 
+
 /**
  * @expose
  * @return {string}
@@ -213,6 +220,7 @@ MyInitialView.prototype.get_comboBoxValue = function() {
   return String(this.get_comboBox().get_selectedItem());
 };
 
+
 /**
  * @expose
  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
@@ -223,6 +231,7 @@ MyInitialView.prototype.startTimer = function(event) {
   this.timer.start();
 };
 
+
 /**
  * @expose
  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
@@ -231,6 +240,7 @@ MyInitialView.prototype.timerHandler = function(event) {
   this.get_timerLabel().set_text(this.timer.get_currentCount().toString());
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -241,6 +251,7 @@ MyInitialView.prototype.$EH0 = function(event)
   this.startTimer(event);
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -252,6 +263,7 @@ MyInitialView.prototype.$EH1 = function(event)
   this.timer.stop();
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -262,6 +274,7 @@ MyInitialView.prototype.$EH2 = function(event)
   this.dispatchEvent(new org.apache.flex.events.CustomEvent('cityListChanged'));
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -272,6 +285,7 @@ MyInitialView.prototype.$EH3 = function(event)
   this.dispatchEvent(new org.apache.flex.events.CustomEvent('transferClicked'));
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -282,6 +296,7 @@ MyInitialView.prototype.$EH4 = function(event)
   this.dispatchEvent(new org.apache.flex.events.CustomEvent('listChanged'));
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -292,6 +307,7 @@ MyInitialView.prototype.$EH5 = function(event)
   this.dispatchEvent(new org.apache.flex.events.CustomEvent('buttonClicked'));
 };
 
+
 /**
  * @this {MyInitialView}
  * @expose
@@ -302,6 +318,7 @@ MyInitialView.prototype.$EH6 = function(event)
   this.dispatchEvent(new org.apache.flex.events.CustomEvent('comboBoxChanged'));
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -312,6 +329,7 @@ MyInitialView.prototype.get_lbl = function()
   return this.lbl;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -323,6 +341,7 @@ MyInitialView.prototype.set_lbl = function(value)
     this.lbl = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -333,6 +352,7 @@ MyInitialView.prototype.get_timerLabel = function()
   return this.timerLabel;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -344,6 +364,7 @@ MyInitialView.prototype.set_timerLabel = function(value)
     this.timerLabel = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -354,6 +375,7 @@ MyInitialView.prototype.get_cityList = function()
   return this.cityList;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -365,6 +387,7 @@ MyInitialView.prototype.set_cityList = function(value)
     this.cityList = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -375,6 +398,7 @@ MyInitialView.prototype.get_input = function()
   return this.input;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -386,6 +410,7 @@ MyInitialView.prototype.set_input = function(value)
     this.input = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -396,6 +421,7 @@ MyInitialView.prototype.get_checkbox = function()
   return this.checkbox;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -407,6 +433,7 @@ MyInitialView.prototype.set_checkbox = function(value)
     this.checkbox = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -417,6 +444,7 @@ MyInitialView.prototype.get_list = function()
   return this.list;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -428,6 +456,7 @@ MyInitialView.prototype.set_list = function(value)
     this.list = value;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -438,6 +467,7 @@ MyInitialView.prototype.get_comboBox = function()
   return this.comboBox;
 };
 
+
 /**
  * @expose
  * @this {MyInitialView}
@@ -449,6 +479,7 @@ MyInitialView.prototype.set_comboBox = function(value)
     this.comboBox = value;
 };
 
+
 /**
  * @override
  * @this {MyInitialView}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx.tests/test-files/flexjs/files/models/MyModel_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/files/models/MyModel_result.js b/compiler.jx.tests/test-files/flexjs/files/models/MyModel_result.js
index eb9c7a2..c87ffe9 100644
--- a/compiler.jx.tests/test-files/flexjs/files/models/MyModel_result.js
+++ b/compiler.jx.tests/test-files/flexjs/files/models/MyModel_result.js
@@ -8,7 +8,7 @@ goog.provide('models.MyModel');
  */
 models.MyModel = function() {
   goog.base(this);
-}
+};
 goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
 
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx.tests/test-files/flexjs/files/wildcard_import_result.js
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/test-files/flexjs/files/wildcard_import_result.js b/compiler.jx.tests/test-files/flexjs/files/wildcard_import_result.js
index 3edfc62..f9900ab 100644
--- a/compiler.jx.tests/test-files/flexjs/files/wildcard_import_result.js
+++ b/compiler.jx.tests/test-files/flexjs/files/wildcard_import_result.js
@@ -34,3 +34,6 @@ wildcard_import.prototype.tmp = function() {
   var /** @type {Button} */ myButton;
   myButton = new org.apache.flex.html.staticControls.Button();
 };
+
+
+

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index e8a2e62..f90c2b9 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -60,6 +60,7 @@ import org.apache.flex.compiler.internal.tree.as.FunctionCallNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionNode;
 import org.apache.flex.compiler.internal.tree.as.ParameterNode;
 import org.apache.flex.compiler.internal.tree.as.RegExpLiteralNode;
+import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.projects.ICompilerProject;
 import org.apache.flex.compiler.scopes.IASScope;
 import org.apache.flex.compiler.tree.ASTNodeID;
@@ -312,6 +313,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
     }
 
     @Override
+    public void emitMethod(IFunctionNode node)
+    {
+        FunctionNode fn = (FunctionNode) node;
+        fn.parseFunctionBody(new ArrayList<ICompilerProblem>());
+
+        ICompilerProject project = getWalker().getProject();
+
+        getDoc().emitMethodDoc(node, project);
+
+        boolean isConstructor = node.isConstructor();
+
+        String qname = getTypeDefinition(node).getQualifiedName();
+        if (qname != null && !qname.equals(""))
+        {
+            write(qname);
+            if (!isConstructor)
+            {
+                write(ASEmitterTokens.MEMBER_ACCESS);
+                if (!fn.hasModifier(ASModifier.STATIC))
+                {
+                    write(JSEmitterTokens.PROTOTYPE);
+                    write(ASEmitterTokens.MEMBER_ACCESS);
+                }
+            }
+        }
+
+        if (!isConstructor)
+            emitMemberName(node);
+
+        write(ASEmitterTokens.SPACE);
+        writeToken(ASEmitterTokens.EQUAL);
+        write(ASEmitterTokens.FUNCTION);
+
+        emitParameters(node.getParameterNodes());
+
+        boolean hasSuperClass = hasSuperClass(node);
+
+        if (isConstructor && node.getScopedNode().getChildCount() == 0)
+        {
+            write(ASEmitterTokens.SPACE);
+            write(ASEmitterTokens.BLOCK_OPEN);
+            if (hasSuperClass)
+                emitSuperCall(node, CONSTRUCTOR_EMPTY);
+            writeNewline();
+            write(ASEmitterTokens.BLOCK_CLOSE);
+        }
+
+        if (!isConstructor || node.getScopedNode().getChildCount() > 0)
+            emitMethodScope(node.getScopedNode());
+
+        if (isConstructor && hasSuperClass)
+        {
+            writeNewline(ASEmitterTokens.SEMICOLON);
+            write(JSGoogEmitterTokens.GOOG_INHERITS);
+            write(ASEmitterTokens.PAREN_OPEN);
+            write(qname);
+            writeToken(ASEmitterTokens.COMMA);
+            String sname = getSuperClassDefinition(node, project)
+                    .getQualifiedName();
+            write(sname);
+            write(ASEmitterTokens.PAREN_CLOSE);
+        }
+    }
+
+    @Override
     public void emitFunctionCall(IFunctionCallNode node)
     {
         IASNode cnode = node.getChild(0);
@@ -963,6 +1029,21 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
         getWalker().walk(node.getRightOperandNode());
     }
 
+    private static ITypeDefinition getTypeDefinition(IDefinitionNode node)
+    {
+        ITypeNode tnode = (ITypeNode) node.getAncestorOfType(ITypeNode.class);
+        return (ITypeDefinition) tnode.getDefinition();
+    }
+
+    private static IClassDefinition getSuperClassDefinition(
+            IDefinitionNode node, ICompilerProject project)
+    {
+        IClassDefinition parent = (IClassDefinition) node.getDefinition()
+                .getParent();
+        IClassDefinition superClass = parent.resolveBaseClass(project);
+        return superClass;
+    }
+
     @Override
     protected void emitObjectDefineProperty(IAccessorNode node)
     {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daa6e771/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
index cd7aad7..d05067e 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
@@ -222,6 +222,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
         write(ASEmitterTokens.PAREN_CLOSE);
         writeNewline(ASEmitterTokens.SEMICOLON);
         writeNewline();
+        writeNewline();
     }
 
     //--------------------------------------------------------------------------
@@ -543,7 +544,9 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
             String output = script.output();
 
             if (!output.equals(""))
+            {
                 writeNewline(output);
+            }
         }
     }
 
@@ -568,6 +571,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
             write(ASEmitterTokens.BLOCK_CLOSE);
             writeNewline(";");
             writeNewline();
+            writeNewline();
         }
     }
 
@@ -593,6 +597,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
                 writeNewline("return this." + instance.id + ";");
                 writeNewline("};");
                 writeNewline();
+                writeNewline();
                 writeNewline("/**");
                 writeNewline(" * @expose");
                 writeNewline(" * @this {" + cname + "}");
@@ -610,6 +615,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
                 writeNewline("this." + instance.id + " = value;");
                 writeNewline("};");
                 writeNewline();
+                writeNewline();
             }
         }
     }
@@ -1255,6 +1261,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
                         indentPop();
 
                     sb.append(nl);
+                    sb.append(nl);
 
                     scriptSpecifier.fragment = sb.toString();