You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Alex Harui <ah...@adobe.com> on 2013/11/12 20:07:54 UTC

Re: [1/4] Initial commit of 'correct' whitespace emission.

I'm getting one failure in compiler.jx.tests in
org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLApplica
tion


Is it passing for others?

-Alex

On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
wrote:

>Updated Branches:
>  refs/heads/develop 026a53c72 -> dc0c5fe49
>
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 2bebadd..5ef10ba 100644
>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>  * @extends {org.apache.flex.core.ViewBase}
>  */
> MyInitialView = function() {
>-      goog.base(this);
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.Label}
>-       */
>-      this.lbl;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.binding.SimpleBinding}
>-       */
>-      this.$ID0;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextButton}
>-       */
>-      this.$ID1;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextButton}
>-       */
>-      this.$ID2;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.Label}
>-       */
>-      this.timerLabel;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.List}
>-       */
>-      this.cityList;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.binding.ConstantBinding}
>-       */
>-      this.$ID3;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextArea}
>-       */
>-      this.$ID5;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.binding.SimpleBinding}
>-       */
>-      this.$ID4;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextInput}
>-       */
>-      this.input;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextButton}
>-       */
>-      this.$ID6;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>-       */
>-      this.checkbox;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID7;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID8;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID9;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID10;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID11;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>-       */
>-      this.$ID12;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>-       */
>-      this.list;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.binding.ConstantBinding}
>-       */
>-      this.$ID13;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.TextButton}
>-       */
>-      this.$ID14;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>-       */
>-      this.comboBox;
>-
>-      /**
>-       * @private
>-       * @type {org.apache.flex.binding.ConstantBinding}
>-       */
>-      this.$ID15;
>-
>-      /**
>-       * @private
>-       * @type {Array}
>-       */
>-      this.mxmldd;
>-
>-      /**
>-       * @private
>-       * @type {Array}
>-       */
>-      this.mxmldp;
>+  goog.base(this);
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.Label}
>+   */
>+  this.lbl;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.binding.SimpleBinding}
>+   */
>+  this.$ID0;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextButton}
>+   */
>+  this.$ID1;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextButton}
>+   */
>+  this.$ID2;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.Label}
>+   */
>+  this.timerLabel;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.List}
>+   */
>+  this.cityList;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.binding.ConstantBinding}
>+   */
>+  this.$ID3;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextArea}
>+   */
>+  this.$ID5;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.binding.SimpleBinding}
>+   */
>+  this.$ID4;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextInput}
>+   */
>+  this.input;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextButton}
>+   */
>+  this.$ID6;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>+   */
>+  this.checkbox;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID7;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID8;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID9;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID10;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID11;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>+   */
>+  this.$ID12;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>+   */
>+  this.list;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.binding.ConstantBinding}
>+   */
>+  this.$ID13;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.TextButton}
>+   */
>+  this.$ID14;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>+   */
>+  this.comboBox;
>+
>+  /**
>+   * @private
>+   * @type {org.apache.flex.binding.ConstantBinding}
>+   */
>+  this.$ID15;
>+
>+  /**
>+   * @private
>+   * @type {Array}
>+   */
>+  this.mxmldd;
>+
>+  /**
>+   * @private
>+   * @type {Array}
>+   */
>+  this.mxmldp;
> };
> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>
>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>  * @return {string}
>  */
> MyInitialView.prototype.get_symbol = function() {
>-      return
>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>String);
>+  return
>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>String);
> };
>
> /**
>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>  * @return {string}
>  */
> MyInitialView.prototype.get_city = function() {
>-      return
>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>String);
>+  return
>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>String);
> };
>
> /**
>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>  * @return {string}
>  */
> MyInitialView.prototype.get_inputText = function() {
>-      return this.get_input().get_text();
>+  return this.get_input().get_text();
> };
>
> /**
>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>  * @return {string}
>  */
> MyInitialView.prototype.get_comboBoxValue = function() {
>-      return String(this.get_comboBox().get_selectedItem());
>+  return String(this.get_comboBox().get_selectedItem());
> };
>
> /**
>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>function() {
>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>  */
> MyInitialView.prototype.startTimer = function(event) {
>-      this.timer = new org.apache.flex.utils.Timer(1000);
>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>this));
>-      this.timer.start();
>+  this.timer = new org.apache.flex.utils.Timer(1000);
>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>this));
>+  this.timer.start();
> };
>
> /**
>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer = function(event) {
>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>  */
> MyInitialView.prototype.timerHandler = function(event) {
>-      this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>;
>+
>this.get_timerLabel().set_text(this.timer.get_currentCount().toString());
> };
>
> /**
>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>function(event) {
>  */
> MyInitialView.prototype.$EH0 = function(event)
> {
>-      this.startTimer(event);
>+  this.startTimer(event);
> };
>
> /**
>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>  */
> MyInitialView.prototype.$EH1 = function(event)
> {
>-      this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>this));
>-      this.timer.stop();
>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>this));
>+  this.timer.stop();
> };
>
> /**
>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>  */
> MyInitialView.prototype.$EH2 = function(event)
> {
>-      this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('cityListChanged'));
>+  this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('cityListChanged'));
> };
>
> /**
>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>  */
> MyInitialView.prototype.$EH3 = function(event)
> {
>-      this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('transferClicked'));
>+  this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('transferClicked'));
> };
>
> /**
>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>  */
> MyInitialView.prototype.$EH4 = function(event)
> {
>-      this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('listChanged'));
>+  this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('listChanged'));
> };
>
> /**
>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>  */
> MyInitialView.prototype.$EH5 = function(event)
> {
>-      this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('buttonClicked'));
>+  this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('buttonClicked'));
> };
>
> /**
>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>  */
> MyInitialView.prototype.$EH6 = function(event)
> {
>-      this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>+  this.dispatchEvent(new
>org.apache.flex.events.CustomEvent('comboBoxChanged'));
> };
>
> /**
>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>  */
> MyInitialView.prototype.get_lbl = function()
> {
>-      return this.lbl;
>+  return this.lbl;
> };
>
> /**
>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>  */
> MyInitialView.prototype.set_lbl = function(value)
> {
>-      if (value != this.lbl)
>-              this.lbl = value;
>+  if (value != this.lbl)
>+    this.lbl = value;
> };
>
> /**
>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>  */
> MyInitialView.prototype.get_timerLabel = function()
> {
>-      return this.timerLabel;
>+  return this.timerLabel;
> };
>
> /**
>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>  */
> MyInitialView.prototype.set_timerLabel = function(value)
> {
>-      if (value != this.timerLabel)
>-              this.timerLabel = value;
>+  if (value != this.timerLabel)
>+    this.timerLabel = value;
> };
>
> /**
>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>function(value)
>  */
> MyInitialView.prototype.get_cityList = function()
> {
>-      return this.cityList;
>+  return this.cityList;
> };
>
> /**
>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>  */
> MyInitialView.prototype.set_cityList = function(value)
> {
>-      if (value != this.cityList)
>-              this.cityList = value;
>+  if (value != this.cityList)
>+    this.cityList = value;
> };
>
> /**
>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList = function(value)
>  */
> MyInitialView.prototype.get_input = function()
> {
>-      return this.input;
>+  return this.input;
> };
>
> /**
>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>  */
> MyInitialView.prototype.set_input = function(value)
> {
>-      if (value != this.input)
>-              this.input = value;
>+  if (value != this.input)
>+    this.input = value;
> };
>
> /**
>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>  */
> MyInitialView.prototype.get_checkbox = function()
> {
>-      return this.checkbox;
>+  return this.checkbox;
> };
>
> /**
>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>  */
> MyInitialView.prototype.set_checkbox = function(value)
> {
>-      if (value != this.checkbox)
>-              this.checkbox = value;
>+  if (value != this.checkbox)
>+    this.checkbox = value;
> };
>
> /**
>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox = function(value)
>  */
> MyInitialView.prototype.get_list = function()
> {
>-      return this.list;
>+  return this.list;
> };
>
> /**
>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>  */
> MyInitialView.prototype.set_list = function(value)
> {
>-      if (value != this.list)
>-              this.list = value;
>+  if (value != this.list)
>+    this.list = value;
> };
>
> /**
>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>  */
> MyInitialView.prototype.get_comboBox = function()
> {
>-      return this.comboBox;
>+  return this.comboBox;
> };
>
> /**
>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>  */
> MyInitialView.prototype.set_comboBox = function(value)
> {
>-      if (value != this.comboBox)
>-              this.comboBox = value;
>+  if (value != this.comboBox)
>+    this.comboBox = value;
> };
>
> /**
>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>function(value)
>  */
> MyInitialView.prototype.get_MXMLDescriptor = function()
> {
>-      if (this.mxmldd == undefined)
>-      {
>-              /** @type {Array} */
>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>-              /** @type {Array} */
>-              var data = [
>+  if (this.mxmldd == undefined)
>+  {
>+    /** @type {Array} */
>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>+    /** @type {Array} */
>+    var data = [
> org.apache.flex.html.staticControls.Label,
> 4,
> 'id',
>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>'_id', true, '$ID15', 'source
> this.$EH6,
> null
> ];
>-
>-              if (arr)
>-                      this.mxmldd = arr.concat(data);
>-              else
>-                      this.mxmldd = data;
>-      }
>-      return this.mxmldd;
>+
>+    if (arr)
>+      this.mxmldd = arr.concat(data);
>+    else
>+      this.mxmldd = data;
>+  }
>+  return this.mxmldd;
> };
>
>
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>t.js
>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>t.js
>index c80f220..36d2f14 100644
>---
>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>t.js
>+++
>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>t.js
>@@ -1,110 +1,124 @@
> goog.provide('controllers.MyController');
>
>+
>+
> /**
>  * @constructor
>  * @implements {org.apache.flex.core.IDocument}
>  * @param {org.apache.flex.core.Application=} app
>  */
> controllers.MyController = function(app) {
>-      app = typeof app !== 'undefined' ? app : null;
>-      if (app) {
>-              this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>-              app.addEventListener("viewChanged", goog.bind(this.viewChangeHandler,
>this));
>-      }
>+  app = typeof app !== 'undefined' ? app : null;
>+  if (app) {
>+    this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>+    app.addEventListener("viewChanged",
>goog.bind(this.viewChangeHandler, this));
>+  }
> };
>
>+
> /**
>  * @private
>  * @type {string}
>  */
> controllers.MyController.prototype.queryBegin =
>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fina
>nce.quotes%20where%20symbol%20in%20(%22";
>
>+
> /**
>  * @private
>  * @type {string}
>  */
> controllers.MyController.prototype.queryEnd =
>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json
>";
>
>+
> /**
>  * @private
>  * @type {FlexJSTest_again}
>  */
> controllers.MyController.prototype.app;
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.viewChangeHandler = function(event) {
>-      this.app.initialView.addEventListener("buttonClicked",
>goog.bind(this.buttonClickHandler, this));
>-      this.app.initialView.addEventListener("listChanged",
>goog.bind(this.listChangedHandler, this));
>-      this.app.initialView.addEventListener("cityListChanged",
>goog.bind(this.cityListChangeHandler, this));
>-      this.app.initialView.addEventListener("transferClicked",
>goog.bind(this.transferClickHandler, this));
>-      this.app.initialView.addEventListener("comboBoxChanged",
>goog.bind(this.comboBoxChangeHandler, this));
>+  this.app.initialView.addEventListener("buttonClicked",
>goog.bind(this.buttonClickHandler, this));
>+  this.app.initialView.addEventListener("listChanged",
>goog.bind(this.listChangedHandler, this));
>+  this.app.initialView.addEventListener("cityListChanged",
>goog.bind(this.cityListChangeHandler, this));
>+  this.app.initialView.addEventListener("transferClicked",
>goog.bind(this.transferClickHandler, this));
>+  this.app.initialView.addEventListener("comboBoxChanged",
>goog.bind(this.comboBoxChangeHandler, this));
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.buttonClickHandler = function(event) {
>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>MyInitialView */.get_symbol();
>-      this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>-      this.app.get_service().send();
>-      this.app.get_service().addEventListener("complete",
>goog.bind(this.completeHandler, this));
>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>MyInitialView */.get_symbol();
>+  this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>+  this.app.get_service().send();
>+  this.app.get_service().addEventListener("complete",
>goog.bind(this.completeHandler, this));
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.completeHandler = function(event) {
>-      this.app.model/** Cast to models.MyModel
>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>().getItemAt(0), String));
>+  this.app.model/** Cast to models.MyModel
>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>().getItemAt(0), String));
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.listChangedHandler = function(event) {
>-      this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_symbol());
>+  this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_symbol());
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.cityListChangeHandler =
>function(event) {
>-      this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_city());
>+  this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_city());
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.transferClickHandler =
>function(event) {
>-      this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_inputText());
>+  this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_inputText());
> };
>
>+
> /**
>  * @private
>  * @param {org.apache.flex.events.Event} event
>  */
> controllers.MyController.prototype.comboBoxChangeHandler =
>function(event) {
>-      this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_comboBoxValue());
>+  this.app.model/** Cast to models.MyModel
>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>*/.get_comboBoxValue());
> };
>
>+
> /**
>  * @expose
>  * @param {Object} document
>  * @param {string=} id
>  */
> controllers.MyController.prototype.setDocument = function(document, id) {
>-      id = typeof id !== 'undefined' ? id : null;
>-      this.app = org.apache.flex.utils.Language.as(document,
>FlexJSTest_again);
>-      this.app.addEventListener("viewChanged",
>goog.bind(this.viewChangeHandler, this));
>+  id = typeof id !== 'undefined' ? id : null;
>+  this.app = org.apache.flex.utils.Language.as(document,
>FlexJSTest_again);
>+  this.app.addEventListener("viewChanged",
>goog.bind(this.viewChangeHandler, this));
> };
>
>+
> /**
>  * @const
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 38422d6..eb9c7a2 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
>@@ -1,63 +1,72 @@
> goog.provide('models.MyModel');
>
>+
>+
> /**
>  * @constructor
>  * @extends {org.apache.flex.events.EventDispatcher}
>  */
> models.MyModel = function() {
>-      goog.base(this);
>+  goog.base(this);
> }
> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>
>+
> /**
>  * @private
>  * @type {string}
>  */
> models.MyModel.prototype._labelText;
>
>+
> /**
>  * @expose
>  * @return {string}
>  */
> models.MyModel.prototype.get_labelText = function() {
>-      return this._labelText;
>+  return this._labelText;
> };
>
>+
> /**
>  * @expose
>  * @param {string} value
>  */
> models.MyModel.prototype.set_labelText = function(value) {
>-      if (value != this._labelText) {
>-              this._labelText = value;
>-              this.dispatchEvent(new
>org.apache.flex.events.Event("labelTextChanged"));
>-      }
>+  if (value != this._labelText) {
>+    this._labelText = value;
>+    this.dispatchEvent(new
>org.apache.flex.events.Event("labelTextChanged"));
>+  }
> };
>
>+
> /**
>  * @private
>  * @type {Array}
>  */
> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>"YHOO"];
>
>+
> /**
>  * @expose
>  * @return {Array}
>  */
> models.MyModel.prototype.get_strings = function() {
>-      return this._strings;
>+  return this._strings;
> };
>
>+
> /**
>  * @private
>  * @type {Array}
>  */
> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>"Sydney", "Tokyo"];
>
>+
> /**
>  * @expose
>  * @return {Array}
>  */
> models.MyModel.prototype.get_cities = function() {
>-      return this._cities;
>-};
>\ No newline at end of file
>+  return this._cities;
>+};
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 6923f67..3edfc62 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
>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
> goog.require('org.apache.flex.core.Application');
> goog.require('org.apache.flex.html.staticControls.Button');
>
>+
>+
> /**
>  * @constructor
>  * @extends {org.apache.flex.core.Application}
>  */
> wildcard_import = function() {
>-      goog.base(this);
>-
>-      /**
>-       * @private
>-       * @type {Array}
>-       */
>-      this.mxmldd;
>-
>-      /**
>-       * @private
>-       * @type {Array}
>-       */
>-      this.mxmldp;
>+  goog.base(this);
>+
>+  /**
>+   * @private
>+   * @type {Array}
>+   */
>+  this.mxmldd;
>+
>+  /**
>+   * @private
>+   * @type {Array}
>+   */
>+  this.mxmldp;
> };
> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>
>+
> /**
>  * @private
>  */
> wildcard_import.prototype.tmp = function() {
>-      var /** @type {Button} */ myButton;
>-      myButton = new org.apache.flex.html.staticControls.Button();
>+  var /** @type {Button} */ myButton;
>+  myButton = new org.apache.flex.html.staticControls.Button();
> };
>-
>-
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>index 3168e0c..ace15bb 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>@@ -1,12 +1,12 @@
> goog.provide('Test');
>
> goog.require('classes.A');
>-
> goog.require('interfaces.IA');
> goog.require('interfaces.IE');
>-
> goog.require('org.apache.flex.utils.Language');
>
>+
>+
> /**
>  * @constructor
>  * @extends {classes.A}
>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>  * @implements {interfaces.IE}
>  */
> Test = function() {
>-      goog.base(this);
>-}
>+  goog.base(this);
>+};
> goog.inherits(Test, classes.A);
>
>+
> /**
>  * @const
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>.js
>index 48c2497..1df9f5d 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>.js
>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>
> goog.require('classes.C');
>
>+
>+
> /**
>  * @constructor
>  * @extends {classes.C}
>  */
> classes.A = function() {
>-      goog.base(this);
>-}
>-goog.inherits(classes.A, classes.C);
>\ No newline at end of file
>+  goog.base(this);
>+};
>+goog.inherits(classes.A, classes.C);
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>.js
>index d1fe335..3dd8adb 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>.js
>@@ -1,8 +1,9 @@
> goog.provide('classes.B');
>
>
>+
> /**
>  * @constructor
>  */
> classes.B = function() {
>-};
>\ No newline at end of file
>+};
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>.js
>index 7aa37e6..9c7bb13 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>.js
>@@ -1,8 +1,9 @@
> goog.provide('classes.C');
>
>
>+
> /**
>  * @constructor
>  */
> classes.C = function() {
>-};
>\ No newline at end of file
>+};
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>sult.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>sult.js
>index 97b7e18..360c807 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>sult.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>sult.js
>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>
> goog.require('interfaces.IC');
>
>+
>+
> /**
>  * @interface
>  * @extends {interfaces.IC}
>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
> interfaces.IA = function() {
> };
>
>+
> /**
>  * @const
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>sult.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>sult.js
>index e50057d..611cfb6 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>sult.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>sult.js
>@@ -1,5 +1,7 @@
> goog.provide('interfaces.IB');
>
>+
>+
> /**
>  * @interface
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>sult.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>sult.js
>index db01166..35f794d 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>sult.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>sult.js
>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>
> goog.require('interfaces.ID');
>
>+
>+
> /**
>  * @interface
>  * @extends {interfaces.ID}
>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
> interfaces.IC = function() {
> };
>
>+
> /**
>  * @const
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>sult.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>sult.js
>index d25c4a4..dfa6505 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>sult.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>sult.js
>@@ -1,6 +1,7 @@
> goog.provide('interfaces.ID');
>
>
>+
> /**
>  * @interface
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>sult.js
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>sult.js
>index bb526de..c91f544 100644
>---
>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>sult.js
>+++
>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>sult.js
>@@ -1,6 +1,7 @@
> goog.provide('interfaces.IE');
>
>
>+
> /**
>  * @interface
>  */
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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/JSFl
>exJSEmitter.java
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitter.java
>index 5edb70b..e8a2e62 100644
>---
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitter.java
>+++
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitter.java
>@@ -24,6 +24,8 @@ import java.util.ArrayList;
> import java.util.Collection;
> import java.util.HashSet;
> import java.util.Iterator;
>+import java.util.List;
>+import java.util.Map;
> import java.util.Set;
>
> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
> import org.apache.flex.compiler.common.ASModifier;
> import org.apache.flex.compiler.common.ModifiersSet;
>+import org.apache.flex.compiler.definitions.IClassDefinition;
> import org.apache.flex.compiler.definitions.IDefinition;
> import org.apache.flex.compiler.definitions.IFunctionDefinition;
> import
>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassific
>ation;
>@@ -75,6 +78,7 @@ import org.apache.flex.compiler.tree.as.IInterfaceNode;
> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
> import org.apache.flex.compiler.tree.as.ILiteralNode;
> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>+import org.apache.flex.compiler.tree.as.IParameterNode;
> import org.apache.flex.compiler.tree.as.ISetterNode;
> import org.apache.flex.compiler.tree.as.ITypeNode;
> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>     private ICompilerProject project;
>
>     @Override
>+    protected String getIndent(int numIndent)
>+    {
>+        final StringBuilder sb = new StringBuilder();
>+        for (int i = 0; i < numIndent; i++)
>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>+        return sb.toString();
>+    }
>+
>+    @Override
>     protected void emitMemberName(IDefinitionNode node)
>     {
>         write(node.getName());
>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>
>         project = getWalker().getProject();
>
>-        super.emitClass(node);
>+        IClassDefinition definition = node.getDefinition();
>+
>+        IFunctionDefinition ctorDefinition = definition.getConstructor();
>+
>+        // Static-only (Singleton) classes may not have a constructor
>+        if (ctorDefinition != null)
>+        {
>+            IFunctionNode ctorNode = (IFunctionNode)
>ctorDefinition.getNode();
>+            if (ctorNode != null)
>+            {
>+                // constructor
>+                emitMethod(ctorNode);
>+                write(ASEmitterTokens.SEMICOLON);
>+            }
>+            else
>+            {
>+                String qname = definition.getQualifiedName();
>+                if (qname != null && !qname.equals(""))
>+                {
>+                    write(qname);
>+                    write(ASEmitterTokens.SPACE);
>+                    writeToken(ASEmitterTokens.EQUAL);
>+                    write(ASEmitterTokens.FUNCTION);
>+                    write(ASEmitterTokens.PAREN_OPEN);
>+                    write(ASEmitterTokens.PAREN_CLOSE);
>+                    write(ASEmitterTokens.SPACE);
>+                    write(ASEmitterTokens.BLOCK_OPEN);
>+                    writeNewline();
>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>+                    write(ASEmitterTokens.SEMICOLON);
>+                }
>+            }
>+        }
>+
>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>+        for (IDefinitionNode dnode : dnodes)
>+        {
>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>+            {
>+                writeNewline();
>+                writeNewline();
>+                writeNewline();
>+                emitField((IVariableNode) dnode);
>+                write(ASEmitterTokens.SEMICOLON);
>+            }
>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>+            {
>+                if (!((IFunctionNode) dnode).isConstructor())
>+                {
>+                    writeNewline();
>+                    writeNewline();
>+                    writeNewline();
>+                    emitMethod((IFunctionNode) dnode);
>+                    write(ASEmitterTokens.SEMICOLON);
>+                }
>+            }
>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>+            {
>+                writeNewline();
>+                writeNewline();
>+                writeNewline();
>+                emitAccessors((IAccessorNode) dnode);
>+                write(ASEmitterTokens.SEMICOLON);
>+            }
>+        }
>     }
>
>     @Override
>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>     }
>
>     @Override
>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>+    {
>+        IParameterNode[] pnodes = node.getParameterNodes();
>+        if (pnodes.length == 0)
>+            return;
>+
>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>+
>+        if (defaults != null)
>+        {
>+            final StringBuilder code = new StringBuilder();
>+
>+            if (!hasBody(node))
>+            {
>+                indentPush();
>+                write(JSFlexJSEmitterTokens.INDENT);
>+            }
>+
>+            List<IParameterNode> parameters = new
>ArrayList<IParameterNode>(
>+                    defaults.values());
>+
>+            for (int i = 0, n = parameters.size(); i < n; i++)
>+            {
>+                IParameterNode pnode = parameters.get(i);
>+
>+                if (pnode != null)
>+                {
>+                    code.setLength(0);
>+
>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>+                    code.append(pnode.getName());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(pnode.getName());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+
>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(pnode.getName());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(ASEmitterTokens.COLON.getToken());
>+                    code.append(ASEmitterTokens.SPACE.getToken());
>+                    code.append(pnode.getDefaultValue());
>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>+
>+                    write(code.toString());
>+
>+                    if (i == n - 1 && !hasBody(node))
>+                        indentPop();
>+
>+                    writeNewline();
>+                }
>+            }
>+        }
>+    }
>+
>+    @Override
>     public void emitBinaryOperator(IBinaryOperatorNode node)
>     {
>         ASTNodeID id = node.getNodeID();
>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>         ArrayList<String> writtenInstances = new ArrayList<String>();
>         writtenInstances.add(cname); // make sure we don't add ourselves
>
>+        boolean emitsRequires = false;
>         if (requiresList != null)
>         {
>             for (String imp : requiresList)
>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>                     write(ASEmitterTokens.SINGLE_QUOTE);
>                     write(ASEmitterTokens.PAREN_CLOSE);
>                     writeNewline(ASEmitterTokens.SEMICOLON);
>+
>                     writtenInstances.add(imp);
>+
>+                    emitsRequires = true;
>                 }
>             }
>-
>-            if (requiresList.size() > 1
>-                    || (requiresList.size() == 1 &&
>requiresList.get(0).indexOf(
>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>-            {
>-                writeNewline();
>-            }
>         }
>
>+        boolean emitsInterfaces = false;
>         if (interfacesList != null)
>         {
>             for (String imp : interfacesList)
>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>                 write(ASEmitterTokens.SINGLE_QUOTE);
>                 write(ASEmitterTokens.PAREN_CLOSE);
>                 writeNewline(ASEmitterTokens.SEMICOLON);
>-            }
>-
>-            if (interfacesList.size() > 0)
>-            {
>-                writeNewline();
>+
>+                emitsInterfaces = true;
>             }
>         }
>
>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>         //              'as' operators. We don't need to worry about
>requiring
>         //              this in every project: ADVANCED_OPTIMISATIONS
>will NOT
>         //              include any of the code if it is not used in the
>project.
>-        if (flexProject.mainCU != null &&
>-                cu.getName().equals(flexProject.mainCU.getName()))
>+        boolean isMainCU = flexProject.mainCU != null &&
>+                    cu.getName().equals(flexProject.mainCU.getName());
>+        if (isMainCU)
>         {
>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>             write(ASEmitterTokens.PAREN_OPEN);
>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>             write(ASEmitterTokens.SINGLE_QUOTE);
>             write(ASEmitterTokens.PAREN_CLOSE);
>             writeNewline(ASEmitterTokens.SEMICOLON);
>+        }
>+
>+        if (emitsRequires || emitsInterfaces || isMainCU)
>+        {
>             writeNewline();
>         }
>+
>+        writeNewline();
>+        writeNewline();
>     }
>
>     @Override
>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>implements IJSFlexJSEmitter
>             {
>                 writeNewline();
>                 writeNewline();
>+                writeNewline();
>                 getDoc().begin();
>                 getDoc().emitConst(null);
>                 getDoc().end();
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter
>Tokens.java
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitterTokens.java
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitterTokens.java
>index 10ff880..53110c1 100644
>---
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitterTokens.java
>+++
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>exJSEmitterTokens.java
>@@ -27,6 +27,7 @@ import org.apache.flex.compiler.codegen.IEmitterTokens;
> public enum JSFlexJSEmitterTokens implements IEmitterTokens
> {
>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>+    INDENT("  "),
>     INTERFACES("interfaces"),
>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>     UNDERSCORE("_"),
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.jav
>a
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>Emitter.java
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>Emitter.java
>index 30e70bb..dc039a9 100644
>---
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>Emitter.java
>+++
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>Emitter.java
>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>implements IJSGoogEmitter
>         }
>     }
>
>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>     {
>         IParameterNode[] pnodes = node.getParameterNodes();
>         if (pnodes.length == 0)
>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>implements IJSGoogEmitter
>         super(out);
>     }
>
>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>nodes)
>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>nodes)
>     {
>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>IParameterNode>();
>         int i = 0;
>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>implements IJSGoogEmitter
>         return false;
>     }
>
>-    private static boolean hasBody(IFunctionNode node)
>+    protected static boolean hasBody(IFunctionNode node)
>     {
>         IScopedNode scope = node.getScopedNode();
>         return scope.getChildCount() > 0;
>
>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmi
>tter.java
>----------------------------------------------------------------------
>diff --git
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>MLFlexJSEmitter.java
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>MLFlexJSEmitter.java
>index 444b26a..cd7aad7 100644
>---
>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>MLFlexJSEmitter.java
>+++
>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>MLFlexJSEmitter.java
>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>implements
>         super(out);
>     }
>
>+    @Override
>+    protected String getIndent(int numIndent)
>+    {
>+        final StringBuilder sb = new StringBuilder();
>+        for (int i = 0; i < numIndent; i++)
>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>+        return sb.toString();
>+    }
>+
>
>//------------------------------------------------------------------------
>--
>
>     @Override
>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>MXMLEmitter implements
>         if (project.mainCU != null &&
>                 cu.getName().equals(project.mainCU.getName()))
>         {
>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>-            write(ASEmitterTokens.PAREN_OPEN);
>-            write(ASEmitterTokens.SINGLE_QUOTE);
>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>-            write(ASEmitterTokens.SINGLE_QUOTE);
>-            write(ASEmitterTokens.PAREN_CLOSE);
>-            writeNewline(ASEmitterTokens.SEMICOLON);
>-            writeNewline();
>+
>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>         }
>+
>+        writeNewline();
>+        writeNewline();
>     }
>
>     private void emitHeaderLine(String qname)
>


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
Ah ok.  Will start over.  Thanks, Alex

On 11/12/13 12:02 PM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:

>Yes, that's the one that I wrestled with the past couple of days. The
>fix was to change a path to the latest flex-asjs... Peter renamed one
>of the examples and the test uses a hard coded path to it.
>
>EdB
>
>
>
>On Tue, Nov 12, 2013 at 8:52 PM, Alex Harui <ah...@adobe.com> wrote:
>> It's not picking up the goog.require("StockDataJSONItemConverter").
>>
>> I'm cleaning and rebuilding. Hopefully it will just go away.
>>
>> -Alex
>>
>> On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>>
>>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>>What is the test complaining about?
>>>
>>>EdB
>>>
>>>
>>>
>>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>>> I'm getting one failure in compiler.jx.tests in
>>>>
>>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLApp
>>>>li
>>>>ca
>>>> tion
>>>>
>>>>
>>>> Is it passing for others?
>>>>
>>>> -Alex
>>>>
>>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>>> wrote:
>>>>
>>>>>Updated Branches:
>>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 2bebadd..5ef10ba 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>>  */
>>>>> MyInitialView = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.lbl;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID0;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID1;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID2;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.timerLabel;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>>-       */
>>>>>-      this.cityList;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID3;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>-       */
>>>>>-      this.$ID5;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID4;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>-       */
>>>>>-      this.input;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID6;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>-       */
>>>>>-      this.checkbox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID7;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID8;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID9;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID10;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID11;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID12;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>-       */
>>>>>-      this.list;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID13;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID14;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>-       */
>>>>>-      this.comboBox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID15;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.lbl;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID0;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID1;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID2;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.timerLabel;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>>+   */
>>>>>+  this.cityList;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID3;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>+   */
>>>>>+  this.$ID5;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID4;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>+   */
>>>>>+  this.input;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID6;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>+   */
>>>>>+  this.checkbox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID7;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID8;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID9;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID10;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID11;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID12;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>+   */
>>>>>+  this.list;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID13;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID14;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>+   */
>>>>>+  this.comboBox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID15;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>>
>>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_symbol = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_city = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem
>>>>>()
>>>>>,
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem
>>>>>()
>>>>>,
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_inputText = function() {
>>>>>-      return this.get_input().get_text();
>>>>>+  return this.get_input().get_text();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText =
>>>>>function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>>function() {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>-      this.timer.addEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.start();
>>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.start();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>>function(event) {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>>-
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString(
>>>>>))
>>>>>;
>>>>>+
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString(
>>>>>))
>>>>>;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>>function(event) {
>>>>>  */
>>>>> MyInitialView.prototype.$EH0 = function(event)
>>>>> {
>>>>>-      this.startTimer(event);
>>>>>+  this.startTimer(event);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH1 = function(event)
>>>>> {
>>>>>-      this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.stop();
>>>>>+  this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.stop();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH2 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH3 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH4 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH5 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH6 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.get_lbl = function()
>>>>> {
>>>>>-      return this.lbl;
>>>>>+  return this.lbl;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_lbl = function(value)
>>>>> {
>>>>>-      if (value != this.lbl)
>>>>>-              this.lbl = value;
>>>>>+  if (value != this.lbl)
>>>>>+    this.lbl = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_timerLabel = function()
>>>>> {
>>>>>-      return this.timerLabel;
>>>>>+  return this.timerLabel;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel =
>>>>>function()
>>>>>  */
>>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>>> {
>>>>>-      if (value != this.timerLabel)
>>>>>-              this.timerLabel = value;
>>>>>+  if (value != this.timerLabel)
>>>>>+    this.timerLabel = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_cityList = function()
>>>>> {
>>>>>-      return this.cityList;
>>>>>+  return this.cityList;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_cityList = function(value)
>>>>> {
>>>>>-      if (value != this.cityList)
>>>>>-              this.cityList = value;
>>>>>+  if (value != this.cityList)
>>>>>+    this.cityList = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_input = function()
>>>>> {
>>>>>-      return this.input;
>>>>>+  return this.input;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_input = function(value)
>>>>> {
>>>>>-      if (value != this.input)
>>>>>-              this.input = value;
>>>>>+  if (value != this.input)
>>>>>+    this.input = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_checkbox = function()
>>>>> {
>>>>>-      return this.checkbox;
>>>>>+  return this.checkbox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>>> {
>>>>>-      if (value != this.checkbox)
>>>>>-              this.checkbox = value;
>>>>>+  if (value != this.checkbox)
>>>>>+    this.checkbox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_list = function()
>>>>> {
>>>>>-      return this.list;
>>>>>+  return this.list;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_list = function(value)
>>>>> {
>>>>>-      if (value != this.list)
>>>>>-              this.list = value;
>>>>>+  if (value != this.list)
>>>>>+    this.list = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBox = function()
>>>>> {
>>>>>-      return this.comboBox;
>>>>>+  return this.comboBox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>>> {
>>>>>-      if (value != this.comboBox)
>>>>>-              this.comboBox = value;
>>>>>+  if (value != this.comboBox)
>>>>>+    this.comboBox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>>> {
>>>>>-      if (this.mxmldd == undefined)
>>>>>-      {
>>>>>-              /** @type {Array} */
>>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>-              /** @type {Array} */
>>>>>-              var data = [
>>>>>+  if (this.mxmldd == undefined)
>>>>>+  {
>>>>>+    /** @type {Array} */
>>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>+    /** @type {Array} */
>>>>>+    var data = [
>>>>> org.apache.flex.html.staticControls.Label,
>>>>> 4,
>>>>> 'id',
>>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>>4,
>>>>>'_id', true, '$ID15', 'source
>>>>> this.$EH6,
>>>>> null
>>>>> ];
>>>>>-
>>>>>-              if (arr)
>>>>>-                      this.mxmldd = arr.concat(data);
>>>>>-              else
>>>>>-                      this.mxmldd = data;
>>>>>-      }
>>>>>-      return this.mxmldd;
>>>>>+
>>>>>+    if (arr)
>>>>>+      this.mxmldd = arr.concat(data);
>>>>>+    else
>>>>>+      this.mxmldd = data;
>>>>>+  }
>>>>>+  return this.mxmldd;
>>>>> };
>>>>>
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>index c80f220..36d2f14 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>@@ -1,110 +1,124 @@
>>>>> goog.provide('controllers.MyController');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>>  * @param {org.apache.flex.core.Application=} app
>>>>>  */
>>>>> controllers.MyController = function(app) {
>>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>>-      if (app) {
>>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>-              app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler,
>>>>>this));
>>>>>-      }
>>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>>+  if (app) {
>>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>+    app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryBegin =
>>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.
>>>>>fi
>>>>>na
>>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryEnd =
>>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=
>>>>>js
>>>>>on
>>>>>";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {FlexJSTest_again}
>>>>>  */
>>>>> controllers.MyController.prototype.app;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.viewChangeHandler =
>>>>>function(event)
>>>>>{
>>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>>function(event) {
>>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>-      this.app.get_service().send();
>>>>>-      this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>+  this.app.get_service().send();
>>>>>+  this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.completeHandler = function(event)
>>>>>{
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collec
>>>>>ti
>>>>>on
>>>>>().getItemAt(0), String));
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collec
>>>>>ti
>>>>>on
>>>>>().getItemAt(0), String));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.listChangedHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.transferClickHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {Object} document
>>>>>  * @param {string=} id
>>>>>  */
>>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>>id) {
>>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>-      this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>+  this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 38422d6..eb9c7a2 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
>>>>>@@ -1,63 +1,72 @@
>>>>> goog.provide('models.MyModel');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>>  */
>>>>> models.MyModel = function() {
>>>>>-      goog.base(this);
>>>>>+  goog.base(this);
>>>>> }
>>>>> goog.inherits(models.MyModel,
>>>>>org.apache.flex.events.EventDispatcher);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> models.MyModel.prototype._labelText;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {string}
>>>>>  */
>>>>> models.MyModel.prototype.get_labelText = function() {
>>>>>-      return this._labelText;
>>>>>+  return this._labelText;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {string} value
>>>>>  */
>>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>>-      if (value != this._labelText) {
>>>>>-              this._labelText = value;
>>>>>-              this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>-      }
>>>>>+  if (value != this._labelText) {
>>>>>+    this._labelText = value;
>>>>>+    this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>>"YHOO"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_strings = function() {
>>>>>-      return this._strings;
>>>>>+  return this._strings;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>>"Sydney", "Tokyo"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_cities = function() {
>>>>>-      return this._cities;
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+  return this._cities;
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 6923f67..3edfc62 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
>>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>>> goog.require('org.apache.flex.core.Application');
>>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.core.Application}
>>>>>  */
>>>>> wildcard_import = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  */
>>>>> wildcard_import.prototype.tmp = function() {
>>>>>-      var /** @type {Button} */ myButton;
>>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>>+  var /** @type {Button} */ myButton;
>>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>>> };
>>>>>-
>>>>>-
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>index 3168e0c..ace15bb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>@@ -1,12 +1,12 @@
>>>>> goog.provide('Test');
>>>>>
>>>>> goog.require('classes.A');
>>>>>-
>>>>> goog.require('interfaces.IA');
>>>>> goog.require('interfaces.IE');
>>>>>-
>>>>> goog.require('org.apache.flex.utils.Language');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.A}
>>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>>  * @implements {interfaces.IE}
>>>>>  */
>>>>> Test = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>+  goog.base(this);
>>>>>+};
>>>>> goog.inherits(Test, classes.A);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index 48c2497..1df9f5d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>>
>>>>> goog.require('classes.C');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.C}
>>>>>  */
>>>>> classes.A = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>-goog.inherits(classes.A, classes.C);
>>>>>\ No newline at end of file
>>>>>+  goog.base(this);
>>>>>+};
>>>>>+goog.inherits(classes.A, classes.C);
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index d1fe335..3dd8adb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.B');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.B = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index 7aa37e6..9c7bb13 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.C');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.C = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>index 97b7e18..360c807 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>>
>>>>> goog.require('interfaces.IC');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.IC}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>>> interfaces.IA = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>index e50057d..611cfb6 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,5 +1,7 @@
>>>>> goog.provide('interfaces.IB');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>index db01166..35f794d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>>
>>>>> goog.require('interfaces.ID');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.ID}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>>> interfaces.IC = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>index d25c4a4..dfa6505 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.ID');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>index bb526de..c91f544 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.IE');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmi
>>>>>tt
>>>>>er
>>>>>.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>index 5edb70b..e8a2e62 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>>> import java.util.Collection;
>>>>> import java.util.HashSet;
>>>>> import java.util.Iterator;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>> import java.util.Set;
>>>>>
>>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>>> import org.apache.flex.compiler.common.ASModifier;
>>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>>> import
>>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClass
>>>>>if
>>>>>ic
>>>>>ation;
>>>>>@@ -75,6 +78,7 @@ import
>>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     private ICompilerProject project;
>>>>>
>>>>>     @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>>     {
>>>>>         write(node.getName());
>>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>
>>>>>         project = getWalker().getProject();
>>>>>
>>>>>-        super.emitClass(node);
>>>>>+        IClassDefinition definition = node.getDefinition();
>>>>>+
>>>>>+        IFunctionDefinition ctorDefinition =
>>>>>definition.getConstructor();
>>>>>+
>>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>>+        if (ctorDefinition != null)
>>>>>+        {
>>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>>ctorDefinition.getNode();
>>>>>+            if (ctorNode != null)
>>>>>+            {
>>>>>+                // constructor
>>>>>+                emitMethod(ctorNode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else
>>>>>+            {
>>>>>+                String qname = definition.getQualifiedName();
>>>>>+                if (qname != null && !qname.equals(""))
>>>>>+                {
>>>>>+                    write(qname);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>>+                    writeNewline();
>>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>>+        {
>>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitField((IVariableNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>>+            {
>>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>>+                {
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+        }
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    {
>>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>>+        if (pnodes.length == 0)
>>>>>+            return;
>>>>>+
>>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>>+
>>>>>+        if (defaults != null)
>>>>>+        {
>>>>>+            final StringBuilder code = new StringBuilder();
>>>>>+
>>>>>+            if (!hasBody(node))
>>>>>+            {
>>>>>+                indentPush();
>>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>>+            }
>>>>>+
>>>>>+            List<IParameterNode> parameters = new
>>>>>ArrayList<IParameterNode>(
>>>>>+                    defaults.values());
>>>>>+
>>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>>+            {
>>>>>+                IParameterNode pnode = parameters.get(i);
>>>>>+
>>>>>+                if (pnode != null)
>>>>>+                {
>>>>>+                    code.setLength(0);
>>>>>+
>>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getDefaultValue());
>>>>>+
>>>>>code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>>+
>>>>>+                    write(code.toString());
>>>>>+
>>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>>+                        indentPop();
>>>>>+
>>>>>+                    writeNewline();
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>>     {
>>>>>         ASTNodeID id = node.getNodeID();
>>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>>ourselves
>>>>>
>>>>>+        boolean emitsRequires = false;
>>>>>         if (requiresList != null)
>>>>>         {
>>>>>             for (String imp : requiresList)
>>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+
>>>>>                     writtenInstances.add(imp);
>>>>>+
>>>>>+                    emitsRequires = true;
>>>>>                 }
>>>>>             }
>>>>>-
>>>>>-            if (requiresList.size() > 1
>>>>>-                    || (requiresList.size() == 1 &&
>>>>>requiresList.get(0).indexOf(
>>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>>-1))
>>>>>-            {
>>>>>-                writeNewline();
>>>>>-            }
>>>>>         }
>>>>>
>>>>>+        boolean emitsInterfaces = false;
>>>>>         if (interfacesList != null)
>>>>>         {
>>>>>             for (String imp : interfacesList)
>>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            }
>>>>>-
>>>>>-            if (interfacesList.size() > 0)
>>>>>-            {
>>>>>-                writeNewline();
>>>>>+
>>>>>+                emitsInterfaces = true;
>>>>>             }
>>>>>         }
>>>>>
>>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         //              'as' operators. We don't need to worry about
>>>>>requiring
>>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>>will NOT
>>>>>         //              include any of the code if it is not used in
>>>>>the
>>>>>project.
>>>>>-        if (flexProject.mainCU != null &&
>>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>>+
>>>>>cu.getName().equals(flexProject.mainCU.getName());
>>>>>+        if (isMainCU)
>>>>>         {
>>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+        }
>>>>>+
>>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>>+        {
>>>>>             writeNewline();
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             {
>>>>>                 writeNewline();
>>>>>                 writeNewline();
>>>>>+                writeNewline();
>>>>>                 getDoc().begin();
>>>>>                 getDoc().emitConst(null);
>>>>>                 getDoc().end();
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmi
>>>>>tt
>>>>>er
>>>>>Tokens.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>index 10ff880..53110c1 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>@@ -27,6 +27,7 @@ import
>>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>>> {
>>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>>+    INDENT("  "),
>>>>>     INTERFACES("interfaces"),
>>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>>     UNDERSCORE("_"),
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter
>>>>>.j
>>>>>av
>>>>>a
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>index 30e70bb..dc039a9 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         }
>>>>>     }
>>>>>
>>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>     {
>>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>>         if (pnodes.length == 0)
>>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>+    protected Map<Integer, IParameterNode>
>>>>>getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>     {
>>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>>IParameterNode>();
>>>>>         int i = 0;
>>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         return false;
>>>>>     }
>>>>>
>>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>>     {
>>>>>         IScopedNode scope = node.getScopedNode();
>>>>>         return scope.getChildCount() > 0;
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJ
>>>>>SE
>>>>>mi
>>>>>tter.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>index 444b26a..cd7aad7 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter
>>>>>implements
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>+    @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>
>>>>>//--------------------------------------------------------------------
>>>>>--
>>>>>--
>>>>>--
>>>>>
>>>>>     @Override
>>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter implements
>>>>>         if (project.mainCU != null &&
>>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>>         {
>>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            writeNewline();
>>>>>+
>>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     private void emitHeaderLine(String qname)
>>>>>
>>>>
>>>
>>>
>>>
>>>--
>>>Ix Multimedia Software
>>>
>>>Jan Luykenstraat 27
>>>3521 VB Utrecht
>>>
>>>T. 06-51952295
>>>I. www.ixsoftware.nl
>>
>
>
>
>--
>Ix Multimedia Software
>
>Jan Luykenstraat 27
>3521 VB Utrecht
>
>T. 06-51952295
>I. www.ixsoftware.nl


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
Ah ok.  Will start over.  Thanks, Alex

On 11/12/13 12:02 PM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:

>Yes, that's the one that I wrestled with the past couple of days. The
>fix was to change a path to the latest flex-asjs... Peter renamed one
>of the examples and the test uses a hard coded path to it.
>
>EdB
>
>
>
>On Tue, Nov 12, 2013 at 8:52 PM, Alex Harui <ah...@adobe.com> wrote:
>> It's not picking up the goog.require("StockDataJSONItemConverter").
>>
>> I'm cleaning and rebuilding. Hopefully it will just go away.
>>
>> -Alex
>>
>> On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>>
>>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>>What is the test complaining about?
>>>
>>>EdB
>>>
>>>
>>>
>>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>>> I'm getting one failure in compiler.jx.tests in
>>>>
>>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLApp
>>>>li
>>>>ca
>>>> tion
>>>>
>>>>
>>>> Is it passing for others?
>>>>
>>>> -Alex
>>>>
>>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>>> wrote:
>>>>
>>>>>Updated Branches:
>>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 2bebadd..5ef10ba 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>>  */
>>>>> MyInitialView = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.lbl;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID0;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID1;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID2;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.timerLabel;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>>-       */
>>>>>-      this.cityList;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID3;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>-       */
>>>>>-      this.$ID5;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID4;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>-       */
>>>>>-      this.input;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID6;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>-       */
>>>>>-      this.checkbox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID7;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID8;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID9;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID10;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID11;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID12;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>-       */
>>>>>-      this.list;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID13;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID14;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>-       */
>>>>>-      this.comboBox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID15;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.lbl;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID0;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID1;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID2;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.timerLabel;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>>+   */
>>>>>+  this.cityList;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID3;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>+   */
>>>>>+  this.$ID5;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID4;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>+   */
>>>>>+  this.input;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID6;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>+   */
>>>>>+  this.checkbox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID7;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID8;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID9;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID10;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID11;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID12;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>+   */
>>>>>+  this.list;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID13;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID14;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>+   */
>>>>>+  this.comboBox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID15;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>>
>>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_symbol = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_city = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem
>>>>>()
>>>>>,
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem
>>>>>()
>>>>>,
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_inputText = function() {
>>>>>-      return this.get_input().get_text();
>>>>>+  return this.get_input().get_text();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText =
>>>>>function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>>function() {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>-      this.timer.addEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.start();
>>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.start();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>>function(event) {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>>-
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString(
>>>>>))
>>>>>;
>>>>>+
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString(
>>>>>))
>>>>>;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>>function(event) {
>>>>>  */
>>>>> MyInitialView.prototype.$EH0 = function(event)
>>>>> {
>>>>>-      this.startTimer(event);
>>>>>+  this.startTimer(event);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH1 = function(event)
>>>>> {
>>>>>-      this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.stop();
>>>>>+  this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.stop();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH2 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH3 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH4 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH5 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH6 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.get_lbl = function()
>>>>> {
>>>>>-      return this.lbl;
>>>>>+  return this.lbl;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_lbl = function(value)
>>>>> {
>>>>>-      if (value != this.lbl)
>>>>>-              this.lbl = value;
>>>>>+  if (value != this.lbl)
>>>>>+    this.lbl = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_timerLabel = function()
>>>>> {
>>>>>-      return this.timerLabel;
>>>>>+  return this.timerLabel;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel =
>>>>>function()
>>>>>  */
>>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>>> {
>>>>>-      if (value != this.timerLabel)
>>>>>-              this.timerLabel = value;
>>>>>+  if (value != this.timerLabel)
>>>>>+    this.timerLabel = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_cityList = function()
>>>>> {
>>>>>-      return this.cityList;
>>>>>+  return this.cityList;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_cityList = function(value)
>>>>> {
>>>>>-      if (value != this.cityList)
>>>>>-              this.cityList = value;
>>>>>+  if (value != this.cityList)
>>>>>+    this.cityList = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_input = function()
>>>>> {
>>>>>-      return this.input;
>>>>>+  return this.input;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_input = function(value)
>>>>> {
>>>>>-      if (value != this.input)
>>>>>-              this.input = value;
>>>>>+  if (value != this.input)
>>>>>+    this.input = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_checkbox = function()
>>>>> {
>>>>>-      return this.checkbox;
>>>>>+  return this.checkbox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>>> {
>>>>>-      if (value != this.checkbox)
>>>>>-              this.checkbox = value;
>>>>>+  if (value != this.checkbox)
>>>>>+    this.checkbox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_list = function()
>>>>> {
>>>>>-      return this.list;
>>>>>+  return this.list;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_list = function(value)
>>>>> {
>>>>>-      if (value != this.list)
>>>>>-              this.list = value;
>>>>>+  if (value != this.list)
>>>>>+    this.list = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBox = function()
>>>>> {
>>>>>-      return this.comboBox;
>>>>>+  return this.comboBox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>>> {
>>>>>-      if (value != this.comboBox)
>>>>>-              this.comboBox = value;
>>>>>+  if (value != this.comboBox)
>>>>>+    this.comboBox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>>> {
>>>>>-      if (this.mxmldd == undefined)
>>>>>-      {
>>>>>-              /** @type {Array} */
>>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>-              /** @type {Array} */
>>>>>-              var data = [
>>>>>+  if (this.mxmldd == undefined)
>>>>>+  {
>>>>>+    /** @type {Array} */
>>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>+    /** @type {Array} */
>>>>>+    var data = [
>>>>> org.apache.flex.html.staticControls.Label,
>>>>> 4,
>>>>> 'id',
>>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>>4,
>>>>>'_id', true, '$ID15', 'source
>>>>> this.$EH6,
>>>>> null
>>>>> ];
>>>>>-
>>>>>-              if (arr)
>>>>>-                      this.mxmldd = arr.concat(data);
>>>>>-              else
>>>>>-                      this.mxmldd = data;
>>>>>-      }
>>>>>-      return this.mxmldd;
>>>>>+
>>>>>+    if (arr)
>>>>>+      this.mxmldd = arr.concat(data);
>>>>>+    else
>>>>>+      this.mxmldd = data;
>>>>>+  }
>>>>>+  return this.mxmldd;
>>>>> };
>>>>>
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>index c80f220..36d2f14 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_r
>>>>>es
>>>>>ul
>>>>>t.js
>>>>>@@ -1,110 +1,124 @@
>>>>> goog.provide('controllers.MyController');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>>  * @param {org.apache.flex.core.Application=} app
>>>>>  */
>>>>> controllers.MyController = function(app) {
>>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>>-      if (app) {
>>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>-              app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler,
>>>>>this));
>>>>>-      }
>>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>>+  if (app) {
>>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>+    app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryBegin =
>>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.
>>>>>fi
>>>>>na
>>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryEnd =
>>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=
>>>>>js
>>>>>on
>>>>>";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {FlexJSTest_again}
>>>>>  */
>>>>> controllers.MyController.prototype.app;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.viewChangeHandler =
>>>>>function(event)
>>>>>{
>>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>>function(event) {
>>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>-      this.app.get_service().send();
>>>>>-      this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>+  this.app.get_service().send();
>>>>>+  this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.completeHandler = function(event)
>>>>>{
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collec
>>>>>ti
>>>>>on
>>>>>().getItemAt(0), String));
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collec
>>>>>ti
>>>>>on
>>>>>().getItemAt(0), String));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.listChangedHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.transferClickHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {Object} document
>>>>>  * @param {string=} id
>>>>>  */
>>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>>id) {
>>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>-      this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>+  this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 38422d6..eb9c7a2 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
>>>>>@@ -1,63 +1,72 @@
>>>>> goog.provide('models.MyModel');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>>  */
>>>>> models.MyModel = function() {
>>>>>-      goog.base(this);
>>>>>+  goog.base(this);
>>>>> }
>>>>> goog.inherits(models.MyModel,
>>>>>org.apache.flex.events.EventDispatcher);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> models.MyModel.prototype._labelText;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {string}
>>>>>  */
>>>>> models.MyModel.prototype.get_labelText = function() {
>>>>>-      return this._labelText;
>>>>>+  return this._labelText;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {string} value
>>>>>  */
>>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>>-      if (value != this._labelText) {
>>>>>-              this._labelText = value;
>>>>>-              this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>-      }
>>>>>+  if (value != this._labelText) {
>>>>>+    this._labelText = value;
>>>>>+    this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>>"YHOO"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_strings = function() {
>>>>>-      return this._strings;
>>>>>+  return this._strings;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>>"Sydney", "Tokyo"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_cities = function() {
>>>>>-      return this._cities;
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+  return this._cities;
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>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 6923f67..3edfc62 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
>>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>>> goog.require('org.apache.flex.core.Application');
>>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.core.Application}
>>>>>  */
>>>>> wildcard_import = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  */
>>>>> wildcard_import.prototype.tmp = function() {
>>>>>-      var /** @type {Button} */ myButton;
>>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>>+  var /** @type {Button} */ myButton;
>>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>>> };
>>>>>-
>>>>>-
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>index 3168e0c..ace15bb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.
>>>>>js
>>>>>@@ -1,12 +1,12 @@
>>>>> goog.provide('Test');
>>>>>
>>>>> goog.require('classes.A');
>>>>>-
>>>>> goog.require('interfaces.IA');
>>>>> goog.require('interfaces.IE');
>>>>>-
>>>>> goog.require('org.apache.flex.utils.Language');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.A}
>>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>>  * @implements {interfaces.IE}
>>>>>  */
>>>>> Test = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>+  goog.base(this);
>>>>>+};
>>>>> goog.inherits(Test, classes.A);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index 48c2497..1df9f5d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>>
>>>>> goog.require('classes.C');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.C}
>>>>>  */
>>>>> classes.A = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>-goog.inherits(classes.A, classes.C);
>>>>>\ No newline at end of file
>>>>>+  goog.base(this);
>>>>>+};
>>>>>+goog.inherits(classes.A, classes.C);
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index d1fe335..3dd8adb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.B');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.B = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>index 7aa37e6..9c7bb13 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_re
>>>>>su
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.C');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.C = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>index 97b7e18..360c807 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>A_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>>
>>>>> goog.require('interfaces.IC');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.IC}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>>> interfaces.IA = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>index e50057d..611cfb6 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>B_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,5 +1,7 @@
>>>>> goog.provide('interfaces.IB');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>index db01166..35f794d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>C_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>>
>>>>> goog.require('interfaces.ID');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.ID}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>>> interfaces.IC = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>index d25c4a4..dfa6505 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>D_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.ID');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>index bb526de..c91f544 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/I
>>>>>E_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.IE');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmi
>>>>>tt
>>>>>er
>>>>>.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>index 5edb70b..e8a2e62 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>>> import java.util.Collection;
>>>>> import java.util.HashSet;
>>>>> import java.util.Iterator;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>> import java.util.Set;
>>>>>
>>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>>> import org.apache.flex.compiler.common.ASModifier;
>>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>>> import
>>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClass
>>>>>if
>>>>>ic
>>>>>ation;
>>>>>@@ -75,6 +78,7 @@ import
>>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     private ICompilerProject project;
>>>>>
>>>>>     @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>>     {
>>>>>         write(node.getName());
>>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>
>>>>>         project = getWalker().getProject();
>>>>>
>>>>>-        super.emitClass(node);
>>>>>+        IClassDefinition definition = node.getDefinition();
>>>>>+
>>>>>+        IFunctionDefinition ctorDefinition =
>>>>>definition.getConstructor();
>>>>>+
>>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>>+        if (ctorDefinition != null)
>>>>>+        {
>>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>>ctorDefinition.getNode();
>>>>>+            if (ctorNode != null)
>>>>>+            {
>>>>>+                // constructor
>>>>>+                emitMethod(ctorNode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else
>>>>>+            {
>>>>>+                String qname = definition.getQualifiedName();
>>>>>+                if (qname != null && !qname.equals(""))
>>>>>+                {
>>>>>+                    write(qname);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>>+                    writeNewline();
>>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>>+        {
>>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitField((IVariableNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>>+            {
>>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>>+                {
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+        }
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    {
>>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>>+        if (pnodes.length == 0)
>>>>>+            return;
>>>>>+
>>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>>+
>>>>>+        if (defaults != null)
>>>>>+        {
>>>>>+            final StringBuilder code = new StringBuilder();
>>>>>+
>>>>>+            if (!hasBody(node))
>>>>>+            {
>>>>>+                indentPush();
>>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>>+            }
>>>>>+
>>>>>+            List<IParameterNode> parameters = new
>>>>>ArrayList<IParameterNode>(
>>>>>+                    defaults.values());
>>>>>+
>>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>>+            {
>>>>>+                IParameterNode pnode = parameters.get(i);
>>>>>+
>>>>>+                if (pnode != null)
>>>>>+                {
>>>>>+                    code.setLength(0);
>>>>>+
>>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getDefaultValue());
>>>>>+
>>>>>code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>>+
>>>>>+                    write(code.toString());
>>>>>+
>>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>>+                        indentPop();
>>>>>+
>>>>>+                    writeNewline();
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>>     {
>>>>>         ASTNodeID id = node.getNodeID();
>>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>>ourselves
>>>>>
>>>>>+        boolean emitsRequires = false;
>>>>>         if (requiresList != null)
>>>>>         {
>>>>>             for (String imp : requiresList)
>>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+
>>>>>                     writtenInstances.add(imp);
>>>>>+
>>>>>+                    emitsRequires = true;
>>>>>                 }
>>>>>             }
>>>>>-
>>>>>-            if (requiresList.size() > 1
>>>>>-                    || (requiresList.size() == 1 &&
>>>>>requiresList.get(0).indexOf(
>>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>>-1))
>>>>>-            {
>>>>>-                writeNewline();
>>>>>-            }
>>>>>         }
>>>>>
>>>>>+        boolean emitsInterfaces = false;
>>>>>         if (interfacesList != null)
>>>>>         {
>>>>>             for (String imp : interfacesList)
>>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            }
>>>>>-
>>>>>-            if (interfacesList.size() > 0)
>>>>>-            {
>>>>>-                writeNewline();
>>>>>+
>>>>>+                emitsInterfaces = true;
>>>>>             }
>>>>>         }
>>>>>
>>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         //              'as' operators. We don't need to worry about
>>>>>requiring
>>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>>will NOT
>>>>>         //              include any of the code if it is not used in
>>>>>the
>>>>>project.
>>>>>-        if (flexProject.mainCU != null &&
>>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>>+
>>>>>cu.getName().equals(flexProject.mainCU.getName());
>>>>>+        if (isMainCU)
>>>>>         {
>>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+        }
>>>>>+
>>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>>+        {
>>>>>             writeNewline();
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             {
>>>>>                 writeNewline();
>>>>>                 writeNewline();
>>>>>+                writeNewline();
>>>>>                 getDoc().begin();
>>>>>                 getDoc().emitConst(null);
>>>>>                 getDoc().end();
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmi
>>>>>tt
>>>>>er
>>>>>Tokens.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>index 10ff880..53110c1 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/
>>>>>JS
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>@@ -27,6 +27,7 @@ import
>>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>>> {
>>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>>+    INDENT("  "),
>>>>>     INTERFACES("interfaces"),
>>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>>     UNDERSCORE("_"),
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter
>>>>>.j
>>>>>av
>>>>>a
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>index 30e70bb..dc039a9 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JS
>>>>>Go
>>>>>og
>>>>>Emitter.java
>>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         }
>>>>>     }
>>>>>
>>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>     {
>>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>>         if (pnodes.length == 0)
>>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>+    protected Map<Integer, IParameterNode>
>>>>>getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>     {
>>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>>IParameterNode>();
>>>>>         int i = 0;
>>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         return false;
>>>>>     }
>>>>>
>>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>>     {
>>>>>         IScopedNode scope = node.getScopedNode();
>>>>>         return scope.getChildCount() > 0;
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compi
>>>>>le
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJ
>>>>>SE
>>>>>mi
>>>>>tter.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>index 444b26a..cd7aad7 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexj
>>>>>s/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter
>>>>>implements
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>+    @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>
>>>>>//--------------------------------------------------------------------
>>>>>--
>>>>>--
>>>>>--
>>>>>
>>>>>     @Override
>>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter implements
>>>>>         if (project.mainCU != null &&
>>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>>         {
>>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            writeNewline();
>>>>>+
>>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     private void emitHeaderLine(String qname)
>>>>>
>>>>
>>>
>>>
>>>
>>>--
>>>Ix Multimedia Software
>>>
>>>Jan Luykenstraat 27
>>>3521 VB Utrecht
>>>
>>>T. 06-51952295
>>>I. www.ixsoftware.nl
>>
>
>
>
>--
>Ix Multimedia Software
>
>Jan Luykenstraat 27
>3521 VB Utrecht
>
>T. 06-51952295
>I. www.ixsoftware.nl


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
Yes, that's the one that I wrestled with the past couple of days. The
fix was to change a path to the latest flex-asjs... Peter renamed one
of the examples and the test uses a hard coded path to it.

EdB



On Tue, Nov 12, 2013 at 8:52 PM, Alex Harui <ah...@adobe.com> wrote:
> It's not picking up the goog.require("StockDataJSONItemConverter").
>
> I'm cleaning and rebuilding. Hopefully it will just go away.
>
> -Alex
>
> On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>
>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>What is the test complaining about?
>>
>>EdB
>>
>>
>>
>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>> I'm getting one failure in compiler.jx.tests in
>>>
>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppli
>>>ca
>>> tion
>>>
>>>
>>> Is it passing for others?
>>>
>>> -Alex
>>>
>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>> wrote:
>>>
>>>>Updated Branches:
>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 2bebadd..5ef10ba 100644
>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>  */
>>>> MyInitialView = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.lbl;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID0;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID1;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID2;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.timerLabel;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>-       */
>>>>-      this.cityList;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID3;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>-       */
>>>>-      this.$ID5;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID4;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>-       */
>>>>-      this.input;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID6;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>-       */
>>>>-      this.checkbox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID7;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID8;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID9;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID10;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID11;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID12;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>-       */
>>>>-      this.list;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID13;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID14;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>-       */
>>>>-      this.comboBox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID15;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.lbl;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID0;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID1;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID2;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.timerLabel;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>+   */
>>>>+  this.cityList;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID3;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>+   */
>>>>+  this.$ID5;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID4;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>+   */
>>>>+  this.input;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID6;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>+   */
>>>>+  this.checkbox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID7;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID8;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID9;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID10;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID11;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID12;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>+   */
>>>>+  this.list;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID13;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID14;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>+   */
>>>>+  this.comboBox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID15;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>
>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_symbol = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_city = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>>,
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>>,
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_inputText = function() {
>>>>-      return this.get_input().get_text();
>>>>+  return this.get_input().get_text();
>>>> };
>>>>
>>>> /**
>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>> };
>>>>
>>>> /**
>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>function() {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.start();
>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.start();
>>>> };
>>>>
>>>> /**
>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>function(event) {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>-
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>>;
>>>>+
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>>;
>>>> };
>>>>
>>>> /**
>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>function(event) {
>>>>  */
>>>> MyInitialView.prototype.$EH0 = function(event)
>>>> {
>>>>-      this.startTimer(event);
>>>>+  this.startTimer(event);
>>>> };
>>>>
>>>> /**
>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH1 = function(event)
>>>> {
>>>>-      this.timer.removeEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.stop();
>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.stop();
>>>> };
>>>>
>>>> /**
>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH2 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH3 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH4 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH5 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH6 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>  */
>>>> MyInitialView.prototype.get_lbl = function()
>>>> {
>>>>-      return this.lbl;
>>>>+  return this.lbl;
>>>> };
>>>>
>>>> /**
>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>  */
>>>> MyInitialView.prototype.set_lbl = function(value)
>>>> {
>>>>-      if (value != this.lbl)
>>>>-              this.lbl = value;
>>>>+  if (value != this.lbl)
>>>>+    this.lbl = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_timerLabel = function()
>>>> {
>>>>-      return this.timerLabel;
>>>>+  return this.timerLabel;
>>>> };
>>>>
>>>> /**
>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>  */
>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>> {
>>>>-      if (value != this.timerLabel)
>>>>-              this.timerLabel = value;
>>>>+  if (value != this.timerLabel)
>>>>+    this.timerLabel = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_cityList = function()
>>>> {
>>>>-      return this.cityList;
>>>>+  return this.cityList;
>>>> };
>>>>
>>>> /**
>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>  */
>>>> MyInitialView.prototype.set_cityList = function(value)
>>>> {
>>>>-      if (value != this.cityList)
>>>>-              this.cityList = value;
>>>>+  if (value != this.cityList)
>>>>+    this.cityList = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_input = function()
>>>> {
>>>>-      return this.input;
>>>>+  return this.input;
>>>> };
>>>>
>>>> /**
>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>  */
>>>> MyInitialView.prototype.set_input = function(value)
>>>> {
>>>>-      if (value != this.input)
>>>>-              this.input = value;
>>>>+  if (value != this.input)
>>>>+    this.input = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_checkbox = function()
>>>> {
>>>>-      return this.checkbox;
>>>>+  return this.checkbox;
>>>> };
>>>>
>>>> /**
>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>  */
>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>> {
>>>>-      if (value != this.checkbox)
>>>>-              this.checkbox = value;
>>>>+  if (value != this.checkbox)
>>>>+    this.checkbox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_list = function()
>>>> {
>>>>-      return this.list;
>>>>+  return this.list;
>>>> };
>>>>
>>>> /**
>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>  */
>>>> MyInitialView.prototype.set_list = function(value)
>>>> {
>>>>-      if (value != this.list)
>>>>-              this.list = value;
>>>>+  if (value != this.list)
>>>>+    this.list = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_comboBox = function()
>>>> {
>>>>-      return this.comboBox;
>>>>+  return this.comboBox;
>>>> };
>>>>
>>>> /**
>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>  */
>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>> {
>>>>-      if (value != this.comboBox)
>>>>-              this.comboBox = value;
>>>>+  if (value != this.comboBox)
>>>>+    this.comboBox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>> {
>>>>-      if (this.mxmldd == undefined)
>>>>-      {
>>>>-              /** @type {Array} */
>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>-              /** @type {Array} */
>>>>-              var data = [
>>>>+  if (this.mxmldd == undefined)
>>>>+  {
>>>>+    /** @type {Array} */
>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>+    /** @type {Array} */
>>>>+    var data = [
>>>> org.apache.flex.html.staticControls.Label,
>>>> 4,
>>>> 'id',
>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>>>'_id', true, '$ID15', 'source
>>>> this.$EH6,
>>>> null
>>>> ];
>>>>-
>>>>-              if (arr)
>>>>-                      this.mxmldd = arr.concat(data);
>>>>-              else
>>>>-                      this.mxmldd = data;
>>>>-      }
>>>>-      return this.mxmldd;
>>>>+
>>>>+    if (arr)
>>>>+      this.mxmldd = arr.concat(data);
>>>>+    else
>>>>+      this.mxmldd = data;
>>>>+  }
>>>>+  return this.mxmldd;
>>>> };
>>>>
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>index c80f220..36d2f14 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>@@ -1,110 +1,124 @@
>>>> goog.provide('controllers.MyController');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>  * @param {org.apache.flex.core.Application=} app
>>>>  */
>>>> controllers.MyController = function(app) {
>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>-      if (app) {
>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>-              app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler,
>>>>this));
>>>>-      }
>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>+  if (app) {
>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>+    app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryBegin =
>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fi
>>>>na
>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryEnd =
>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=js
>>>>on
>>>>";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {FlexJSTest_again}
>>>>  */
>>>> controllers.MyController.prototype.app;
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>{
>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>function(event) {
>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>-      this.app.get_service().send();
>>>>-      this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>+  this.app.get_service().send();
>>>>+  this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>>on
>>>>().getItemAt(0), String));
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>>on
>>>>().getItemAt(0), String));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.listChangedHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.transferClickHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {Object} document
>>>>  * @param {string=} id
>>>>  */
>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>id) {
>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>-      this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>+  this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 38422d6..eb9c7a2 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
>>>>@@ -1,63 +1,72 @@
>>>> goog.provide('models.MyModel');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>  */
>>>> models.MyModel = function() {
>>>>-      goog.base(this);
>>>>+  goog.base(this);
>>>> }
>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> models.MyModel.prototype._labelText;
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {string}
>>>>  */
>>>> models.MyModel.prototype.get_labelText = function() {
>>>>-      return this._labelText;
>>>>+  return this._labelText;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {string} value
>>>>  */
>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>-      if (value != this._labelText) {
>>>>-              this._labelText = value;
>>>>-              this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>-      }
>>>>+  if (value != this._labelText) {
>>>>+    this._labelText = value;
>>>>+    this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>"YHOO"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_strings = function() {
>>>>-      return this._strings;
>>>>+  return this._strings;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>"Sydney", "Tokyo"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_cities = function() {
>>>>-      return this._cities;
>>>>-};
>>>>\ No newline at end of file
>>>>+  return this._cities;
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 6923f67..3edfc62 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
>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>> goog.require('org.apache.flex.core.Application');
>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.core.Application}
>>>>  */
>>>> wildcard_import = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  */
>>>> wildcard_import.prototype.tmp = function() {
>>>>-      var /** @type {Button} */ myButton;
>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>+  var /** @type {Button} */ myButton;
>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>> };
>>>>-
>>>>-
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>index 3168e0c..ace15bb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>@@ -1,12 +1,12 @@
>>>> goog.provide('Test');
>>>>
>>>> goog.require('classes.A');
>>>>-
>>>> goog.require('interfaces.IA');
>>>> goog.require('interfaces.IE');
>>>>-
>>>> goog.require('org.apache.flex.utils.Language');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.A}
>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>  * @implements {interfaces.IE}
>>>>  */
>>>> Test = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>+  goog.base(this);
>>>>+};
>>>> goog.inherits(Test, classes.A);
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>index 48c2497..1df9f5d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>
>>>> goog.require('classes.C');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.C}
>>>>  */
>>>> classes.A = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>-goog.inherits(classes.A, classes.C);
>>>>\ No newline at end of file
>>>>+  goog.base(this);
>>>>+};
>>>>+goog.inherits(classes.A, classes.C);
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>index d1fe335..3dd8adb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.B');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.B = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>index 7aa37e6..9c7bb13 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.C');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.C = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>index 97b7e18..360c807 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>
>>>> goog.require('interfaces.IC');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.IC}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>> interfaces.IA = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>index e50057d..611cfb6 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>@@ -1,5 +1,7 @@
>>>> goog.provide('interfaces.IB');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>index db01166..35f794d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>
>>>> goog.require('interfaces.ID');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.ID}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>> interfaces.IC = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>index d25c4a4..dfa6505 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.ID');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>index bb526de..c91f544 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.IE');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>>er
>>>>.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>index 5edb70b..e8a2e62 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>> import java.util.Collection;
>>>> import java.util.HashSet;
>>>> import java.util.Iterator;
>>>>+import java.util.List;
>>>>+import java.util.Map;
>>>> import java.util.Set;
>>>>
>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>> import org.apache.flex.compiler.common.ASModifier;
>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>> import
>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassif
>>>>ic
>>>>ation;
>>>>@@ -75,6 +78,7 @@ import
>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     private ICompilerProject project;
>>>>
>>>>     @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>     {
>>>>         write(node.getName());
>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>
>>>>         project = getWalker().getProject();
>>>>
>>>>-        super.emitClass(node);
>>>>+        IClassDefinition definition = node.getDefinition();
>>>>+
>>>>+        IFunctionDefinition ctorDefinition =
>>>>definition.getConstructor();
>>>>+
>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>+        if (ctorDefinition != null)
>>>>+        {
>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>ctorDefinition.getNode();
>>>>+            if (ctorNode != null)
>>>>+            {
>>>>+                // constructor
>>>>+                emitMethod(ctorNode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else
>>>>+            {
>>>>+                String qname = definition.getQualifiedName();
>>>>+                if (qname != null && !qname.equals(""))
>>>>+                {
>>>>+                    write(qname);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>+                    writeNewline();
>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+
>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>+        {
>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitField((IVariableNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>+            {
>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>+                {
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+        }
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     }
>>>>
>>>>     @Override
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    {
>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>+        if (pnodes.length == 0)
>>>>+            return;
>>>>+
>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>+
>>>>+        if (defaults != null)
>>>>+        {
>>>>+            final StringBuilder code = new StringBuilder();
>>>>+
>>>>+            if (!hasBody(node))
>>>>+            {
>>>>+                indentPush();
>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>+            }
>>>>+
>>>>+            List<IParameterNode> parameters = new
>>>>ArrayList<IParameterNode>(
>>>>+                    defaults.values());
>>>>+
>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>+            {
>>>>+                IParameterNode pnode = parameters.get(i);
>>>>+
>>>>+                if (pnode != null)
>>>>+                {
>>>>+                    code.setLength(0);
>>>>+
>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getDefaultValue());
>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>+
>>>>+                    write(code.toString());
>>>>+
>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>+                        indentPop();
>>>>+
>>>>+                    writeNewline();
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>     {
>>>>         ASTNodeID id = node.getNodeID();
>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>ourselves
>>>>
>>>>+        boolean emitsRequires = false;
>>>>         if (requiresList != null)
>>>>         {
>>>>             for (String imp : requiresList)
>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+
>>>>                     writtenInstances.add(imp);
>>>>+
>>>>+                    emitsRequires = true;
>>>>                 }
>>>>             }
>>>>-
>>>>-            if (requiresList.size() > 1
>>>>-                    || (requiresList.size() == 1 &&
>>>>requiresList.get(0).indexOf(
>>>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>>>-            {
>>>>-                writeNewline();
>>>>-            }
>>>>         }
>>>>
>>>>+        boolean emitsInterfaces = false;
>>>>         if (interfacesList != null)
>>>>         {
>>>>             for (String imp : interfacesList)
>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            }
>>>>-
>>>>-            if (interfacesList.size() > 0)
>>>>-            {
>>>>-                writeNewline();
>>>>+
>>>>+                emitsInterfaces = true;
>>>>             }
>>>>         }
>>>>
>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         //              'as' operators. We don't need to worry about
>>>>requiring
>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>will NOT
>>>>         //              include any of the code if it is not used in
>>>>the
>>>>project.
>>>>-        if (flexProject.mainCU != null &&
>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>+        if (isMainCU)
>>>>         {
>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+        }
>>>>+
>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>+        {
>>>>             writeNewline();
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             {
>>>>                 writeNewline();
>>>>                 writeNewline();
>>>>+                writeNewline();
>>>>                 getDoc().begin();
>>>>                 getDoc().emitConst(null);
>>>>                 getDoc().end();
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>>er
>>>>Tokens.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>index 10ff880..53110c1 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>@@ -27,6 +27,7 @@ import
>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>> {
>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>+    INDENT("  "),
>>>>     INTERFACES("interfaces"),
>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>     UNDERSCORE("_"),
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.j
>>>>av
>>>>a
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>index 30e70bb..dc039a9 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         }
>>>>     }
>>>>
>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>     {
>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>         if (pnodes.length == 0)
>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         super(out);
>>>>     }
>>>>
>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>     {
>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>IParameterNode>();
>>>>         int i = 0;
>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         return false;
>>>>     }
>>>>
>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>     {
>>>>         IScopedNode scope = node.getScopedNode();
>>>>         return scope.getChildCount() > 0;
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSE
>>>>mi
>>>>tter.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>index 444b26a..cd7aad7 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>implements
>>>>         super(out);
>>>>     }
>>>>
>>>>+    @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>
>>>>//----------------------------------------------------------------------
>>>>--
>>>>--
>>>>
>>>>     @Override
>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>MXMLEmitter implements
>>>>         if (project.mainCU != null &&
>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>         {
>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            writeNewline();
>>>>+
>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     private void emitHeaderLine(String qname)
>>>>
>>>
>>
>>
>>
>>--
>>Ix Multimedia Software
>>
>>Jan Luykenstraat 27
>>3521 VB Utrecht
>>
>>T. 06-51952295
>>I. www.ixsoftware.nl
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
Yes, that's the one that I wrestled with the past couple of days. The
fix was to change a path to the latest flex-asjs... Peter renamed one
of the examples and the test uses a hard coded path to it.

EdB



On Tue, Nov 12, 2013 at 8:52 PM, Alex Harui <ah...@adobe.com> wrote:
> It's not picking up the goog.require("StockDataJSONItemConverter").
>
> I'm cleaning and rebuilding. Hopefully it will just go away.
>
> -Alex
>
> On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>
>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>What is the test complaining about?
>>
>>EdB
>>
>>
>>
>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>> I'm getting one failure in compiler.jx.tests in
>>>
>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppli
>>>ca
>>> tion
>>>
>>>
>>> Is it passing for others?
>>>
>>> -Alex
>>>
>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>> wrote:
>>>
>>>>Updated Branches:
>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 2bebadd..5ef10ba 100644
>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>  */
>>>> MyInitialView = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.lbl;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID0;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID1;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID2;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.timerLabel;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>-       */
>>>>-      this.cityList;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID3;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>-       */
>>>>-      this.$ID5;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID4;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>-       */
>>>>-      this.input;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID6;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>-       */
>>>>-      this.checkbox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID7;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID8;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID9;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID10;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID11;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID12;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>-       */
>>>>-      this.list;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID13;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID14;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>-       */
>>>>-      this.comboBox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID15;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.lbl;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID0;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID1;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID2;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.timerLabel;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>+   */
>>>>+  this.cityList;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID3;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>+   */
>>>>+  this.$ID5;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID4;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>+   */
>>>>+  this.input;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID6;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>+   */
>>>>+  this.checkbox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID7;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID8;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID9;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID10;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID11;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID12;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>+   */
>>>>+  this.list;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID13;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID14;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>+   */
>>>>+  this.comboBox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID15;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>
>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_symbol = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_city = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>>,
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>>,
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_inputText = function() {
>>>>-      return this.get_input().get_text();
>>>>+  return this.get_input().get_text();
>>>> };
>>>>
>>>> /**
>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>> };
>>>>
>>>> /**
>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>function() {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.start();
>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.start();
>>>> };
>>>>
>>>> /**
>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>function(event) {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>-
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>>;
>>>>+
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>>;
>>>> };
>>>>
>>>> /**
>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>function(event) {
>>>>  */
>>>> MyInitialView.prototype.$EH0 = function(event)
>>>> {
>>>>-      this.startTimer(event);
>>>>+  this.startTimer(event);
>>>> };
>>>>
>>>> /**
>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH1 = function(event)
>>>> {
>>>>-      this.timer.removeEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.stop();
>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.stop();
>>>> };
>>>>
>>>> /**
>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH2 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH3 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH4 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH5 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH6 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>  */
>>>> MyInitialView.prototype.get_lbl = function()
>>>> {
>>>>-      return this.lbl;
>>>>+  return this.lbl;
>>>> };
>>>>
>>>> /**
>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>  */
>>>> MyInitialView.prototype.set_lbl = function(value)
>>>> {
>>>>-      if (value != this.lbl)
>>>>-              this.lbl = value;
>>>>+  if (value != this.lbl)
>>>>+    this.lbl = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_timerLabel = function()
>>>> {
>>>>-      return this.timerLabel;
>>>>+  return this.timerLabel;
>>>> };
>>>>
>>>> /**
>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>  */
>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>> {
>>>>-      if (value != this.timerLabel)
>>>>-              this.timerLabel = value;
>>>>+  if (value != this.timerLabel)
>>>>+    this.timerLabel = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_cityList = function()
>>>> {
>>>>-      return this.cityList;
>>>>+  return this.cityList;
>>>> };
>>>>
>>>> /**
>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>  */
>>>> MyInitialView.prototype.set_cityList = function(value)
>>>> {
>>>>-      if (value != this.cityList)
>>>>-              this.cityList = value;
>>>>+  if (value != this.cityList)
>>>>+    this.cityList = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_input = function()
>>>> {
>>>>-      return this.input;
>>>>+  return this.input;
>>>> };
>>>>
>>>> /**
>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>  */
>>>> MyInitialView.prototype.set_input = function(value)
>>>> {
>>>>-      if (value != this.input)
>>>>-              this.input = value;
>>>>+  if (value != this.input)
>>>>+    this.input = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_checkbox = function()
>>>> {
>>>>-      return this.checkbox;
>>>>+  return this.checkbox;
>>>> };
>>>>
>>>> /**
>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>  */
>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>> {
>>>>-      if (value != this.checkbox)
>>>>-              this.checkbox = value;
>>>>+  if (value != this.checkbox)
>>>>+    this.checkbox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_list = function()
>>>> {
>>>>-      return this.list;
>>>>+  return this.list;
>>>> };
>>>>
>>>> /**
>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>  */
>>>> MyInitialView.prototype.set_list = function(value)
>>>> {
>>>>-      if (value != this.list)
>>>>-              this.list = value;
>>>>+  if (value != this.list)
>>>>+    this.list = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_comboBox = function()
>>>> {
>>>>-      return this.comboBox;
>>>>+  return this.comboBox;
>>>> };
>>>>
>>>> /**
>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>  */
>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>> {
>>>>-      if (value != this.comboBox)
>>>>-              this.comboBox = value;
>>>>+  if (value != this.comboBox)
>>>>+    this.comboBox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>> {
>>>>-      if (this.mxmldd == undefined)
>>>>-      {
>>>>-              /** @type {Array} */
>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>-              /** @type {Array} */
>>>>-              var data = [
>>>>+  if (this.mxmldd == undefined)
>>>>+  {
>>>>+    /** @type {Array} */
>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>+    /** @type {Array} */
>>>>+    var data = [
>>>> org.apache.flex.html.staticControls.Label,
>>>> 4,
>>>> 'id',
>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>>>'_id', true, '$ID15', 'source
>>>> this.$EH6,
>>>> null
>>>> ];
>>>>-
>>>>-              if (arr)
>>>>-                      this.mxmldd = arr.concat(data);
>>>>-              else
>>>>-                      this.mxmldd = data;
>>>>-      }
>>>>-      return this.mxmldd;
>>>>+
>>>>+    if (arr)
>>>>+      this.mxmldd = arr.concat(data);
>>>>+    else
>>>>+      this.mxmldd = data;
>>>>+  }
>>>>+  return this.mxmldd;
>>>> };
>>>>
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>index c80f220..36d2f14 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>>ul
>>>>t.js
>>>>@@ -1,110 +1,124 @@
>>>> goog.provide('controllers.MyController');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>  * @param {org.apache.flex.core.Application=} app
>>>>  */
>>>> controllers.MyController = function(app) {
>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>-      if (app) {
>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>-              app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler,
>>>>this));
>>>>-      }
>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>+  if (app) {
>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>+    app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryBegin =
>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fi
>>>>na
>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryEnd =
>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=js
>>>>on
>>>>";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {FlexJSTest_again}
>>>>  */
>>>> controllers.MyController.prototype.app;
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>{
>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>function(event) {
>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>-      this.app.get_service().send();
>>>>-      this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>+  this.app.get_service().send();
>>>>+  this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>>on
>>>>().getItemAt(0), String));
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>>on
>>>>().getItemAt(0), String));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.listChangedHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.transferClickHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {Object} document
>>>>  * @param {string=} id
>>>>  */
>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>id) {
>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>-      this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>+  this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 38422d6..eb9c7a2 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
>>>>@@ -1,63 +1,72 @@
>>>> goog.provide('models.MyModel');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>  */
>>>> models.MyModel = function() {
>>>>-      goog.base(this);
>>>>+  goog.base(this);
>>>> }
>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> models.MyModel.prototype._labelText;
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {string}
>>>>  */
>>>> models.MyModel.prototype.get_labelText = function() {
>>>>-      return this._labelText;
>>>>+  return this._labelText;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {string} value
>>>>  */
>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>-      if (value != this._labelText) {
>>>>-              this._labelText = value;
>>>>-              this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>-      }
>>>>+  if (value != this._labelText) {
>>>>+    this._labelText = value;
>>>>+    this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>"YHOO"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_strings = function() {
>>>>-      return this._strings;
>>>>+  return this._strings;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>"Sydney", "Tokyo"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_cities = function() {
>>>>-      return this._cities;
>>>>-};
>>>>\ No newline at end of file
>>>>+  return this._cities;
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>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 6923f67..3edfc62 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
>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>> goog.require('org.apache.flex.core.Application');
>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.core.Application}
>>>>  */
>>>> wildcard_import = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  */
>>>> wildcard_import.prototype.tmp = function() {
>>>>-      var /** @type {Button} */ myButton;
>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>+  var /** @type {Button} */ myButton;
>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>> };
>>>>-
>>>>-
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>index 3168e0c..ace15bb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>@@ -1,12 +1,12 @@
>>>> goog.provide('Test');
>>>>
>>>> goog.require('classes.A');
>>>>-
>>>> goog.require('interfaces.IA');
>>>> goog.require('interfaces.IE');
>>>>-
>>>> goog.require('org.apache.flex.utils.Language');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.A}
>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>  * @implements {interfaces.IE}
>>>>  */
>>>> Test = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>+  goog.base(this);
>>>>+};
>>>> goog.inherits(Test, classes.A);
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>index 48c2497..1df9f5d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>>lt
>>>>.js
>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>
>>>> goog.require('classes.C');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.C}
>>>>  */
>>>> classes.A = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>-goog.inherits(classes.A, classes.C);
>>>>\ No newline at end of file
>>>>+  goog.base(this);
>>>>+};
>>>>+goog.inherits(classes.A, classes.C);
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>index d1fe335..3dd8adb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.B');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.B = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>index 7aa37e6..9c7bb13 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.C');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.C = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>index 97b7e18..360c807 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>
>>>> goog.require('interfaces.IC');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.IC}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>> interfaces.IA = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>index e50057d..611cfb6 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>>re
>>>>sult.js
>>>>@@ -1,5 +1,7 @@
>>>> goog.provide('interfaces.IB');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>index db01166..35f794d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>
>>>> goog.require('interfaces.ID');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.ID}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>> interfaces.IC = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>index d25c4a4..dfa6505 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.ID');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>index bb526de..c91f544 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.IE');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>>er
>>>>.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>index 5edb70b..e8a2e62 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitter.java
>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>> import java.util.Collection;
>>>> import java.util.HashSet;
>>>> import java.util.Iterator;
>>>>+import java.util.List;
>>>>+import java.util.Map;
>>>> import java.util.Set;
>>>>
>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>> import org.apache.flex.compiler.common.ASModifier;
>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>> import
>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassif
>>>>ic
>>>>ation;
>>>>@@ -75,6 +78,7 @@ import
>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     private ICompilerProject project;
>>>>
>>>>     @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>     {
>>>>         write(node.getName());
>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>
>>>>         project = getWalker().getProject();
>>>>
>>>>-        super.emitClass(node);
>>>>+        IClassDefinition definition = node.getDefinition();
>>>>+
>>>>+        IFunctionDefinition ctorDefinition =
>>>>definition.getConstructor();
>>>>+
>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>+        if (ctorDefinition != null)
>>>>+        {
>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>ctorDefinition.getNode();
>>>>+            if (ctorNode != null)
>>>>+            {
>>>>+                // constructor
>>>>+                emitMethod(ctorNode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else
>>>>+            {
>>>>+                String qname = definition.getQualifiedName();
>>>>+                if (qname != null && !qname.equals(""))
>>>>+                {
>>>>+                    write(qname);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>+                    writeNewline();
>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+
>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>+        {
>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitField((IVariableNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>+            {
>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>+                {
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+        }
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     }
>>>>
>>>>     @Override
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    {
>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>+        if (pnodes.length == 0)
>>>>+            return;
>>>>+
>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>+
>>>>+        if (defaults != null)
>>>>+        {
>>>>+            final StringBuilder code = new StringBuilder();
>>>>+
>>>>+            if (!hasBody(node))
>>>>+            {
>>>>+                indentPush();
>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>+            }
>>>>+
>>>>+            List<IParameterNode> parameters = new
>>>>ArrayList<IParameterNode>(
>>>>+                    defaults.values());
>>>>+
>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>+            {
>>>>+                IParameterNode pnode = parameters.get(i);
>>>>+
>>>>+                if (pnode != null)
>>>>+                {
>>>>+                    code.setLength(0);
>>>>+
>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getDefaultValue());
>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>+
>>>>+                    write(code.toString());
>>>>+
>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>+                        indentPop();
>>>>+
>>>>+                    writeNewline();
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>     {
>>>>         ASTNodeID id = node.getNodeID();
>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>ourselves
>>>>
>>>>+        boolean emitsRequires = false;
>>>>         if (requiresList != null)
>>>>         {
>>>>             for (String imp : requiresList)
>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+
>>>>                     writtenInstances.add(imp);
>>>>+
>>>>+                    emitsRequires = true;
>>>>                 }
>>>>             }
>>>>-
>>>>-            if (requiresList.size() > 1
>>>>-                    || (requiresList.size() == 1 &&
>>>>requiresList.get(0).indexOf(
>>>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>>>-            {
>>>>-                writeNewline();
>>>>-            }
>>>>         }
>>>>
>>>>+        boolean emitsInterfaces = false;
>>>>         if (interfacesList != null)
>>>>         {
>>>>             for (String imp : interfacesList)
>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            }
>>>>-
>>>>-            if (interfacesList.size() > 0)
>>>>-            {
>>>>-                writeNewline();
>>>>+
>>>>+                emitsInterfaces = true;
>>>>             }
>>>>         }
>>>>
>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         //              'as' operators. We don't need to worry about
>>>>requiring
>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>will NOT
>>>>         //              include any of the code if it is not used in
>>>>the
>>>>project.
>>>>-        if (flexProject.mainCU != null &&
>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>+        if (isMainCU)
>>>>         {
>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+        }
>>>>+
>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>+        {
>>>>             writeNewline();
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             {
>>>>                 writeNewline();
>>>>                 writeNewline();
>>>>+                writeNewline();
>>>>                 getDoc().begin();
>>>>                 getDoc().emitConst(null);
>>>>                 getDoc().end();
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>>er
>>>>Tokens.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>index 10ff880..53110c1 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>@@ -27,6 +27,7 @@ import
>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>> {
>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>+    INDENT("  "),
>>>>     INTERFACES("interfaces"),
>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>     UNDERSCORE("_"),
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.j
>>>>av
>>>>a
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>index 30e70bb..dc039a9 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>>og
>>>>Emitter.java
>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         }
>>>>     }
>>>>
>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>     {
>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>         if (pnodes.length == 0)
>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         super(out);
>>>>     }
>>>>
>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>     {
>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>IParameterNode>();
>>>>         int i = 0;
>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         return false;
>>>>     }
>>>>
>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>     {
>>>>         IScopedNode scope = node.getScopedNode();
>>>>         return scope.getChildCount() > 0;
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSE
>>>>mi
>>>>tter.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>index 444b26a..cd7aad7 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>implements
>>>>         super(out);
>>>>     }
>>>>
>>>>+    @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>
>>>>//----------------------------------------------------------------------
>>>>--
>>>>--
>>>>
>>>>     @Override
>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>MXMLEmitter implements
>>>>         if (project.mainCU != null &&
>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>         {
>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            writeNewline();
>>>>+
>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     private void emitHeaderLine(String qname)
>>>>
>>>
>>
>>
>>
>>--
>>Ix Multimedia Software
>>
>>Jan Luykenstraat 27
>>3521 VB Utrecht
>>
>>T. 06-51952295
>>I. www.ixsoftware.nl
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
Yes, one TODO, the compiler.jx build doesn't failonerror for the tests.

Silly question, but did you pull the latests flex-asjs and do an 'ant
wipe-all all' on the entire flex-falcon project?

EdB



On Tue, Nov 12, 2013 at 9:03 PM, Alex Harui <ah...@adobe.com> wrote:
> Still failing after clean.  Interesting, the test says FAILED, but from
> the command-line it still thinks the build succeeded.  But Eclipse
> definitely knows it failed.
>
> I guess I'll have to dig into it.
>
> -Alex
>
> On 11/12/13 11:52 AM, "Alex Harui" <ah...@adobe.com> wrote:
>
>>It's not picking up the goog.require("StockDataJSONItemConverter").
>>
>>I'm cleaning and rebuilding. Hopefully it will just go away.
>>
>>-Alex
>>
>>On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>>
>>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>>What is the test complaining about?
>>>
>>>EdB
>>>
>>>
>>>
>>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>>> I'm getting one failure in compiler.jx.tests in
>>>>
>>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppl
>>>>i
>>>>ca
>>>> tion
>>>>
>>>>
>>>> Is it passing for others?
>>>>
>>>> -Alex
>>>>
>>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>>> wrote:
>>>>
>>>>>Updated Branches:
>>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 2bebadd..5ef10ba 100644
>>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>>  */
>>>>> MyInitialView = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.lbl;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID0;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID1;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID2;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.timerLabel;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>>-       */
>>>>>-      this.cityList;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID3;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>-       */
>>>>>-      this.$ID5;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID4;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>-       */
>>>>>-      this.input;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID6;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>-       */
>>>>>-      this.checkbox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID7;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID8;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID9;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID10;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID11;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID12;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>-       */
>>>>>-      this.list;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID13;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID14;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>-       */
>>>>>-      this.comboBox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID15;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.lbl;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID0;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID1;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID2;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.timerLabel;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>>+   */
>>>>>+  this.cityList;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID3;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>+   */
>>>>>+  this.$ID5;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID4;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>+   */
>>>>>+  this.input;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID6;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>+   */
>>>>>+  this.checkbox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID7;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID8;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID9;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID10;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID11;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID12;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>+   */
>>>>>+  this.list;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID13;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID14;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>+   */
>>>>>+  this.comboBox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID15;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>>
>>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_symbol = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_city = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>>)
>>>>>,
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>>)
>>>>>,
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_inputText = function() {
>>>>>-      return this.get_input().get_text();
>>>>>+  return this.get_input().get_text();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function()
>>>>>{
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>>function() {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>-      this.timer.addEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.start();
>>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.start();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>>function(event) {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>>-
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>>)
>>>>>;
>>>>>+
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>>)
>>>>>;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>>function(event) {
>>>>>  */
>>>>> MyInitialView.prototype.$EH0 = function(event)
>>>>> {
>>>>>-      this.startTimer(event);
>>>>>+  this.startTimer(event);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH1 = function(event)
>>>>> {
>>>>>-      this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.stop();
>>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.stop();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH2 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH3 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH4 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH5 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH6 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.get_lbl = function()
>>>>> {
>>>>>-      return this.lbl;
>>>>>+  return this.lbl;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_lbl = function(value)
>>>>> {
>>>>>-      if (value != this.lbl)
>>>>>-              this.lbl = value;
>>>>>+  if (value != this.lbl)
>>>>>+    this.lbl = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_timerLabel = function()
>>>>> {
>>>>>-      return this.timerLabel;
>>>>>+  return this.timerLabel;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>>> {
>>>>>-      if (value != this.timerLabel)
>>>>>-              this.timerLabel = value;
>>>>>+  if (value != this.timerLabel)
>>>>>+    this.timerLabel = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_cityList = function()
>>>>> {
>>>>>-      return this.cityList;
>>>>>+  return this.cityList;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_cityList = function(value)
>>>>> {
>>>>>-      if (value != this.cityList)
>>>>>-              this.cityList = value;
>>>>>+  if (value != this.cityList)
>>>>>+    this.cityList = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_input = function()
>>>>> {
>>>>>-      return this.input;
>>>>>+  return this.input;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_input = function(value)
>>>>> {
>>>>>-      if (value != this.input)
>>>>>-              this.input = value;
>>>>>+  if (value != this.input)
>>>>>+    this.input = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_checkbox = function()
>>>>> {
>>>>>-      return this.checkbox;
>>>>>+  return this.checkbox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>>> {
>>>>>-      if (value != this.checkbox)
>>>>>-              this.checkbox = value;
>>>>>+  if (value != this.checkbox)
>>>>>+    this.checkbox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_list = function()
>>>>> {
>>>>>-      return this.list;
>>>>>+  return this.list;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_list = function(value)
>>>>> {
>>>>>-      if (value != this.list)
>>>>>-              this.list = value;
>>>>>+  if (value != this.list)
>>>>>+    this.list = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBox = function()
>>>>> {
>>>>>-      return this.comboBox;
>>>>>+  return this.comboBox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>>> {
>>>>>-      if (value != this.comboBox)
>>>>>-              this.comboBox = value;
>>>>>+  if (value != this.comboBox)
>>>>>+    this.comboBox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>>> {
>>>>>-      if (this.mxmldd == undefined)
>>>>>-      {
>>>>>-              /** @type {Array} */
>>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>-              /** @type {Array} */
>>>>>-              var data = [
>>>>>+  if (this.mxmldd == undefined)
>>>>>+  {
>>>>>+    /** @type {Array} */
>>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>+    /** @type {Array} */
>>>>>+    var data = [
>>>>> org.apache.flex.html.staticControls.Label,
>>>>> 4,
>>>>> 'id',
>>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>>4,
>>>>>'_id', true, '$ID15', 'source
>>>>> this.$EH6,
>>>>> null
>>>>> ];
>>>>>-
>>>>>-              if (arr)
>>>>>-                      this.mxmldd = arr.concat(data);
>>>>>-              else
>>>>>-                      this.mxmldd = data;
>>>>>-      }
>>>>>-      return this.mxmldd;
>>>>>+
>>>>>+    if (arr)
>>>>>+      this.mxmldd = arr.concat(data);
>>>>>+    else
>>>>>+      this.mxmldd = data;
>>>>>+  }
>>>>>+  return this.mxmldd;
>>>>> };
>>>>>
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>index c80f220..36d2f14 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>@@ -1,110 +1,124 @@
>>>>> goog.provide('controllers.MyController');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>>  * @param {org.apache.flex.core.Application=} app
>>>>>  */
>>>>> controllers.MyController = function(app) {
>>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>>-      if (app) {
>>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>-              app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler,
>>>>>this));
>>>>>-      }
>>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>>+  if (app) {
>>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>+    app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryBegin =
>>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.f
>>>>>i
>>>>>na
>>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryEnd =
>>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=j
>>>>>s
>>>>>on
>>>>>";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {FlexJSTest_again}
>>>>>  */
>>>>> controllers.MyController.prototype.app;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>>{
>>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>>function(event) {
>>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>-      this.app.get_service().send();
>>>>>-      this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>+  this.app.get_service().send();
>>>>>+  this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>>i
>>>>>on
>>>>>().getItemAt(0), String));
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>>i
>>>>>on
>>>>>().getItemAt(0), String));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.listChangedHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.transferClickHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {Object} document
>>>>>  * @param {string=} id
>>>>>  */
>>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>>id) {
>>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>-      this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>+  this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 38422d6..eb9c7a2 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
>>>>>@@ -1,63 +1,72 @@
>>>>> goog.provide('models.MyModel');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>>  */
>>>>> models.MyModel = function() {
>>>>>-      goog.base(this);
>>>>>+  goog.base(this);
>>>>> }
>>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> models.MyModel.prototype._labelText;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {string}
>>>>>  */
>>>>> models.MyModel.prototype.get_labelText = function() {
>>>>>-      return this._labelText;
>>>>>+  return this._labelText;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {string} value
>>>>>  */
>>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>>-      if (value != this._labelText) {
>>>>>-              this._labelText = value;
>>>>>-              this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>-      }
>>>>>+  if (value != this._labelText) {
>>>>>+    this._labelText = value;
>>>>>+    this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>>"YHOO"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_strings = function() {
>>>>>-      return this._strings;
>>>>>+  return this._strings;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>>"Sydney", "Tokyo"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_cities = function() {
>>>>>-      return this._cities;
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+  return this._cities;
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 6923f67..3edfc62 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
>>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>>> goog.require('org.apache.flex.core.Application');
>>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.core.Application}
>>>>>  */
>>>>> wildcard_import = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  */
>>>>> wildcard_import.prototype.tmp = function() {
>>>>>-      var /** @type {Button} */ myButton;
>>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>>+  var /** @type {Button} */ myButton;
>>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>>> };
>>>>>-
>>>>>-
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>index 3168e0c..ace15bb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>@@ -1,12 +1,12 @@
>>>>> goog.provide('Test');
>>>>>
>>>>> goog.require('classes.A');
>>>>>-
>>>>> goog.require('interfaces.IA');
>>>>> goog.require('interfaces.IE');
>>>>>-
>>>>> goog.require('org.apache.flex.utils.Language');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.A}
>>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>>  * @implements {interfaces.IE}
>>>>>  */
>>>>> Test = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>+  goog.base(this);
>>>>>+};
>>>>> goog.inherits(Test, classes.A);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index 48c2497..1df9f5d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>>
>>>>> goog.require('classes.C');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.C}
>>>>>  */
>>>>> classes.A = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>-goog.inherits(classes.A, classes.C);
>>>>>\ No newline at end of file
>>>>>+  goog.base(this);
>>>>>+};
>>>>>+goog.inherits(classes.A, classes.C);
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index d1fe335..3dd8adb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.B');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.B = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index 7aa37e6..9c7bb13 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.C');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.C = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index 97b7e18..360c807 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>>
>>>>> goog.require('interfaces.IC');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.IC}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>>> interfaces.IA = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index e50057d..611cfb6 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,5 +1,7 @@
>>>>> goog.provide('interfaces.IB');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index db01166..35f794d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>>
>>>>> goog.require('interfaces.ID');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.ID}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>>> interfaces.IC = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index d25c4a4..dfa6505 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.ID');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index bb526de..c91f544 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.IE');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>>t
>>>>>er
>>>>>.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>index 5edb70b..e8a2e62 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>>> import java.util.Collection;
>>>>> import java.util.HashSet;
>>>>> import java.util.Iterator;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>> import java.util.Set;
>>>>>
>>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>>> import org.apache.flex.compiler.common.ASModifier;
>>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>>> import
>>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassi
>>>>>f
>>>>>ic
>>>>>ation;
>>>>>@@ -75,6 +78,7 @@ import
>>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     private ICompilerProject project;
>>>>>
>>>>>     @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>>     {
>>>>>         write(node.getName());
>>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>
>>>>>         project = getWalker().getProject();
>>>>>
>>>>>-        super.emitClass(node);
>>>>>+        IClassDefinition definition = node.getDefinition();
>>>>>+
>>>>>+        IFunctionDefinition ctorDefinition =
>>>>>definition.getConstructor();
>>>>>+
>>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>>+        if (ctorDefinition != null)
>>>>>+        {
>>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>>ctorDefinition.getNode();
>>>>>+            if (ctorNode != null)
>>>>>+            {
>>>>>+                // constructor
>>>>>+                emitMethod(ctorNode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else
>>>>>+            {
>>>>>+                String qname = definition.getQualifiedName();
>>>>>+                if (qname != null && !qname.equals(""))
>>>>>+                {
>>>>>+                    write(qname);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>>+                    writeNewline();
>>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>>+        {
>>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitField((IVariableNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>>+            {
>>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>>+                {
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+        }
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    {
>>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>>+        if (pnodes.length == 0)
>>>>>+            return;
>>>>>+
>>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>>+
>>>>>+        if (defaults != null)
>>>>>+        {
>>>>>+            final StringBuilder code = new StringBuilder();
>>>>>+
>>>>>+            if (!hasBody(node))
>>>>>+            {
>>>>>+                indentPush();
>>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>>+            }
>>>>>+
>>>>>+            List<IParameterNode> parameters = new
>>>>>ArrayList<IParameterNode>(
>>>>>+                    defaults.values());
>>>>>+
>>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>>+            {
>>>>>+                IParameterNode pnode = parameters.get(i);
>>>>>+
>>>>>+                if (pnode != null)
>>>>>+                {
>>>>>+                    code.setLength(0);
>>>>>+
>>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getDefaultValue());
>>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>>+
>>>>>+                    write(code.toString());
>>>>>+
>>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>>+                        indentPop();
>>>>>+
>>>>>+                    writeNewline();
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>>     {
>>>>>         ASTNodeID id = node.getNodeID();
>>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>>ourselves
>>>>>
>>>>>+        boolean emitsRequires = false;
>>>>>         if (requiresList != null)
>>>>>         {
>>>>>             for (String imp : requiresList)
>>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+
>>>>>                     writtenInstances.add(imp);
>>>>>+
>>>>>+                    emitsRequires = true;
>>>>>                 }
>>>>>             }
>>>>>-
>>>>>-            if (requiresList.size() > 1
>>>>>-                    || (requiresList.size() == 1 &&
>>>>>requiresList.get(0).indexOf(
>>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>>-1))
>>>>>-            {
>>>>>-                writeNewline();
>>>>>-            }
>>>>>         }
>>>>>
>>>>>+        boolean emitsInterfaces = false;
>>>>>         if (interfacesList != null)
>>>>>         {
>>>>>             for (String imp : interfacesList)
>>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            }
>>>>>-
>>>>>-            if (interfacesList.size() > 0)
>>>>>-            {
>>>>>-                writeNewline();
>>>>>+
>>>>>+                emitsInterfaces = true;
>>>>>             }
>>>>>         }
>>>>>
>>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         //              'as' operators. We don't need to worry about
>>>>>requiring
>>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>>will NOT
>>>>>         //              include any of the code if it is not used in
>>>>>the
>>>>>project.
>>>>>-        if (flexProject.mainCU != null &&
>>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>>+        if (isMainCU)
>>>>>         {
>>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+        }
>>>>>+
>>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>>+        {
>>>>>             writeNewline();
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             {
>>>>>                 writeNewline();
>>>>>                 writeNewline();
>>>>>+                writeNewline();
>>>>>                 getDoc().begin();
>>>>>                 getDoc().emitConst(null);
>>>>>                 getDoc().end();
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>>t
>>>>>er
>>>>>Tokens.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>index 10ff880..53110c1 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>@@ -27,6 +27,7 @@ import
>>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>>> {
>>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>>+    INDENT("  "),
>>>>>     INTERFACES("interfaces"),
>>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>>     UNDERSCORE("_"),
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.
>>>>>j
>>>>>av
>>>>>a
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>index 30e70bb..dc039a9 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         }
>>>>>     }
>>>>>
>>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>     {
>>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>>         if (pnodes.length == 0)
>>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>+    protected Map<Integer, IParameterNode>
>>>>>getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>     {
>>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>>IParameterNode>();
>>>>>         int i = 0;
>>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         return false;
>>>>>     }
>>>>>
>>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>>     {
>>>>>         IScopedNode scope = node.getScopedNode();
>>>>>         return scope.getChildCount() > 0;
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJS
>>>>>E
>>>>>mi
>>>>>tter.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>index 444b26a..cd7aad7 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>>implements
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>+    @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>
>>>>>//---------------------------------------------------------------------
>>>>>-
>>>>>--
>>>>>--
>>>>>
>>>>>     @Override
>>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter implements
>>>>>         if (project.mainCU != null &&
>>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>>         {
>>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            writeNewline();
>>>>>+
>>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     private void emitHeaderLine(String qname)
>>>>>
>>>>
>>>
>>>
>>>
>>>--
>>>Ix Multimedia Software
>>>
>>>Jan Luykenstraat 27
>>>3521 VB Utrecht
>>>
>>>T. 06-51952295
>>>I. www.ixsoftware.nl
>>
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
Yes, one TODO, the compiler.jx build doesn't failonerror for the tests.

Silly question, but did you pull the latests flex-asjs and do an 'ant
wipe-all all' on the entire flex-falcon project?

EdB



On Tue, Nov 12, 2013 at 9:03 PM, Alex Harui <ah...@adobe.com> wrote:
> Still failing after clean.  Interesting, the test says FAILED, but from
> the command-line it still thinks the build succeeded.  But Eclipse
> definitely knows it failed.
>
> I guess I'll have to dig into it.
>
> -Alex
>
> On 11/12/13 11:52 AM, "Alex Harui" <ah...@adobe.com> wrote:
>
>>It's not picking up the goog.require("StockDataJSONItemConverter").
>>
>>I'm cleaning and rebuilding. Hopefully it will just go away.
>>
>>-Alex
>>
>>On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>>
>>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>>What is the test complaining about?
>>>
>>>EdB
>>>
>>>
>>>
>>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>>> I'm getting one failure in compiler.jx.tests in
>>>>
>>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppl
>>>>i
>>>>ca
>>>> tion
>>>>
>>>>
>>>> Is it passing for others?
>>>>
>>>> -Alex
>>>>
>>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>>> wrote:
>>>>
>>>>>Updated Branches:
>>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 2bebadd..5ef10ba 100644
>>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>>  */
>>>>> MyInitialView = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.lbl;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID0;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID1;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID2;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>>-       */
>>>>>-      this.timerLabel;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>>-       */
>>>>>-      this.cityList;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID3;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>-       */
>>>>>-      this.$ID5;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>>-       */
>>>>>-      this.$ID4;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>-       */
>>>>>-      this.input;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID6;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>-       */
>>>>>-      this.checkbox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID7;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID8;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID9;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID10;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID11;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>-       */
>>>>>-      this.$ID12;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>-       */
>>>>>-      this.list;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID13;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>-       */
>>>>>-      this.$ID14;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>-       */
>>>>>-      this.comboBox;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>>-       */
>>>>>-      this.$ID15;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.lbl;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID0;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID1;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID2;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>>+   */
>>>>>+  this.timerLabel;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>>+   */
>>>>>+  this.cityList;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID3;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>>+   */
>>>>>+  this.$ID5;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>>+   */
>>>>>+  this.$ID4;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>>+   */
>>>>>+  this.input;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID6;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>>+   */
>>>>>+  this.checkbox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID7;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID8;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID9;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID10;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID11;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>>+   */
>>>>>+  this.$ID12;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>>+   */
>>>>>+  this.list;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID13;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>>+   */
>>>>>+  this.$ID14;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>>+   */
>>>>>+  this.comboBox;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>>+   */
>>>>>+  this.$ID15;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>>
>>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_symbol = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_city = function() {
>>>>>-      return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>>)
>>>>>,
>>>>>String);
>>>>>+  return
>>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>>)
>>>>>,
>>>>>String);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_inputText = function() {
>>>>>-      return this.get_input().get_text();
>>>>>+  return this.get_input().get_text();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function()
>>>>>{
>>>>>  * @return {string}
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>>function() {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>-      this.timer.addEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.start();
>>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.start();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>>function(event) {
>>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>>  */
>>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>>-
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>>)
>>>>>;
>>>>>+
>>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>>)
>>>>>;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>>function(event) {
>>>>>  */
>>>>> MyInitialView.prototype.$EH0 = function(event)
>>>>> {
>>>>>-      this.startTimer(event);
>>>>>+  this.startTimer(event);
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH1 = function(event)
>>>>> {
>>>>>-      this.timer.removeEventListener('timer',
>>>>>goog.bind(this.timerHandler,
>>>>>this));
>>>>>-      this.timer.stop();
>>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>>this));
>>>>>+  this.timer.stop();
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH2 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH3 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH4 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH5 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.$EH6 = function(event)
>>>>> {
>>>>>-      this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>>+  this.dispatchEvent(new
>>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>>  */
>>>>> MyInitialView.prototype.get_lbl = function()
>>>>> {
>>>>>-      return this.lbl;
>>>>>+  return this.lbl;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_lbl = function(value)
>>>>> {
>>>>>-      if (value != this.lbl)
>>>>>-              this.lbl = value;
>>>>>+  if (value != this.lbl)
>>>>>+    this.lbl = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_timerLabel = function()
>>>>> {
>>>>>-      return this.timerLabel;
>>>>>+  return this.timerLabel;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>>> {
>>>>>-      if (value != this.timerLabel)
>>>>>-              this.timerLabel = value;
>>>>>+  if (value != this.timerLabel)
>>>>>+    this.timerLabel = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_cityList = function()
>>>>> {
>>>>>-      return this.cityList;
>>>>>+  return this.cityList;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_cityList = function(value)
>>>>> {
>>>>>-      if (value != this.cityList)
>>>>>-              this.cityList = value;
>>>>>+  if (value != this.cityList)
>>>>>+    this.cityList = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_input = function()
>>>>> {
>>>>>-      return this.input;
>>>>>+  return this.input;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_input = function(value)
>>>>> {
>>>>>-      if (value != this.input)
>>>>>-              this.input = value;
>>>>>+  if (value != this.input)
>>>>>+    this.input = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_checkbox = function()
>>>>> {
>>>>>-      return this.checkbox;
>>>>>+  return this.checkbox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>>> {
>>>>>-      if (value != this.checkbox)
>>>>>-              this.checkbox = value;
>>>>>+  if (value != this.checkbox)
>>>>>+    this.checkbox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_list = function()
>>>>> {
>>>>>-      return this.list;
>>>>>+  return this.list;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_list = function(value)
>>>>> {
>>>>>-      if (value != this.list)
>>>>>-              this.list = value;
>>>>>+  if (value != this.list)
>>>>>+    this.list = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_comboBox = function()
>>>>> {
>>>>>-      return this.comboBox;
>>>>>+  return this.comboBox;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>>  */
>>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>>> {
>>>>>-      if (value != this.comboBox)
>>>>>-              this.comboBox = value;
>>>>>+  if (value != this.comboBox)
>>>>>+    this.comboBox = value;
>>>>> };
>>>>>
>>>>> /**
>>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>>function(value)
>>>>>  */
>>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>>> {
>>>>>-      if (this.mxmldd == undefined)
>>>>>-      {
>>>>>-              /** @type {Array} */
>>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>-              /** @type {Array} */
>>>>>-              var data = [
>>>>>+  if (this.mxmldd == undefined)
>>>>>+  {
>>>>>+    /** @type {Array} */
>>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>>+    /** @type {Array} */
>>>>>+    var data = [
>>>>> org.apache.flex.html.staticControls.Label,
>>>>> 4,
>>>>> 'id',
>>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>>4,
>>>>>'_id', true, '$ID15', 'source
>>>>> this.$EH6,
>>>>> null
>>>>> ];
>>>>>-
>>>>>-              if (arr)
>>>>>-                      this.mxmldd = arr.concat(data);
>>>>>-              else
>>>>>-                      this.mxmldd = data;
>>>>>-      }
>>>>>-      return this.mxmldd;
>>>>>+
>>>>>+    if (arr)
>>>>>+      this.mxmldd = arr.concat(data);
>>>>>+    else
>>>>>+      this.mxmldd = data;
>>>>>+  }
>>>>>+  return this.mxmldd;
>>>>> };
>>>>>
>>>>>
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>index c80f220..36d2f14 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>>s
>>>>>ul
>>>>>t.js
>>>>>@@ -1,110 +1,124 @@
>>>>> goog.provide('controllers.MyController');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>>  * @param {org.apache.flex.core.Application=} app
>>>>>  */
>>>>> controllers.MyController = function(app) {
>>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>>-      if (app) {
>>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>-              app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler,
>>>>>this));
>>>>>-      }
>>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>>+  if (app) {
>>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>>FlexJSTest_again);
>>>>>+    app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryBegin =
>>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.f
>>>>>i
>>>>>na
>>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> controllers.MyController.prototype.queryEnd =
>>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=j
>>>>>s
>>>>>on
>>>>>";
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {FlexJSTest_again}
>>>>>  */
>>>>> controllers.MyController.prototype.app;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>>{
>>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>>goog.bind(this.buttonClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>>goog.bind(this.listChangedHandler, this));
>>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>>goog.bind(this.cityListChangeHandler, this));
>>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>>goog.bind(this.transferClickHandler, this));
>>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>>function(event) {
>>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>-      this.app.get_service().send();
>>>>>-      this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>>MyInitialView */.get_symbol();
>>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>>this.queryEnd);
>>>>>+  this.app.get_service().send();
>>>>>+  this.app.get_service().addEventListener("complete",
>>>>>goog.bind(this.completeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>>i
>>>>>on
>>>>>().getItemAt(0), String));
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>>i
>>>>>on
>>>>>().getItemAt(0), String));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.listChangedHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_symbol());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_city());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.transferClickHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_inputText());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @param {org.apache.flex.events.Event} event
>>>>>  */
>>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>>function(event) {
>>>>>-      this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>>+  this.app.model/** Cast to models.MyModel
>>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>>*/.get_comboBoxValue());
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {Object} document
>>>>>  * @param {string=} id
>>>>>  */
>>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>>id) {
>>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>-      this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>>FlexJSTest_again);
>>>>>+  this.app.addEventListener("viewChanged",
>>>>>goog.bind(this.viewChangeHandler, this));
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 38422d6..eb9c7a2 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
>>>>>@@ -1,63 +1,72 @@
>>>>> goog.provide('models.MyModel');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>>  */
>>>>> models.MyModel = function() {
>>>>>-      goog.base(this);
>>>>>+  goog.base(this);
>>>>> }
>>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {string}
>>>>>  */
>>>>> models.MyModel.prototype._labelText;
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {string}
>>>>>  */
>>>>> models.MyModel.prototype.get_labelText = function() {
>>>>>-      return this._labelText;
>>>>>+  return this._labelText;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @param {string} value
>>>>>  */
>>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>>-      if (value != this._labelText) {
>>>>>-              this._labelText = value;
>>>>>-              this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>-      }
>>>>>+  if (value != this._labelText) {
>>>>>+    this._labelText = value;
>>>>>+    this.dispatchEvent(new
>>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>>+  }
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>>"YHOO"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_strings = function() {
>>>>>-      return this._strings;
>>>>>+  return this._strings;
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  * @type {Array}
>>>>>  */
>>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>>"Sydney", "Tokyo"];
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @expose
>>>>>  * @return {Array}
>>>>>  */
>>>>> models.MyModel.prototype.get_cities = function() {
>>>>>-      return this._cities;
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+  return this._cities;
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>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 6923f67..3edfc62 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
>>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>>> goog.require('org.apache.flex.core.Application');
>>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {org.apache.flex.core.Application}
>>>>>  */
>>>>> wildcard_import = function() {
>>>>>-      goog.base(this);
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldd;
>>>>>-
>>>>>-      /**
>>>>>-       * @private
>>>>>-       * @type {Array}
>>>>>-       */
>>>>>-      this.mxmldp;
>>>>>+  goog.base(this);
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldd;
>>>>>+
>>>>>+  /**
>>>>>+   * @private
>>>>>+   * @type {Array}
>>>>>+   */
>>>>>+  this.mxmldp;
>>>>> };
>>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @private
>>>>>  */
>>>>> wildcard_import.prototype.tmp = function() {
>>>>>-      var /** @type {Button} */ myButton;
>>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>>+  var /** @type {Button} */ myButton;
>>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>>> };
>>>>>-
>>>>>-
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>index 3168e0c..ace15bb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>>s
>>>>>@@ -1,12 +1,12 @@
>>>>> goog.provide('Test');
>>>>>
>>>>> goog.require('classes.A');
>>>>>-
>>>>> goog.require('interfaces.IA');
>>>>> goog.require('interfaces.IE');
>>>>>-
>>>>> goog.require('org.apache.flex.utils.Language');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.A}
>>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>>  * @implements {interfaces.IE}
>>>>>  */
>>>>> Test = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>+  goog.base(this);
>>>>>+};
>>>>> goog.inherits(Test, classes.A);
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index 48c2497..1df9f5d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>>
>>>>> goog.require('classes.C');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  * @extends {classes.C}
>>>>>  */
>>>>> classes.A = function() {
>>>>>-      goog.base(this);
>>>>>-}
>>>>>-goog.inherits(classes.A, classes.C);
>>>>>\ No newline at end of file
>>>>>+  goog.base(this);
>>>>>+};
>>>>>+goog.inherits(classes.A, classes.C);
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index d1fe335..3dd8adb 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.B');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.B = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>index 7aa37e6..9c7bb13 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>>u
>>>>>lt
>>>>>.js
>>>>>@@ -1,8 +1,9 @@
>>>>> goog.provide('classes.C');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @constructor
>>>>>  */
>>>>> classes.C = function() {
>>>>>-};
>>>>>\ No newline at end of file
>>>>>+};
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index 97b7e18..360c807 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>>
>>>>> goog.require('interfaces.IC');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.IC}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>>> interfaces.IA = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index e50057d..611cfb6 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,5 +1,7 @@
>>>>> goog.provide('interfaces.IB');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index db01166..35f794d 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>>
>>>>> goog.require('interfaces.ID');
>>>>>
>>>>>+
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  * @extends {interfaces.ID}
>>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>>> interfaces.IC = function() {
>>>>> };
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @const
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index d25c4a4..dfa6505 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.ID');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>index bb526de..c91f544 100644
>>>>>---
>>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>+++
>>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>>_
>>>>>re
>>>>>sult.js
>>>>>@@ -1,6 +1,7 @@
>>>>> goog.provide('interfaces.IE');
>>>>>
>>>>>
>>>>>+
>>>>> /**
>>>>>  * @interface
>>>>>  */
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>>t
>>>>>er
>>>>>.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>index 5edb70b..e8a2e62 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitter.java
>>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>>> import java.util.Collection;
>>>>> import java.util.HashSet;
>>>>> import java.util.Iterator;
>>>>>+import java.util.List;
>>>>>+import java.util.Map;
>>>>> import java.util.Set;
>>>>>
>>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>>> import org.apache.flex.compiler.common.ASModifier;
>>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>>> import
>>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassi
>>>>>f
>>>>>ic
>>>>>ation;
>>>>>@@ -75,6 +78,7 @@ import
>>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     private ICompilerProject project;
>>>>>
>>>>>     @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>>     {
>>>>>         write(node.getName());
>>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>
>>>>>         project = getWalker().getProject();
>>>>>
>>>>>-        super.emitClass(node);
>>>>>+        IClassDefinition definition = node.getDefinition();
>>>>>+
>>>>>+        IFunctionDefinition ctorDefinition =
>>>>>definition.getConstructor();
>>>>>+
>>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>>+        if (ctorDefinition != null)
>>>>>+        {
>>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>>ctorDefinition.getNode();
>>>>>+            if (ctorNode != null)
>>>>>+            {
>>>>>+                // constructor
>>>>>+                emitMethod(ctorNode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else
>>>>>+            {
>>>>>+                String qname = definition.getQualifiedName();
>>>>>+                if (qname != null && !qname.equals(""))
>>>>>+                {
>>>>>+                    write(qname);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>>+                    write(ASEmitterTokens.SPACE);
>>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>>+                    writeNewline();
>>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+
>>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>>+        {
>>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitField((IVariableNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>>+            {
>>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>>+                {
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    writeNewline();
>>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>>+                }
>>>>>+            }
>>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>>+            {
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                writeNewline();
>>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>>+            }
>>>>>+        }
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    {
>>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>>+        if (pnodes.length == 0)
>>>>>+            return;
>>>>>+
>>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>>+
>>>>>+        if (defaults != null)
>>>>>+        {
>>>>>+            final StringBuilder code = new StringBuilder();
>>>>>+
>>>>>+            if (!hasBody(node))
>>>>>+            {
>>>>>+                indentPush();
>>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>>+            }
>>>>>+
>>>>>+            List<IParameterNode> parameters = new
>>>>>ArrayList<IParameterNode>(
>>>>>+                    defaults.values());
>>>>>+
>>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>>+            {
>>>>>+                IParameterNode pnode = parameters.get(i);
>>>>>+
>>>>>+                if (pnode != null)
>>>>>+                {
>>>>>+                    code.setLength(0);
>>>>>+
>>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>>+
>>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getName());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>>+                    code.append(pnode.getDefaultValue());
>>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>>+
>>>>>+                    write(code.toString());
>>>>>+
>>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>>+                        indentPop();
>>>>>+
>>>>>+                    writeNewline();
>>>>>+                }
>>>>>+            }
>>>>>+        }
>>>>>+    }
>>>>>+
>>>>>+    @Override
>>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>>     {
>>>>>         ASTNodeID id = node.getNodeID();
>>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>>ourselves
>>>>>
>>>>>+        boolean emitsRequires = false;
>>>>>         if (requiresList != null)
>>>>>         {
>>>>>             for (String imp : requiresList)
>>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+
>>>>>                     writtenInstances.add(imp);
>>>>>+
>>>>>+                    emitsRequires = true;
>>>>>                 }
>>>>>             }
>>>>>-
>>>>>-            if (requiresList.size() > 1
>>>>>-                    || (requiresList.size() == 1 &&
>>>>>requiresList.get(0).indexOf(
>>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>>-1))
>>>>>-            {
>>>>>-                writeNewline();
>>>>>-            }
>>>>>         }
>>>>>
>>>>>+        boolean emitsInterfaces = false;
>>>>>         if (interfacesList != null)
>>>>>         {
>>>>>             for (String imp : interfacesList)
>>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            }
>>>>>-
>>>>>-            if (interfacesList.size() > 0)
>>>>>-            {
>>>>>-                writeNewline();
>>>>>+
>>>>>+                emitsInterfaces = true;
>>>>>             }
>>>>>         }
>>>>>
>>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>         //              'as' operators. We don't need to worry about
>>>>>requiring
>>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>>will NOT
>>>>>         //              include any of the code if it is not used in
>>>>>the
>>>>>project.
>>>>>-        if (flexProject.mainCU != null &&
>>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>>+        if (isMainCU)
>>>>>         {
>>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>>JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>+        }
>>>>>+
>>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>>+        {
>>>>>             writeNewline();
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>>implements IJSFlexJSEmitter
>>>>>             {
>>>>>                 writeNewline();
>>>>>                 writeNewline();
>>>>>+                writeNewline();
>>>>>                 getDoc().begin();
>>>>>                 getDoc().emitConst(null);
>>>>>                 getDoc().end();
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>>t
>>>>>er
>>>>>Tokens.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>index 10ff880..53110c1 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>>S
>>>>>Fl
>>>>>exJSEmitterTokens.java
>>>>>@@ -27,6 +27,7 @@ import
>>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>>> {
>>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>>+    INDENT("  "),
>>>>>     INTERFACES("interfaces"),
>>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>>     UNDERSCORE("_"),
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.
>>>>>j
>>>>>av
>>>>>a
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>index 30e70bb..dc039a9 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>>o
>>>>>og
>>>>>Emitter.java
>>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         }
>>>>>     }
>>>>>
>>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>>     {
>>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>>         if (pnodes.length == 0)
>>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>+    protected Map<Integer, IParameterNode>
>>>>>getDefaults(IParameterNode[]
>>>>>nodes)
>>>>>     {
>>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>>IParameterNode>();
>>>>>         int i = 0;
>>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>>implements IJSGoogEmitter
>>>>>         return false;
>>>>>     }
>>>>>
>>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>>     {
>>>>>         IScopedNode scope = node.getScopedNode();
>>>>>         return scope.getChildCount() > 0;
>>>>>
>>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>>e
>>>>>r.
>>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJS
>>>>>E
>>>>>mi
>>>>>tter.java
>>>>>----------------------------------------------------------------------
>>>>>diff --git
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>index 444b26a..cd7aad7 100644
>>>>>---
>>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>+++
>>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>>/
>>>>>MX
>>>>>MLFlexJSEmitter.java
>>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>>implements
>>>>>         super(out);
>>>>>     }
>>>>>
>>>>>+    @Override
>>>>>+    protected String getIndent(int numIndent)
>>>>>+    {
>>>>>+        final StringBuilder sb = new StringBuilder();
>>>>>+        for (int i = 0; i < numIndent; i++)
>>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>>+        return sb.toString();
>>>>>+    }
>>>>>+
>>>>>
>>>>>//---------------------------------------------------------------------
>>>>>-
>>>>>--
>>>>>--
>>>>>
>>>>>     @Override
>>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>>MXMLEmitter implements
>>>>>         if (project.mainCU != null &&
>>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>>         {
>>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>>-            writeNewline();
>>>>>+
>>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>>         }
>>>>>+
>>>>>+        writeNewline();
>>>>>+        writeNewline();
>>>>>     }
>>>>>
>>>>>     private void emitHeaderLine(String qname)
>>>>>
>>>>
>>>
>>>
>>>
>>>--
>>>Ix Multimedia Software
>>>
>>>Jan Luykenstraat 27
>>>3521 VB Utrecht
>>>
>>>T. 06-51952295
>>>I. www.ixsoftware.nl
>>
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
Still failing after clean.  Interesting, the test says FAILED, but from
the command-line it still thinks the build succeeded.  But Eclipse
definitely knows it failed.

I guess I'll have to dig into it.

-Alex

On 11/12/13 11:52 AM, "Alex Harui" <ah...@adobe.com> wrote:

>It's not picking up the goog.require("StockDataJSONItemConverter").
>
>I'm cleaning and rebuilding. Hopefully it will just go away.
>
>-Alex
>
>On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>
>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>What is the test complaining about?
>>
>>EdB
>>
>>
>>
>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>> I'm getting one failure in compiler.jx.tests in
>>>
>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppl
>>>i
>>>ca
>>> tion
>>>
>>>
>>> Is it passing for others?
>>>
>>> -Alex
>>>
>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>> wrote:
>>>
>>>>Updated Branches:
>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 2bebadd..5ef10ba 100644
>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>  */
>>>> MyInitialView = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.lbl;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID0;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID1;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID2;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.timerLabel;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>-       */
>>>>-      this.cityList;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID3;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>-       */
>>>>-      this.$ID5;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID4;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>-       */
>>>>-      this.input;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID6;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>-       */
>>>>-      this.checkbox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID7;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID8;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID9;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID10;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID11;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID12;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>-       */
>>>>-      this.list;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID13;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID14;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>-       */
>>>>-      this.comboBox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID15;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.lbl;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID0;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID1;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID2;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.timerLabel;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>+   */
>>>>+  this.cityList;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID3;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>+   */
>>>>+  this.$ID5;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID4;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>+   */
>>>>+  this.input;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID6;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>+   */
>>>>+  this.checkbox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID7;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID8;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID9;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID10;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID11;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID12;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>+   */
>>>>+  this.list;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID13;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID14;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>+   */
>>>>+  this.comboBox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID15;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>
>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_symbol = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_city = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>)
>>>>,
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>)
>>>>,
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_inputText = function() {
>>>>-      return this.get_input().get_text();
>>>>+  return this.get_input().get_text();
>>>> };
>>>>
>>>> /**
>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function()
>>>>{
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>> };
>>>>
>>>> /**
>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>function() {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>-      this.timer.addEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.start();
>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.start();
>>>> };
>>>>
>>>> /**
>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>function(event) {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>-
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>)
>>>>;
>>>>+
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>)
>>>>;
>>>> };
>>>>
>>>> /**
>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>function(event) {
>>>>  */
>>>> MyInitialView.prototype.$EH0 = function(event)
>>>> {
>>>>-      this.startTimer(event);
>>>>+  this.startTimer(event);
>>>> };
>>>>
>>>> /**
>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH1 = function(event)
>>>> {
>>>>-      this.timer.removeEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.stop();
>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.stop();
>>>> };
>>>>
>>>> /**
>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH2 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH3 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH4 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH5 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH6 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>  */
>>>> MyInitialView.prototype.get_lbl = function()
>>>> {
>>>>-      return this.lbl;
>>>>+  return this.lbl;
>>>> };
>>>>
>>>> /**
>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>  */
>>>> MyInitialView.prototype.set_lbl = function(value)
>>>> {
>>>>-      if (value != this.lbl)
>>>>-              this.lbl = value;
>>>>+  if (value != this.lbl)
>>>>+    this.lbl = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_timerLabel = function()
>>>> {
>>>>-      return this.timerLabel;
>>>>+  return this.timerLabel;
>>>> };
>>>>
>>>> /**
>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>  */
>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>> {
>>>>-      if (value != this.timerLabel)
>>>>-              this.timerLabel = value;
>>>>+  if (value != this.timerLabel)
>>>>+    this.timerLabel = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_cityList = function()
>>>> {
>>>>-      return this.cityList;
>>>>+  return this.cityList;
>>>> };
>>>>
>>>> /**
>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>  */
>>>> MyInitialView.prototype.set_cityList = function(value)
>>>> {
>>>>-      if (value != this.cityList)
>>>>-              this.cityList = value;
>>>>+  if (value != this.cityList)
>>>>+    this.cityList = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_input = function()
>>>> {
>>>>-      return this.input;
>>>>+  return this.input;
>>>> };
>>>>
>>>> /**
>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>  */
>>>> MyInitialView.prototype.set_input = function(value)
>>>> {
>>>>-      if (value != this.input)
>>>>-              this.input = value;
>>>>+  if (value != this.input)
>>>>+    this.input = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_checkbox = function()
>>>> {
>>>>-      return this.checkbox;
>>>>+  return this.checkbox;
>>>> };
>>>>
>>>> /**
>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>  */
>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>> {
>>>>-      if (value != this.checkbox)
>>>>-              this.checkbox = value;
>>>>+  if (value != this.checkbox)
>>>>+    this.checkbox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_list = function()
>>>> {
>>>>-      return this.list;
>>>>+  return this.list;
>>>> };
>>>>
>>>> /**
>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>  */
>>>> MyInitialView.prototype.set_list = function(value)
>>>> {
>>>>-      if (value != this.list)
>>>>-              this.list = value;
>>>>+  if (value != this.list)
>>>>+    this.list = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_comboBox = function()
>>>> {
>>>>-      return this.comboBox;
>>>>+  return this.comboBox;
>>>> };
>>>>
>>>> /**
>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>  */
>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>> {
>>>>-      if (value != this.comboBox)
>>>>-              this.comboBox = value;
>>>>+  if (value != this.comboBox)
>>>>+    this.comboBox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>> {
>>>>-      if (this.mxmldd == undefined)
>>>>-      {
>>>>-              /** @type {Array} */
>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>-              /** @type {Array} */
>>>>-              var data = [
>>>>+  if (this.mxmldd == undefined)
>>>>+  {
>>>>+    /** @type {Array} */
>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>+    /** @type {Array} */
>>>>+    var data = [
>>>> org.apache.flex.html.staticControls.Label,
>>>> 4,
>>>> 'id',
>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>4,
>>>>'_id', true, '$ID15', 'source
>>>> this.$EH6,
>>>> null
>>>> ];
>>>>-
>>>>-              if (arr)
>>>>-                      this.mxmldd = arr.concat(data);
>>>>-              else
>>>>-                      this.mxmldd = data;
>>>>-      }
>>>>-      return this.mxmldd;
>>>>+
>>>>+    if (arr)
>>>>+      this.mxmldd = arr.concat(data);
>>>>+    else
>>>>+      this.mxmldd = data;
>>>>+  }
>>>>+  return this.mxmldd;
>>>> };
>>>>
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>index c80f220..36d2f14 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>@@ -1,110 +1,124 @@
>>>> goog.provide('controllers.MyController');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>  * @param {org.apache.flex.core.Application=} app
>>>>  */
>>>> controllers.MyController = function(app) {
>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>-      if (app) {
>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>-              app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler,
>>>>this));
>>>>-      }
>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>+  if (app) {
>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>+    app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryBegin =
>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.f
>>>>i
>>>>na
>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryEnd =
>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=j
>>>>s
>>>>on
>>>>";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {FlexJSTest_again}
>>>>  */
>>>> controllers.MyController.prototype.app;
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>{
>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>function(event) {
>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>-      this.app.get_service().send();
>>>>-      this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>+  this.app.get_service().send();
>>>>+  this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>i
>>>>on
>>>>().getItemAt(0), String));
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>i
>>>>on
>>>>().getItemAt(0), String));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.listChangedHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.transferClickHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {Object} document
>>>>  * @param {string=} id
>>>>  */
>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>id) {
>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>-      this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>+  this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 38422d6..eb9c7a2 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
>>>>@@ -1,63 +1,72 @@
>>>> goog.provide('models.MyModel');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>  */
>>>> models.MyModel = function() {
>>>>-      goog.base(this);
>>>>+  goog.base(this);
>>>> }
>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> models.MyModel.prototype._labelText;
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {string}
>>>>  */
>>>> models.MyModel.prototype.get_labelText = function() {
>>>>-      return this._labelText;
>>>>+  return this._labelText;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {string} value
>>>>  */
>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>-      if (value != this._labelText) {
>>>>-              this._labelText = value;
>>>>-              this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>-      }
>>>>+  if (value != this._labelText) {
>>>>+    this._labelText = value;
>>>>+    this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>"YHOO"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_strings = function() {
>>>>-      return this._strings;
>>>>+  return this._strings;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>"Sydney", "Tokyo"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_cities = function() {
>>>>-      return this._cities;
>>>>-};
>>>>\ No newline at end of file
>>>>+  return this._cities;
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 6923f67..3edfc62 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
>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>> goog.require('org.apache.flex.core.Application');
>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.core.Application}
>>>>  */
>>>> wildcard_import = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  */
>>>> wildcard_import.prototype.tmp = function() {
>>>>-      var /** @type {Button} */ myButton;
>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>+  var /** @type {Button} */ myButton;
>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>> };
>>>>-
>>>>-
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>index 3168e0c..ace15bb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>@@ -1,12 +1,12 @@
>>>> goog.provide('Test');
>>>>
>>>> goog.require('classes.A');
>>>>-
>>>> goog.require('interfaces.IA');
>>>> goog.require('interfaces.IE');
>>>>-
>>>> goog.require('org.apache.flex.utils.Language');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.A}
>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>  * @implements {interfaces.IE}
>>>>  */
>>>> Test = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>+  goog.base(this);
>>>>+};
>>>> goog.inherits(Test, classes.A);
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>index 48c2497..1df9f5d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>
>>>> goog.require('classes.C');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.C}
>>>>  */
>>>> classes.A = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>-goog.inherits(classes.A, classes.C);
>>>>\ No newline at end of file
>>>>+  goog.base(this);
>>>>+};
>>>>+goog.inherits(classes.A, classes.C);
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>index d1fe335..3dd8adb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.B');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.B = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>index 7aa37e6..9c7bb13 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.C');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.C = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>index 97b7e18..360c807 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>
>>>> goog.require('interfaces.IC');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.IC}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>> interfaces.IA = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>index e50057d..611cfb6 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,5 +1,7 @@
>>>> goog.provide('interfaces.IB');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>index db01166..35f794d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>
>>>> goog.require('interfaces.ID');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.ID}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>> interfaces.IC = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>index d25c4a4..dfa6505 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.ID');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>index bb526de..c91f544 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.IE');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>t
>>>>er
>>>>.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>index 5edb70b..e8a2e62 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>> import java.util.Collection;
>>>> import java.util.HashSet;
>>>> import java.util.Iterator;
>>>>+import java.util.List;
>>>>+import java.util.Map;
>>>> import java.util.Set;
>>>>
>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>> import org.apache.flex.compiler.common.ASModifier;
>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>> import
>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassi
>>>>f
>>>>ic
>>>>ation;
>>>>@@ -75,6 +78,7 @@ import
>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     private ICompilerProject project;
>>>>
>>>>     @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>     {
>>>>         write(node.getName());
>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>
>>>>         project = getWalker().getProject();
>>>>
>>>>-        super.emitClass(node);
>>>>+        IClassDefinition definition = node.getDefinition();
>>>>+
>>>>+        IFunctionDefinition ctorDefinition =
>>>>definition.getConstructor();
>>>>+
>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>+        if (ctorDefinition != null)
>>>>+        {
>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>ctorDefinition.getNode();
>>>>+            if (ctorNode != null)
>>>>+            {
>>>>+                // constructor
>>>>+                emitMethod(ctorNode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else
>>>>+            {
>>>>+                String qname = definition.getQualifiedName();
>>>>+                if (qname != null && !qname.equals(""))
>>>>+                {
>>>>+                    write(qname);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>+                    writeNewline();
>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+
>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>+        {
>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitField((IVariableNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>+            {
>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>+                {
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+        }
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     }
>>>>
>>>>     @Override
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    {
>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>+        if (pnodes.length == 0)
>>>>+            return;
>>>>+
>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>+
>>>>+        if (defaults != null)
>>>>+        {
>>>>+            final StringBuilder code = new StringBuilder();
>>>>+
>>>>+            if (!hasBody(node))
>>>>+            {
>>>>+                indentPush();
>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>+            }
>>>>+
>>>>+            List<IParameterNode> parameters = new
>>>>ArrayList<IParameterNode>(
>>>>+                    defaults.values());
>>>>+
>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>+            {
>>>>+                IParameterNode pnode = parameters.get(i);
>>>>+
>>>>+                if (pnode != null)
>>>>+                {
>>>>+                    code.setLength(0);
>>>>+
>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getDefaultValue());
>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>+
>>>>+                    write(code.toString());
>>>>+
>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>+                        indentPop();
>>>>+
>>>>+                    writeNewline();
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>     {
>>>>         ASTNodeID id = node.getNodeID();
>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>ourselves
>>>>
>>>>+        boolean emitsRequires = false;
>>>>         if (requiresList != null)
>>>>         {
>>>>             for (String imp : requiresList)
>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+
>>>>                     writtenInstances.add(imp);
>>>>+
>>>>+                    emitsRequires = true;
>>>>                 }
>>>>             }
>>>>-
>>>>-            if (requiresList.size() > 1
>>>>-                    || (requiresList.size() == 1 &&
>>>>requiresList.get(0).indexOf(
>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>-1))
>>>>-            {
>>>>-                writeNewline();
>>>>-            }
>>>>         }
>>>>
>>>>+        boolean emitsInterfaces = false;
>>>>         if (interfacesList != null)
>>>>         {
>>>>             for (String imp : interfacesList)
>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            }
>>>>-
>>>>-            if (interfacesList.size() > 0)
>>>>-            {
>>>>-                writeNewline();
>>>>+
>>>>+                emitsInterfaces = true;
>>>>             }
>>>>         }
>>>>
>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         //              'as' operators. We don't need to worry about
>>>>requiring
>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>will NOT
>>>>         //              include any of the code if it is not used in
>>>>the
>>>>project.
>>>>-        if (flexProject.mainCU != null &&
>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>+        if (isMainCU)
>>>>         {
>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+        }
>>>>+
>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>+        {
>>>>             writeNewline();
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             {
>>>>                 writeNewline();
>>>>                 writeNewline();
>>>>+                writeNewline();
>>>>                 getDoc().begin();
>>>>                 getDoc().emitConst(null);
>>>>                 getDoc().end();
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>t
>>>>er
>>>>Tokens.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>index 10ff880..53110c1 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>@@ -27,6 +27,7 @@ import
>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>> {
>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>+    INDENT("  "),
>>>>     INTERFACES("interfaces"),
>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>     UNDERSCORE("_"),
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.
>>>>j
>>>>av
>>>>a
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>index 30e70bb..dc039a9 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         }
>>>>     }
>>>>
>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>     {
>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>         if (pnodes.length == 0)
>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         super(out);
>>>>     }
>>>>
>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>+    protected Map<Integer, IParameterNode>
>>>>getDefaults(IParameterNode[]
>>>>nodes)
>>>>     {
>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>IParameterNode>();
>>>>         int i = 0;
>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         return false;
>>>>     }
>>>>
>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>     {
>>>>         IScopedNode scope = node.getScopedNode();
>>>>         return scope.getChildCount() > 0;
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJS
>>>>E
>>>>mi
>>>>tter.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>index 444b26a..cd7aad7 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>implements
>>>>         super(out);
>>>>     }
>>>>
>>>>+    @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>
>>>>//---------------------------------------------------------------------
>>>>-
>>>>--
>>>>--
>>>>
>>>>     @Override
>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>MXMLEmitter implements
>>>>         if (project.mainCU != null &&
>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>         {
>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            writeNewline();
>>>>+
>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     private void emitHeaderLine(String qname)
>>>>
>>>
>>
>>
>>
>>--
>>Ix Multimedia Software
>>
>>Jan Luykenstraat 27
>>3521 VB Utrecht
>>
>>T. 06-51952295
>>I. www.ixsoftware.nl
>


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
Still failing after clean.  Interesting, the test says FAILED, but from
the command-line it still thinks the build succeeded.  But Eclipse
definitely knows it failed.

I guess I'll have to dig into it.

-Alex

On 11/12/13 11:52 AM, "Alex Harui" <ah...@adobe.com> wrote:

>It's not picking up the goog.require("StockDataJSONItemConverter").
>
>I'm cleaning and rebuilding. Hopefully it will just go away.
>
>-Alex
>
>On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:
>
>>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>>What is the test complaining about?
>>
>>EdB
>>
>>
>>
>>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>>> I'm getting one failure in compiler.jx.tests in
>>>
>>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppl
>>>i
>>>ca
>>> tion
>>>
>>>
>>> Is it passing for others?
>>>
>>> -Alex
>>>
>>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>>> wrote:
>>>
>>>>Updated Branches:
>>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 2bebadd..5ef10ba 100644
>>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>>  * @extends {org.apache.flex.core.ViewBase}
>>>>  */
>>>> MyInitialView = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.lbl;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID0;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID1;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID2;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>>-       */
>>>>-      this.timerLabel;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>>-       */
>>>>-      this.cityList;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID3;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>>-       */
>>>>-      this.$ID5;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>>-       */
>>>>-      this.$ID4;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>>-       */
>>>>-      this.input;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID6;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>-       */
>>>>-      this.checkbox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID7;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID8;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID9;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID10;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID11;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>-       */
>>>>-      this.$ID12;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>-       */
>>>>-      this.list;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID13;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>>-       */
>>>>-      this.$ID14;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>-       */
>>>>-      this.comboBox;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>>-       */
>>>>-      this.$ID15;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.lbl;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID0;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID1;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID2;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>>+   */
>>>>+  this.timerLabel;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>>+   */
>>>>+  this.cityList;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID3;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>>+   */
>>>>+  this.$ID5;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>>+   */
>>>>+  this.$ID4;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>>+   */
>>>>+  this.input;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID6;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>>+   */
>>>>+  this.checkbox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID7;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID8;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID9;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID10;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID11;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>>+   */
>>>>+  this.$ID12;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>>+   */
>>>>+  this.list;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID13;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>>+   */
>>>>+  this.$ID14;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>>+   */
>>>>+  this.comboBox;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>>+   */
>>>>+  this.$ID15;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>>
>>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_symbol = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_city = function() {
>>>>-      return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>)
>>>>,
>>>>String);
>>>>+  return
>>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(
>>>>)
>>>>,
>>>>String);
>>>> };
>>>>
>>>> /**
>>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_inputText = function() {
>>>>-      return this.get_input().get_text();
>>>>+  return this.get_input().get_text();
>>>> };
>>>>
>>>> /**
>>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function()
>>>>{
>>>>  * @return {string}
>>>>  */
>>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>>-      return String(this.get_comboBox().get_selectedItem());
>>>>+  return String(this.get_comboBox().get_selectedItem());
>>>> };
>>>>
>>>> /**
>>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>>function() {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.startTimer = function(event) {
>>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>>-      this.timer.addEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.start();
>>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.start();
>>>> };
>>>>
>>>> /**
>>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>>function(event) {
>>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>>  */
>>>> MyInitialView.prototype.timerHandler = function(event) {
>>>>-
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>)
>>>>;
>>>>+
>>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString()
>>>>)
>>>>;
>>>> };
>>>>
>>>> /**
>>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>>function(event) {
>>>>  */
>>>> MyInitialView.prototype.$EH0 = function(event)
>>>> {
>>>>-      this.startTimer(event);
>>>>+  this.startTimer(event);
>>>> };
>>>>
>>>> /**
>>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH1 = function(event)
>>>> {
>>>>-      this.timer.removeEventListener('timer',
>>>>goog.bind(this.timerHandler,
>>>>this));
>>>>-      this.timer.stop();
>>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>>this));
>>>>+  this.timer.stop();
>>>> };
>>>>
>>>> /**
>>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH2 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH3 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH4 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH5 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>> };
>>>>
>>>> /**
>>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>>  */
>>>> MyInitialView.prototype.$EH6 = function(event)
>>>> {
>>>>-      this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>>+  this.dispatchEvent(new
>>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>> };
>>>>
>>>> /**
>>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>>  */
>>>> MyInitialView.prototype.get_lbl = function()
>>>> {
>>>>-      return this.lbl;
>>>>+  return this.lbl;
>>>> };
>>>>
>>>> /**
>>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>>  */
>>>> MyInitialView.prototype.set_lbl = function(value)
>>>> {
>>>>-      if (value != this.lbl)
>>>>-              this.lbl = value;
>>>>+  if (value != this.lbl)
>>>>+    this.lbl = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_timerLabel = function()
>>>> {
>>>>-      return this.timerLabel;
>>>>+  return this.timerLabel;
>>>> };
>>>>
>>>> /**
>>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>>  */
>>>> MyInitialView.prototype.set_timerLabel = function(value)
>>>> {
>>>>-      if (value != this.timerLabel)
>>>>-              this.timerLabel = value;
>>>>+  if (value != this.timerLabel)
>>>>+    this.timerLabel = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_cityList = function()
>>>> {
>>>>-      return this.cityList;
>>>>+  return this.cityList;
>>>> };
>>>>
>>>> /**
>>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>>  */
>>>> MyInitialView.prototype.set_cityList = function(value)
>>>> {
>>>>-      if (value != this.cityList)
>>>>-              this.cityList = value;
>>>>+  if (value != this.cityList)
>>>>+    this.cityList = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_input = function()
>>>> {
>>>>-      return this.input;
>>>>+  return this.input;
>>>> };
>>>>
>>>> /**
>>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>>  */
>>>> MyInitialView.prototype.set_input = function(value)
>>>> {
>>>>-      if (value != this.input)
>>>>-              this.input = value;
>>>>+  if (value != this.input)
>>>>+    this.input = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_checkbox = function()
>>>> {
>>>>-      return this.checkbox;
>>>>+  return this.checkbox;
>>>> };
>>>>
>>>> /**
>>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>>  */
>>>> MyInitialView.prototype.set_checkbox = function(value)
>>>> {
>>>>-      if (value != this.checkbox)
>>>>-              this.checkbox = value;
>>>>+  if (value != this.checkbox)
>>>>+    this.checkbox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_list = function()
>>>> {
>>>>-      return this.list;
>>>>+  return this.list;
>>>> };
>>>>
>>>> /**
>>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>>  */
>>>> MyInitialView.prototype.set_list = function(value)
>>>> {
>>>>-      if (value != this.list)
>>>>-              this.list = value;
>>>>+  if (value != this.list)
>>>>+    this.list = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>>  */
>>>> MyInitialView.prototype.get_comboBox = function()
>>>> {
>>>>-      return this.comboBox;
>>>>+  return this.comboBox;
>>>> };
>>>>
>>>> /**
>>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>>  */
>>>> MyInitialView.prototype.set_comboBox = function(value)
>>>> {
>>>>-      if (value != this.comboBox)
>>>>-              this.comboBox = value;
>>>>+  if (value != this.comboBox)
>>>>+    this.comboBox = value;
>>>> };
>>>>
>>>> /**
>>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>>function(value)
>>>>  */
>>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>>> {
>>>>-      if (this.mxmldd == undefined)
>>>>-      {
>>>>-              /** @type {Array} */
>>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>-              /** @type {Array} */
>>>>-              var data = [
>>>>+  if (this.mxmldd == undefined)
>>>>+  {
>>>>+    /** @type {Array} */
>>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>>+    /** @type {Array} */
>>>>+    var data = [
>>>> org.apache.flex.html.staticControls.Label,
>>>> 4,
>>>> 'id',
>>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding,
>>>>4,
>>>>'_id', true, '$ID15', 'source
>>>> this.$EH6,
>>>> null
>>>> ];
>>>>-
>>>>-              if (arr)
>>>>-                      this.mxmldd = arr.concat(data);
>>>>-              else
>>>>-                      this.mxmldd = data;
>>>>-      }
>>>>-      return this.mxmldd;
>>>>+
>>>>+    if (arr)
>>>>+      this.mxmldd = arr.concat(data);
>>>>+    else
>>>>+      this.mxmldd = data;
>>>>+  }
>>>>+  return this.mxmldd;
>>>> };
>>>>
>>>>
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>index c80f220..36d2f14 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_re
>>>>s
>>>>ul
>>>>t.js
>>>>@@ -1,110 +1,124 @@
>>>> goog.provide('controllers.MyController');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @implements {org.apache.flex.core.IDocument}
>>>>  * @param {org.apache.flex.core.Application=} app
>>>>  */
>>>> controllers.MyController = function(app) {
>>>>-      app = typeof app !== 'undefined' ? app : null;
>>>>-      if (app) {
>>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>-              app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler,
>>>>this));
>>>>-      }
>>>>+  app = typeof app !== 'undefined' ? app : null;
>>>>+  if (app) {
>>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>>FlexJSTest_again);
>>>>+    app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryBegin =
>>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.f
>>>>i
>>>>na
>>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> controllers.MyController.prototype.queryEnd =
>>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=j
>>>>s
>>>>on
>>>>";
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {FlexJSTest_again}
>>>>  */
>>>> controllers.MyController.prototype.app;
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>>{
>>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>-      this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>-      this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>>goog.bind(this.buttonClickHandler, this));
>>>>+  this.app.initialView.addEventListener("listChanged",
>>>>goog.bind(this.listChangedHandler, this));
>>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>>goog.bind(this.cityListChangeHandler, this));
>>>>+  this.app.initialView.addEventListener("transferClicked",
>>>>goog.bind(this.transferClickHandler, this));
>>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>>goog.bind(this.comboBoxChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.buttonClickHandler =
>>>>function(event) {
>>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>-      this.app.get_service().send();
>>>>-      this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>>MyInitialView */.get_symbol();
>>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>>this.queryEnd);
>>>>+  this.app.get_service().send();
>>>>+  this.app.get_service().addEventListener("complete",
>>>>goog.bind(this.completeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>i
>>>>on
>>>>().getItemAt(0), String));
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collect
>>>>i
>>>>on
>>>>().getItemAt(0), String));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.listChangedHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_symbol());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.cityListChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_city());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.transferClickHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_inputText());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @param {org.apache.flex.events.Event} event
>>>>  */
>>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>>function(event) {
>>>>-      this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>>+  this.app.model/** Cast to models.MyModel
>>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>>*/.get_comboBoxValue());
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {Object} document
>>>>  * @param {string=} id
>>>>  */
>>>> controllers.MyController.prototype.setDocument = function(document,
>>>>id) {
>>>>-      id = typeof id !== 'undefined' ? id : null;
>>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>-      this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>>+  id = typeof id !== 'undefined' ? id : null;
>>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>>FlexJSTest_again);
>>>>+  this.app.addEventListener("viewChanged",
>>>>goog.bind(this.viewChangeHandler, this));
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 38422d6..eb9c7a2 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
>>>>@@ -1,63 +1,72 @@
>>>> goog.provide('models.MyModel');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>>  */
>>>> models.MyModel = function() {
>>>>-      goog.base(this);
>>>>+  goog.base(this);
>>>> }
>>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {string}
>>>>  */
>>>> models.MyModel.prototype._labelText;
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {string}
>>>>  */
>>>> models.MyModel.prototype.get_labelText = function() {
>>>>-      return this._labelText;
>>>>+  return this._labelText;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @param {string} value
>>>>  */
>>>> models.MyModel.prototype.set_labelText = function(value) {
>>>>-      if (value != this._labelText) {
>>>>-              this._labelText = value;
>>>>-              this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>-      }
>>>>+  if (value != this._labelText) {
>>>>+    this._labelText = value;
>>>>+    this.dispatchEvent(new
>>>>org.apache.flex.events.Event("labelTextChanged"));
>>>>+  }
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>>"YHOO"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_strings = function() {
>>>>-      return this._strings;
>>>>+  return this._strings;
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  * @type {Array}
>>>>  */
>>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>>"Sydney", "Tokyo"];
>>>>
>>>>+
>>>> /**
>>>>  * @expose
>>>>  * @return {Array}
>>>>  */
>>>> models.MyModel.prototype.get_cities = function() {
>>>>-      return this._cities;
>>>>-};
>>>>\ No newline at end of file
>>>>+  return this._cities;
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>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 6923f67..3edfc62 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
>>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>>> goog.require('org.apache.flex.core.Application');
>>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {org.apache.flex.core.Application}
>>>>  */
>>>> wildcard_import = function() {
>>>>-      goog.base(this);
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldd;
>>>>-
>>>>-      /**
>>>>-       * @private
>>>>-       * @type {Array}
>>>>-       */
>>>>-      this.mxmldp;
>>>>+  goog.base(this);
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldd;
>>>>+
>>>>+  /**
>>>>+   * @private
>>>>+   * @type {Array}
>>>>+   */
>>>>+  this.mxmldp;
>>>> };
>>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>>
>>>>+
>>>> /**
>>>>  * @private
>>>>  */
>>>> wildcard_import.prototype.tmp = function() {
>>>>-      var /** @type {Button} */ myButton;
>>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>>+  var /** @type {Button} */ myButton;
>>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>>> };
>>>>-
>>>>-
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>index 3168e0c..ace15bb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.j
>>>>s
>>>>@@ -1,12 +1,12 @@
>>>> goog.provide('Test');
>>>>
>>>> goog.require('classes.A');
>>>>-
>>>> goog.require('interfaces.IA');
>>>> goog.require('interfaces.IE');
>>>>-
>>>> goog.require('org.apache.flex.utils.Language');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.A}
>>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>>  * @implements {interfaces.IE}
>>>>  */
>>>> Test = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>+  goog.base(this);
>>>>+};
>>>> goog.inherits(Test, classes.A);
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>index 48c2497..1df9f5d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>>
>>>> goog.require('classes.C');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  * @extends {classes.C}
>>>>  */
>>>> classes.A = function() {
>>>>-      goog.base(this);
>>>>-}
>>>>-goog.inherits(classes.A, classes.C);
>>>>\ No newline at end of file
>>>>+  goog.base(this);
>>>>+};
>>>>+goog.inherits(classes.A, classes.C);
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>index d1fe335..3dd8adb 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.B');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.B = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>index 7aa37e6..9c7bb13 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_res
>>>>u
>>>>lt
>>>>.js
>>>>@@ -1,8 +1,9 @@
>>>> goog.provide('classes.C');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @constructor
>>>>  */
>>>> classes.C = function() {
>>>>-};
>>>>\ No newline at end of file
>>>>+};
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>index 97b7e18..360c807 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>>
>>>> goog.require('interfaces.IC');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.IC}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>>> interfaces.IA = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>index e50057d..611cfb6 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,5 +1,7 @@
>>>> goog.provide('interfaces.IB');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>index db01166..35f794d 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>>
>>>> goog.require('interfaces.ID');
>>>>
>>>>+
>>>>+
>>>> /**
>>>>  * @interface
>>>>  * @extends {interfaces.ID}
>>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>>> interfaces.IC = function() {
>>>> };
>>>>
>>>>+
>>>> /**
>>>>  * @const
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>index d25c4a4..dfa6505 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.ID');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>index bb526de..c91f544 100644
>>>>---
>>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>+++
>>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE
>>>>_
>>>>re
>>>>sult.js
>>>>@@ -1,6 +1,7 @@
>>>> goog.provide('interfaces.IE');
>>>>
>>>>
>>>>+
>>>> /**
>>>>  * @interface
>>>>  */
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>t
>>>>er
>>>>.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>index 5edb70b..e8a2e62 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitter.java
>>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>>> import java.util.Collection;
>>>> import java.util.HashSet;
>>>> import java.util.Iterator;
>>>>+import java.util.List;
>>>>+import java.util.Map;
>>>> import java.util.Set;
>>>>
>>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>>> import org.apache.flex.compiler.common.ASModifier;
>>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>>> import org.apache.flex.compiler.definitions.IDefinition;
>>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>>> import
>>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassi
>>>>f
>>>>ic
>>>>ation;
>>>>@@ -75,6 +78,7 @@ import
>>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     private ICompilerProject project;
>>>>
>>>>     @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     protected void emitMemberName(IDefinitionNode node)
>>>>     {
>>>>         write(node.getName());
>>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>
>>>>         project = getWalker().getProject();
>>>>
>>>>-        super.emitClass(node);
>>>>+        IClassDefinition definition = node.getDefinition();
>>>>+
>>>>+        IFunctionDefinition ctorDefinition =
>>>>definition.getConstructor();
>>>>+
>>>>+        // Static-only (Singleton) classes may not have a constructor
>>>>+        if (ctorDefinition != null)
>>>>+        {
>>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>>ctorDefinition.getNode();
>>>>+            if (ctorNode != null)
>>>>+            {
>>>>+                // constructor
>>>>+                emitMethod(ctorNode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else
>>>>+            {
>>>>+                String qname = definition.getQualifiedName();
>>>>+                if (qname != null && !qname.equals(""))
>>>>+                {
>>>>+                    write(qname);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>>+                    write(ASEmitterTokens.FUNCTION);
>>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>>+                    write(ASEmitterTokens.SPACE);
>>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>>+                    writeNewline();
>>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+
>>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>>+        for (IDefinitionNode dnode : dnodes)
>>>>+        {
>>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitField((IVariableNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>>+            {
>>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>>+                {
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    writeNewline();
>>>>+                    emitMethod((IFunctionNode) dnode);
>>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>>+                }
>>>>+            }
>>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>>+            {
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                writeNewline();
>>>>+                emitAccessors((IAccessorNode) dnode);
>>>>+                write(ASEmitterTokens.SEMICOLON);
>>>>+            }
>>>>+        }
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>     }
>>>>
>>>>     @Override
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    {
>>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>>+        if (pnodes.length == 0)
>>>>+            return;
>>>>+
>>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>>+
>>>>+        if (defaults != null)
>>>>+        {
>>>>+            final StringBuilder code = new StringBuilder();
>>>>+
>>>>+            if (!hasBody(node))
>>>>+            {
>>>>+                indentPush();
>>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>>+            }
>>>>+
>>>>+            List<IParameterNode> parameters = new
>>>>ArrayList<IParameterNode>(
>>>>+                    defaults.values());
>>>>+
>>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>>+            {
>>>>+                IParameterNode pnode = parameters.get(i);
>>>>+
>>>>+                if (pnode != null)
>>>>+                {
>>>>+                    code.setLength(0);
>>>>+
>>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>>+
>>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getName());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>>+                    code.append(pnode.getDefaultValue());
>>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>>+
>>>>+                    write(code.toString());
>>>>+
>>>>+                    if (i == n - 1 && !hasBody(node))
>>>>+                        indentPop();
>>>>+
>>>>+                    writeNewline();
>>>>+                }
>>>>+            }
>>>>+        }
>>>>+    }
>>>>+
>>>>+    @Override
>>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>>     {
>>>>         ASTNodeID id = node.getNodeID();
>>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>>         writtenInstances.add(cname); // make sure we don't add
>>>>ourselves
>>>>
>>>>+        boolean emitsRequires = false;
>>>>         if (requiresList != null)
>>>>         {
>>>>             for (String imp : requiresList)
>>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+
>>>>                     writtenInstances.add(imp);
>>>>+
>>>>+                    emitsRequires = true;
>>>>                 }
>>>>             }
>>>>-
>>>>-            if (requiresList.size() > 1
>>>>-                    || (requiresList.size() == 1 &&
>>>>requiresList.get(0).indexOf(
>>>>-                            JSGoogEmitterTokens.AS3.getToken()) ==
>>>>-1))
>>>>-            {
>>>>-                writeNewline();
>>>>-            }
>>>>         }
>>>>
>>>>+        boolean emitsInterfaces = false;
>>>>         if (interfacesList != null)
>>>>         {
>>>>             for (String imp : interfacesList)
>>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            }
>>>>-
>>>>-            if (interfacesList.size() > 0)
>>>>-            {
>>>>-                writeNewline();
>>>>+
>>>>+                emitsInterfaces = true;
>>>>             }
>>>>         }
>>>>
>>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>         //              'as' operators. We don't need to worry about
>>>>requiring
>>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>>will NOT
>>>>         //              include any of the code if it is not used in
>>>>the
>>>>project.
>>>>-        if (flexProject.mainCU != null &&
>>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>>+        if (isMainCU)
>>>>         {
>>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends
>>>>JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>>+        }
>>>>+
>>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>>+        {
>>>>             writeNewline();
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     @Override
>>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>>implements IJSFlexJSEmitter
>>>>             {
>>>>                 writeNewline();
>>>>                 writeNewline();
>>>>+                writeNewline();
>>>>                 getDoc().begin();
>>>>                 getDoc().emitConst(null);
>>>>                 getDoc().end();
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmit
>>>>t
>>>>er
>>>>Tokens.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>index 10ff880..53110c1 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/J
>>>>S
>>>>Fl
>>>>exJSEmitterTokens.java
>>>>@@ -27,6 +27,7 @@ import
>>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>>> {
>>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>>+    INDENT("  "),
>>>>     INTERFACES("interfaces"),
>>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>>     UNDERSCORE("_"),
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.
>>>>j
>>>>av
>>>>a
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>index 30e70bb..dc039a9 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSG
>>>>o
>>>>og
>>>>Emitter.java
>>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         }
>>>>     }
>>>>
>>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>>     {
>>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>>         if (pnodes.length == 0)
>>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         super(out);
>>>>     }
>>>>
>>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>>nodes)
>>>>+    protected Map<Integer, IParameterNode>
>>>>getDefaults(IParameterNode[]
>>>>nodes)
>>>>     {
>>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>>IParameterNode>();
>>>>         int i = 0;
>>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>>implements IJSGoogEmitter
>>>>         return false;
>>>>     }
>>>>
>>>>-    private static boolean hasBody(IFunctionNode node)
>>>>+    protected static boolean hasBody(IFunctionNode node)
>>>>     {
>>>>         IScopedNode scope = node.getScopedNode();
>>>>         return scope.getChildCount() > 0;
>>>>
>>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compil
>>>>e
>>>>r.
>>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJS
>>>>E
>>>>mi
>>>>tter.java
>>>>----------------------------------------------------------------------
>>>>diff --git
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>index 444b26a..cd7aad7 100644
>>>>---
>>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>+++
>>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs
>>>>/
>>>>MX
>>>>MLFlexJSEmitter.java
>>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>>implements
>>>>         super(out);
>>>>     }
>>>>
>>>>+    @Override
>>>>+    protected String getIndent(int numIndent)
>>>>+    {
>>>>+        final StringBuilder sb = new StringBuilder();
>>>>+        for (int i = 0; i < numIndent; i++)
>>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>>+        return sb.toString();
>>>>+    }
>>>>+
>>>>
>>>>//---------------------------------------------------------------------
>>>>-
>>>>--
>>>>--
>>>>
>>>>     @Override
>>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>>MXMLEmitter implements
>>>>         if (project.mainCU != null &&
>>>>                 cu.getName().equals(project.mainCU.getName()))
>>>>         {
>>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>>-            writeNewline();
>>>>+
>>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>>         }
>>>>+
>>>>+        writeNewline();
>>>>+        writeNewline();
>>>>     }
>>>>
>>>>     private void emitHeaderLine(String qname)
>>>>
>>>
>>
>>
>>
>>--
>>Ix Multimedia Software
>>
>>Jan Luykenstraat 27
>>3521 VB Utrecht
>>
>>T. 06-51952295
>>I. www.ixsoftware.nl
>


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
It's not picking up the goog.require("StockDataJSONItemConverter").

I'm cleaning and rebuilding. Hopefully it will just go away.

-Alex

On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:

>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>What is the test complaining about?
>
>EdB
>
>
>
>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>> I'm getting one failure in compiler.jx.tests in
>>
>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppli
>>ca
>> tion
>>
>>
>> Is it passing for others?
>>
>> -Alex
>>
>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>> wrote:
>>
>>>Updated Branches:
>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 2bebadd..5ef10ba 100644
>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>  * @extends {org.apache.flex.core.ViewBase}
>>>  */
>>> MyInitialView = function() {
>>>-      goog.base(this);
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>-       */
>>>-      this.lbl;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>-       */
>>>-      this.$ID0;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID1;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID2;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>-       */
>>>-      this.timerLabel;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>-       */
>>>-      this.cityList;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID3;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>-       */
>>>-      this.$ID5;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>-       */
>>>-      this.$ID4;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>-       */
>>>-      this.input;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID6;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>-       */
>>>-      this.checkbox;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID7;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID8;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID9;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID10;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID11;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID12;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>-       */
>>>-      this.list;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID13;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID14;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>-       */
>>>-      this.comboBox;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID15;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldd;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldp;
>>>+  goog.base(this);
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>+   */
>>>+  this.lbl;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>+   */
>>>+  this.$ID0;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID1;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID2;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>+   */
>>>+  this.timerLabel;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>+   */
>>>+  this.cityList;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID3;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>+   */
>>>+  this.$ID5;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>+   */
>>>+  this.$ID4;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>+   */
>>>+  this.input;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID6;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>+   */
>>>+  this.checkbox;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID7;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID8;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID9;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID10;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID11;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID12;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>+   */
>>>+  this.list;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID13;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID14;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>+   */
>>>+  this.comboBox;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID15;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldd;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldp;
>>> };
>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>
>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_symbol = function() {
>>>-      return
>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>String);
>>>+  return
>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>String);
>>> };
>>>
>>> /**
>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_city = function() {
>>>-      return
>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>,
>>>String);
>>>+  return
>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>,
>>>String);
>>> };
>>>
>>> /**
>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_inputText = function() {
>>>-      return this.get_input().get_text();
>>>+  return this.get_input().get_text();
>>> };
>>>
>>> /**
>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>-      return String(this.get_comboBox().get_selectedItem());
>>>+  return String(this.get_comboBox().get_selectedItem());
>>> };
>>>
>>> /**
>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>function() {
>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>  */
>>> MyInitialView.prototype.startTimer = function(event) {
>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>-      this.timer.start();
>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>+  this.timer.start();
>>> };
>>>
>>> /**
>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>function(event) {
>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>  */
>>> MyInitialView.prototype.timerHandler = function(event) {
>>>-
>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>;
>>>+
>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>;
>>> };
>>>
>>> /**
>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>function(event) {
>>>  */
>>> MyInitialView.prototype.$EH0 = function(event)
>>> {
>>>-      this.startTimer(event);
>>>+  this.startTimer(event);
>>> };
>>>
>>> /**
>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH1 = function(event)
>>> {
>>>-      this.timer.removeEventListener('timer',
>>>goog.bind(this.timerHandler,
>>>this));
>>>-      this.timer.stop();
>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>+  this.timer.stop();
>>> };
>>>
>>> /**
>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH2 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>> };
>>>
>>> /**
>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH3 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>> };
>>>
>>> /**
>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH4 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('listChanged'));
>>> };
>>>
>>> /**
>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH5 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>> };
>>>
>>> /**
>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH6 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>> };
>>>
>>> /**
>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>  */
>>> MyInitialView.prototype.get_lbl = function()
>>> {
>>>-      return this.lbl;
>>>+  return this.lbl;
>>> };
>>>
>>> /**
>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>  */
>>> MyInitialView.prototype.set_lbl = function(value)
>>> {
>>>-      if (value != this.lbl)
>>>-              this.lbl = value;
>>>+  if (value != this.lbl)
>>>+    this.lbl = value;
>>> };
>>>
>>> /**
>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>  */
>>> MyInitialView.prototype.get_timerLabel = function()
>>> {
>>>-      return this.timerLabel;
>>>+  return this.timerLabel;
>>> };
>>>
>>> /**
>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>  */
>>> MyInitialView.prototype.set_timerLabel = function(value)
>>> {
>>>-      if (value != this.timerLabel)
>>>-              this.timerLabel = value;
>>>+  if (value != this.timerLabel)
>>>+    this.timerLabel = value;
>>> };
>>>
>>> /**
>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_cityList = function()
>>> {
>>>-      return this.cityList;
>>>+  return this.cityList;
>>> };
>>>
>>> /**
>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>  */
>>> MyInitialView.prototype.set_cityList = function(value)
>>> {
>>>-      if (value != this.cityList)
>>>-              this.cityList = value;
>>>+  if (value != this.cityList)
>>>+    this.cityList = value;
>>> };
>>>
>>> /**
>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_input = function()
>>> {
>>>-      return this.input;
>>>+  return this.input;
>>> };
>>>
>>> /**
>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>  */
>>> MyInitialView.prototype.set_input = function(value)
>>> {
>>>-      if (value != this.input)
>>>-              this.input = value;
>>>+  if (value != this.input)
>>>+    this.input = value;
>>> };
>>>
>>> /**
>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>  */
>>> MyInitialView.prototype.get_checkbox = function()
>>> {
>>>-      return this.checkbox;
>>>+  return this.checkbox;
>>> };
>>>
>>> /**
>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>  */
>>> MyInitialView.prototype.set_checkbox = function(value)
>>> {
>>>-      if (value != this.checkbox)
>>>-              this.checkbox = value;
>>>+  if (value != this.checkbox)
>>>+    this.checkbox = value;
>>> };
>>>
>>> /**
>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_list = function()
>>> {
>>>-      return this.list;
>>>+  return this.list;
>>> };
>>>
>>> /**
>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>  */
>>> MyInitialView.prototype.set_list = function(value)
>>> {
>>>-      if (value != this.list)
>>>-              this.list = value;
>>>+  if (value != this.list)
>>>+    this.list = value;
>>> };
>>>
>>> /**
>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>  */
>>> MyInitialView.prototype.get_comboBox = function()
>>> {
>>>-      return this.comboBox;
>>>+  return this.comboBox;
>>> };
>>>
>>> /**
>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>  */
>>> MyInitialView.prototype.set_comboBox = function(value)
>>> {
>>>-      if (value != this.comboBox)
>>>-              this.comboBox = value;
>>>+  if (value != this.comboBox)
>>>+    this.comboBox = value;
>>> };
>>>
>>> /**
>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>> {
>>>-      if (this.mxmldd == undefined)
>>>-      {
>>>-              /** @type {Array} */
>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>-              /** @type {Array} */
>>>-              var data = [
>>>+  if (this.mxmldd == undefined)
>>>+  {
>>>+    /** @type {Array} */
>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>+    /** @type {Array} */
>>>+    var data = [
>>> org.apache.flex.html.staticControls.Label,
>>> 4,
>>> 'id',
>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>>'_id', true, '$ID15', 'source
>>> this.$EH6,
>>> null
>>> ];
>>>-
>>>-              if (arr)
>>>-                      this.mxmldd = arr.concat(data);
>>>-              else
>>>-                      this.mxmldd = data;
>>>-      }
>>>-      return this.mxmldd;
>>>+
>>>+    if (arr)
>>>+      this.mxmldd = arr.concat(data);
>>>+    else
>>>+      this.mxmldd = data;
>>>+  }
>>>+  return this.mxmldd;
>>> };
>>>
>>>
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>index c80f220..36d2f14 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>@@ -1,110 +1,124 @@
>>> goog.provide('controllers.MyController');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @implements {org.apache.flex.core.IDocument}
>>>  * @param {org.apache.flex.core.Application=} app
>>>  */
>>> controllers.MyController = function(app) {
>>>-      app = typeof app !== 'undefined' ? app : null;
>>>-      if (app) {
>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>FlexJSTest_again);
>>>-              app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler,
>>>this));
>>>-      }
>>>+  app = typeof app !== 'undefined' ? app : null;
>>>+  if (app) {
>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>FlexJSTest_again);
>>>+    app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>>+  }
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> controllers.MyController.prototype.queryBegin =
>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fi
>>>na
>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> controllers.MyController.prototype.queryEnd =
>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=js
>>>on
>>>";
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {FlexJSTest_again}
>>>  */
>>> controllers.MyController.prototype.app;
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>{
>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>goog.bind(this.buttonClickHandler, this));
>>>-      this.app.initialView.addEventListener("listChanged",
>>>goog.bind(this.listChangedHandler, this));
>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>goog.bind(this.cityListChangeHandler, this));
>>>-      this.app.initialView.addEventListener("transferClicked",
>>>goog.bind(this.transferClickHandler, this));
>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>goog.bind(this.comboBoxChangeHandler, this));
>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>goog.bind(this.buttonClickHandler, this));
>>>+  this.app.initialView.addEventListener("listChanged",
>>>goog.bind(this.listChangedHandler, this));
>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>goog.bind(this.cityListChangeHandler, this));
>>>+  this.app.initialView.addEventListener("transferClicked",
>>>goog.bind(this.transferClickHandler, this));
>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>goog.bind(this.comboBoxChangeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.buttonClickHandler =
>>>function(event) {
>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>MyInitialView */.get_symbol();
>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>this.queryEnd);
>>>-      this.app.get_service().send();
>>>-      this.app.get_service().addEventListener("complete",
>>>goog.bind(this.completeHandler, this));
>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>MyInitialView */.get_symbol();
>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>this.queryEnd);
>>>+  this.app.get_service().send();
>>>+  this.app.get_service().addEventListener("complete",
>>>goog.bind(this.completeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>on
>>>().getItemAt(0), String));
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>on
>>>().getItemAt(0), String));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.listChangedHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_symbol());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_symbol());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.cityListChangeHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_city());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_city());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.transferClickHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_inputText());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_inputText());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_comboBoxValue());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_comboBoxValue());
>>> };
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @param {Object} document
>>>  * @param {string=} id
>>>  */
>>> controllers.MyController.prototype.setDocument = function(document,
>>>id) {
>>>-      id = typeof id !== 'undefined' ? id : null;
>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>FlexJSTest_again);
>>>-      this.app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>>+  id = typeof id !== 'undefined' ? id : null;
>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>FlexJSTest_again);
>>>+  this.app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 38422d6..eb9c7a2 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
>>>@@ -1,63 +1,72 @@
>>> goog.provide('models.MyModel');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>  */
>>> models.MyModel = function() {
>>>-      goog.base(this);
>>>+  goog.base(this);
>>> }
>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> models.MyModel.prototype._labelText;
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {string}
>>>  */
>>> models.MyModel.prototype.get_labelText = function() {
>>>-      return this._labelText;
>>>+  return this._labelText;
>>> };
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @param {string} value
>>>  */
>>> models.MyModel.prototype.set_labelText = function(value) {
>>>-      if (value != this._labelText) {
>>>-              this._labelText = value;
>>>-              this.dispatchEvent(new
>>>org.apache.flex.events.Event("labelTextChanged"));
>>>-      }
>>>+  if (value != this._labelText) {
>>>+    this._labelText = value;
>>>+    this.dispatchEvent(new
>>>org.apache.flex.events.Event("labelTextChanged"));
>>>+  }
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {Array}
>>>  */
>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>"YHOO"];
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {Array}
>>>  */
>>> models.MyModel.prototype.get_strings = function() {
>>>-      return this._strings;
>>>+  return this._strings;
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {Array}
>>>  */
>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>"Sydney", "Tokyo"];
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {Array}
>>>  */
>>> models.MyModel.prototype.get_cities = function() {
>>>-      return this._cities;
>>>-};
>>>\ No newline at end of file
>>>+  return this._cities;
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 6923f67..3edfc62 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
>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>> goog.require('org.apache.flex.core.Application');
>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {org.apache.flex.core.Application}
>>>  */
>>> wildcard_import = function() {
>>>-      goog.base(this);
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldd;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldp;
>>>+  goog.base(this);
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldd;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldp;
>>> };
>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>
>>>+
>>> /**
>>>  * @private
>>>  */
>>> wildcard_import.prototype.tmp = function() {
>>>-      var /** @type {Button} */ myButton;
>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>+  var /** @type {Button} */ myButton;
>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>> };
>>>-
>>>-
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>index 3168e0c..ace15bb 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>@@ -1,12 +1,12 @@
>>> goog.provide('Test');
>>>
>>> goog.require('classes.A');
>>>-
>>> goog.require('interfaces.IA');
>>> goog.require('interfaces.IE');
>>>-
>>> goog.require('org.apache.flex.utils.Language');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {classes.A}
>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>  * @implements {interfaces.IE}
>>>  */
>>> Test = function() {
>>>-      goog.base(this);
>>>-}
>>>+  goog.base(this);
>>>+};
>>> goog.inherits(Test, classes.A);
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>index 48c2497..1df9f5d 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>
>>> goog.require('classes.C');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {classes.C}
>>>  */
>>> classes.A = function() {
>>>-      goog.base(this);
>>>-}
>>>-goog.inherits(classes.A, classes.C);
>>>\ No newline at end of file
>>>+  goog.base(this);
>>>+};
>>>+goog.inherits(classes.A, classes.C);
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>index d1fe335..3dd8adb 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>@@ -1,8 +1,9 @@
>>> goog.provide('classes.B');
>>>
>>>
>>>+
>>> /**
>>>  * @constructor
>>>  */
>>> classes.B = function() {
>>>-};
>>>\ No newline at end of file
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>index 7aa37e6..9c7bb13 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>@@ -1,8 +1,9 @@
>>> goog.provide('classes.C');
>>>
>>>
>>>+
>>> /**
>>>  * @constructor
>>>  */
>>> classes.C = function() {
>>>-};
>>>\ No newline at end of file
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>index 97b7e18..360c807 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>
>>> goog.require('interfaces.IC');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  * @extends {interfaces.IC}
>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>> interfaces.IA = function() {
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>index e50057d..611cfb6 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>@@ -1,5 +1,7 @@
>>> goog.provide('interfaces.IB');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>index db01166..35f794d 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>
>>> goog.require('interfaces.ID');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  * @extends {interfaces.ID}
>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>> interfaces.IC = function() {
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>index d25c4a4..dfa6505 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>@@ -1,6 +1,7 @@
>>> goog.provide('interfaces.ID');
>>>
>>>
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>index bb526de..c91f544 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>@@ -1,6 +1,7 @@
>>> goog.provide('interfaces.IE');
>>>
>>>
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>er
>>>.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>index 5edb70b..e8a2e62 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>> import java.util.Collection;
>>> import java.util.HashSet;
>>> import java.util.Iterator;
>>>+import java.util.List;
>>>+import java.util.Map;
>>> import java.util.Set;
>>>
>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>> import org.apache.flex.compiler.common.ASModifier;
>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>> import org.apache.flex.compiler.definitions.IDefinition;
>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>> import
>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassif
>>>ic
>>>ation;
>>>@@ -75,6 +78,7 @@ import
>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>     private ICompilerProject project;
>>>
>>>     @Override
>>>+    protected String getIndent(int numIndent)
>>>+    {
>>>+        final StringBuilder sb = new StringBuilder();
>>>+        for (int i = 0; i < numIndent; i++)
>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>+        return sb.toString();
>>>+    }
>>>+
>>>+    @Override
>>>     protected void emitMemberName(IDefinitionNode node)
>>>     {
>>>         write(node.getName());
>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>
>>>         project = getWalker().getProject();
>>>
>>>-        super.emitClass(node);
>>>+        IClassDefinition definition = node.getDefinition();
>>>+
>>>+        IFunctionDefinition ctorDefinition =
>>>definition.getConstructor();
>>>+
>>>+        // Static-only (Singleton) classes may not have a constructor
>>>+        if (ctorDefinition != null)
>>>+        {
>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>ctorDefinition.getNode();
>>>+            if (ctorNode != null)
>>>+            {
>>>+                // constructor
>>>+                emitMethod(ctorNode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+            else
>>>+            {
>>>+                String qname = definition.getQualifiedName();
>>>+                if (qname != null && !qname.equals(""))
>>>+                {
>>>+                    write(qname);
>>>+                    write(ASEmitterTokens.SPACE);
>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>+                    write(ASEmitterTokens.FUNCTION);
>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>+                    write(ASEmitterTokens.SPACE);
>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>+                    writeNewline();
>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>+                }
>>>+            }
>>>+        }
>>>+
>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>+        for (IDefinitionNode dnode : dnodes)
>>>+        {
>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>+            {
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                emitField((IVariableNode) dnode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>+            {
>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>+                {
>>>+                    writeNewline();
>>>+                    writeNewline();
>>>+                    writeNewline();
>>>+                    emitMethod((IFunctionNode) dnode);
>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>+                }
>>>+            }
>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>+            {
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                emitAccessors((IAccessorNode) dnode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+        }
>>>     }
>>>
>>>     @Override
>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>     }
>>>
>>>     @Override
>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>+    {
>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>+        if (pnodes.length == 0)
>>>+            return;
>>>+
>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>+
>>>+        if (defaults != null)
>>>+        {
>>>+            final StringBuilder code = new StringBuilder();
>>>+
>>>+            if (!hasBody(node))
>>>+            {
>>>+                indentPush();
>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>+            }
>>>+
>>>+            List<IParameterNode> parameters = new
>>>ArrayList<IParameterNode>(
>>>+                    defaults.values());
>>>+
>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>+            {
>>>+                IParameterNode pnode = parameters.get(i);
>>>+
>>>+                if (pnode != null)
>>>+                {
>>>+                    code.setLength(0);
>>>+
>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+
>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+
>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>+
>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getDefaultValue());
>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>+
>>>+                    write(code.toString());
>>>+
>>>+                    if (i == n - 1 && !hasBody(node))
>>>+                        indentPop();
>>>+
>>>+                    writeNewline();
>>>+                }
>>>+            }
>>>+        }
>>>+    }
>>>+
>>>+    @Override
>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>     {
>>>         ASTNodeID id = node.getNodeID();
>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>         writtenInstances.add(cname); // make sure we don't add
>>>ourselves
>>>
>>>+        boolean emitsRequires = false;
>>>         if (requiresList != null)
>>>         {
>>>             for (String imp : requiresList)
>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>+
>>>                     writtenInstances.add(imp);
>>>+
>>>+                    emitsRequires = true;
>>>                 }
>>>             }
>>>-
>>>-            if (requiresList.size() > 1
>>>-                    || (requiresList.size() == 1 &&
>>>requiresList.get(0).indexOf(
>>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>>-            {
>>>-                writeNewline();
>>>-            }
>>>         }
>>>
>>>+        boolean emitsInterfaces = false;
>>>         if (interfacesList != null)
>>>         {
>>>             for (String imp : interfacesList)
>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>-            }
>>>-
>>>-            if (interfacesList.size() > 0)
>>>-            {
>>>-                writeNewline();
>>>+
>>>+                emitsInterfaces = true;
>>>             }
>>>         }
>>>
>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>         //              'as' operators. We don't need to worry about
>>>requiring
>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>will NOT
>>>         //              include any of the code if it is not used in
>>>the
>>>project.
>>>-        if (flexProject.mainCU != null &&
>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>+        if (isMainCU)
>>>         {
>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>+        }
>>>+
>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>+        {
>>>             writeNewline();
>>>         }
>>>+
>>>+        writeNewline();
>>>+        writeNewline();
>>>     }
>>>
>>>     @Override
>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>             {
>>>                 writeNewline();
>>>                 writeNewline();
>>>+                writeNewline();
>>>                 getDoc().begin();
>>>                 getDoc().emitConst(null);
>>>                 getDoc().end();
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>er
>>>Tokens.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>index 10ff880..53110c1 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>@@ -27,6 +27,7 @@ import
>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>> {
>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>+    INDENT("  "),
>>>     INTERFACES("interfaces"),
>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>     UNDERSCORE("_"),
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.j
>>>av
>>>a
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>index 30e70bb..dc039a9 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         }
>>>     }
>>>
>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>     {
>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>         if (pnodes.length == 0)
>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         super(out);
>>>     }
>>>
>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>nodes)
>>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>nodes)
>>>     {
>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>IParameterNode>();
>>>         int i = 0;
>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         return false;
>>>     }
>>>
>>>-    private static boolean hasBody(IFunctionNode node)
>>>+    protected static boolean hasBody(IFunctionNode node)
>>>     {
>>>         IScopedNode scope = node.getScopedNode();
>>>         return scope.getChildCount() > 0;
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSE
>>>mi
>>>tter.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>index 444b26a..cd7aad7 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>implements
>>>         super(out);
>>>     }
>>>
>>>+    @Override
>>>+    protected String getIndent(int numIndent)
>>>+    {
>>>+        final StringBuilder sb = new StringBuilder();
>>>+        for (int i = 0; i < numIndent; i++)
>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>+        return sb.toString();
>>>+    }
>>>+
>>>
>>>//----------------------------------------------------------------------
>>>--
>>>--
>>>
>>>     @Override
>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>MXMLEmitter implements
>>>         if (project.mainCU != null &&
>>>                 cu.getName().equals(project.mainCU.getName()))
>>>         {
>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>-            writeNewline();
>>>+
>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>         }
>>>+
>>>+        writeNewline();
>>>+        writeNewline();
>>>     }
>>>
>>>     private void emitHeaderLine(String qname)
>>>
>>
>
>
>
>--
>Ix Multimedia Software
>
>Jan Luykenstraat 27
>3521 VB Utrecht
>
>T. 06-51952295
>I. www.ixsoftware.nl


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Alex Harui <ah...@adobe.com>.
It's not picking up the goog.require("StockDataJSONItemConverter").

I'm cleaning and rebuilding. Hopefully it will just go away.

-Alex

On 11/12/13 11:40 AM, "Erik de Bruin" <er...@ixsoftware.nl> wrote:

>It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
>What is the test complaining about?
>
>EdB
>
>
>
>On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
>> I'm getting one failure in compiler.jx.tests in
>>
>>org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLAppli
>>ca
>> tion
>>
>>
>> Is it passing for others?
>>
>> -Alex
>>
>> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
>> wrote:
>>
>>>Updated Branches:
>>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>>
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 2bebadd..5ef10ba 100644
>>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>>  * @extends {org.apache.flex.core.ViewBase}
>>>  */
>>> MyInitialView = function() {
>>>-      goog.base(this);
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>-       */
>>>-      this.lbl;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>-       */
>>>-      this.$ID0;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID1;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID2;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.Label}
>>>-       */
>>>-      this.timerLabel;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.List}
>>>-       */
>>>-      this.cityList;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID3;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>>-       */
>>>-      this.$ID5;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>>-       */
>>>-      this.$ID4;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>>-       */
>>>-      this.input;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID6;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>>-       */
>>>-      this.checkbox;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID7;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID8;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID9;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID10;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID11;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>>-       */
>>>-      this.$ID12;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>>-       */
>>>-      this.list;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID13;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>>-       */
>>>-      this.$ID14;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>>-       */
>>>-      this.comboBox;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>>-       */
>>>-      this.$ID15;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldd;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldp;
>>>+  goog.base(this);
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>+   */
>>>+  this.lbl;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>+   */
>>>+  this.$ID0;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID1;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID2;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.Label}
>>>+   */
>>>+  this.timerLabel;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.List}
>>>+   */
>>>+  this.cityList;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID3;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>>+   */
>>>+  this.$ID5;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>>+   */
>>>+  this.$ID4;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>>+   */
>>>+  this.input;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID6;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>>+   */
>>>+  this.checkbox;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID7;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID8;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID9;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID10;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID11;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>>+   */
>>>+  this.$ID12;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>>+   */
>>>+  this.list;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID13;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>>+   */
>>>+  this.$ID14;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>>+   */
>>>+  this.comboBox;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>>+   */
>>>+  this.$ID15;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldd;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldp;
>>> };
>>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>>
>>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_symbol = function() {
>>>-      return
>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>String);
>>>+  return
>>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>>String);
>>> };
>>>
>>> /**
>>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_city = function() {
>>>-      return
>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>,
>>>String);
>>>+  return
>>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem()
>>>,
>>>String);
>>> };
>>>
>>> /**
>>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_inputText = function() {
>>>-      return this.get_input().get_text();
>>>+  return this.get_input().get_text();
>>> };
>>>
>>> /**
>>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>>  * @return {string}
>>>  */
>>> MyInitialView.prototype.get_comboBoxValue = function() {
>>>-      return String(this.get_comboBox().get_selectedItem());
>>>+  return String(this.get_comboBox().get_selectedItem());
>>> };
>>>
>>> /**
>>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>>function() {
>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>  */
>>> MyInitialView.prototype.startTimer = function(event) {
>>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>-      this.timer.start();
>>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>+  this.timer.start();
>>> };
>>>
>>> /**
>>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer =
>>>function(event) {
>>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>>  */
>>> MyInitialView.prototype.timerHandler = function(event) {
>>>-
>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>;
>>>+
>>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>>;
>>> };
>>>
>>> /**
>>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>>function(event) {
>>>  */
>>> MyInitialView.prototype.$EH0 = function(event)
>>> {
>>>-      this.startTimer(event);
>>>+  this.startTimer(event);
>>> };
>>>
>>> /**
>>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH1 = function(event)
>>> {
>>>-      this.timer.removeEventListener('timer',
>>>goog.bind(this.timerHandler,
>>>this));
>>>-      this.timer.stop();
>>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>>this));
>>>+  this.timer.stop();
>>> };
>>>
>>> /**
>>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH2 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>> };
>>>
>>> /**
>>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH3 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('transferClicked'));
>>> };
>>>
>>> /**
>>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH4 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('listChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('listChanged'));
>>> };
>>>
>>> /**
>>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH5 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>> };
>>>
>>> /**
>>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>>  */
>>> MyInitialView.prototype.$EH6 = function(event)
>>> {
>>>-      this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>>+  this.dispatchEvent(new
>>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>> };
>>>
>>> /**
>>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>>  */
>>> MyInitialView.prototype.get_lbl = function()
>>> {
>>>-      return this.lbl;
>>>+  return this.lbl;
>>> };
>>>
>>> /**
>>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>>  */
>>> MyInitialView.prototype.set_lbl = function(value)
>>> {
>>>-      if (value != this.lbl)
>>>-              this.lbl = value;
>>>+  if (value != this.lbl)
>>>+    this.lbl = value;
>>> };
>>>
>>> /**
>>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>>  */
>>> MyInitialView.prototype.get_timerLabel = function()
>>> {
>>>-      return this.timerLabel;
>>>+  return this.timerLabel;
>>> };
>>>
>>> /**
>>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>>  */
>>> MyInitialView.prototype.set_timerLabel = function(value)
>>> {
>>>-      if (value != this.timerLabel)
>>>-              this.timerLabel = value;
>>>+  if (value != this.timerLabel)
>>>+    this.timerLabel = value;
>>> };
>>>
>>> /**
>>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_cityList = function()
>>> {
>>>-      return this.cityList;
>>>+  return this.cityList;
>>> };
>>>
>>> /**
>>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>>  */
>>> MyInitialView.prototype.set_cityList = function(value)
>>> {
>>>-      if (value != this.cityList)
>>>-              this.cityList = value;
>>>+  if (value != this.cityList)
>>>+    this.cityList = value;
>>> };
>>>
>>> /**
>>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_input = function()
>>> {
>>>-      return this.input;
>>>+  return this.input;
>>> };
>>>
>>> /**
>>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>>  */
>>> MyInitialView.prototype.set_input = function(value)
>>> {
>>>-      if (value != this.input)
>>>-              this.input = value;
>>>+  if (value != this.input)
>>>+    this.input = value;
>>> };
>>>
>>> /**
>>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>>  */
>>> MyInitialView.prototype.get_checkbox = function()
>>> {
>>>-      return this.checkbox;
>>>+  return this.checkbox;
>>> };
>>>
>>> /**
>>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>>  */
>>> MyInitialView.prototype.set_checkbox = function(value)
>>> {
>>>-      if (value != this.checkbox)
>>>-              this.checkbox = value;
>>>+  if (value != this.checkbox)
>>>+    this.checkbox = value;
>>> };
>>>
>>> /**
>>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_list = function()
>>> {
>>>-      return this.list;
>>>+  return this.list;
>>> };
>>>
>>> /**
>>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>>  */
>>> MyInitialView.prototype.set_list = function(value)
>>> {
>>>-      if (value != this.list)
>>>-              this.list = value;
>>>+  if (value != this.list)
>>>+    this.list = value;
>>> };
>>>
>>> /**
>>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>>  */
>>> MyInitialView.prototype.get_comboBox = function()
>>> {
>>>-      return this.comboBox;
>>>+  return this.comboBox;
>>> };
>>>
>>> /**
>>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>>  */
>>> MyInitialView.prototype.set_comboBox = function(value)
>>> {
>>>-      if (value != this.comboBox)
>>>-              this.comboBox = value;
>>>+  if (value != this.comboBox)
>>>+    this.comboBox = value;
>>> };
>>>
>>> /**
>>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>>function(value)
>>>  */
>>> MyInitialView.prototype.get_MXMLDescriptor = function()
>>> {
>>>-      if (this.mxmldd == undefined)
>>>-      {
>>>-              /** @type {Array} */
>>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>>-              /** @type {Array} */
>>>-              var data = [
>>>+  if (this.mxmldd == undefined)
>>>+  {
>>>+    /** @type {Array} */
>>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>>+    /** @type {Array} */
>>>+    var data = [
>>> org.apache.flex.html.staticControls.Label,
>>> 4,
>>> 'id',
>>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>>'_id', true, '$ID15', 'source
>>> this.$EH6,
>>> null
>>> ];
>>>-
>>>-              if (arr)
>>>-                      this.mxmldd = arr.concat(data);
>>>-              else
>>>-                      this.mxmldd = data;
>>>-      }
>>>-      return this.mxmldd;
>>>+
>>>+    if (arr)
>>>+      this.mxmldd = arr.concat(data);
>>>+    else
>>>+      this.mxmldd = data;
>>>+  }
>>>+  return this.mxmldd;
>>> };
>>>
>>>
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>index c80f220..36d2f14 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_res
>>>ul
>>>t.js
>>>@@ -1,110 +1,124 @@
>>> goog.provide('controllers.MyController');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @implements {org.apache.flex.core.IDocument}
>>>  * @param {org.apache.flex.core.Application=} app
>>>  */
>>> controllers.MyController = function(app) {
>>>-      app = typeof app !== 'undefined' ? app : null;
>>>-      if (app) {
>>>-              this.app = org.apache.flex.utils.Language.as(app,
>>>FlexJSTest_again);
>>>-              app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler,
>>>this));
>>>-      }
>>>+  app = typeof app !== 'undefined' ? app : null;
>>>+  if (app) {
>>>+    this.app = org.apache.flex.utils.Language.as(app,
>>>FlexJSTest_again);
>>>+    app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>>+  }
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> controllers.MyController.prototype.queryBegin =
>>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fi
>>>na
>>>nce.quotes%20where%20symbol%20in%20(%22";
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> controllers.MyController.prototype.queryEnd =
>>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=js
>>>on
>>>";
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {FlexJSTest_again}
>>>  */
>>> controllers.MyController.prototype.app;
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.viewChangeHandler = function(event)
>>>{
>>>-      this.app.initialView.addEventListener("buttonClicked",
>>>goog.bind(this.buttonClickHandler, this));
>>>-      this.app.initialView.addEventListener("listChanged",
>>>goog.bind(this.listChangedHandler, this));
>>>-      this.app.initialView.addEventListener("cityListChanged",
>>>goog.bind(this.cityListChangeHandler, this));
>>>-      this.app.initialView.addEventListener("transferClicked",
>>>goog.bind(this.transferClickHandler, this));
>>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>>goog.bind(this.comboBoxChangeHandler, this));
>>>+  this.app.initialView.addEventListener("buttonClicked",
>>>goog.bind(this.buttonClickHandler, this));
>>>+  this.app.initialView.addEventListener("listChanged",
>>>goog.bind(this.listChangedHandler, this));
>>>+  this.app.initialView.addEventListener("cityListChanged",
>>>goog.bind(this.cityListChangeHandler, this));
>>>+  this.app.initialView.addEventListener("transferClicked",
>>>goog.bind(this.transferClickHandler, this));
>>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>>goog.bind(this.comboBoxChangeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.buttonClickHandler =
>>>function(event) {
>>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>MyInitialView */.get_symbol();
>>>-      this.app.get_service().set_url(this.queryBegin + sym +
>>>this.queryEnd);
>>>-      this.app.get_service().send();
>>>-      this.app.get_service().addEventListener("complete",
>>>goog.bind(this.completeHandler, this));
>>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>>MyInitialView */.get_symbol();
>>>+  this.app.get_service().set_url(this.queryBegin + sym +
>>>this.queryEnd);
>>>+  this.app.get_service().send();
>>>+  this.app.get_service().addEventListener("complete",
>>>goog.bind(this.completeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.completeHandler = function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>on
>>>().getItemAt(0), String));
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collecti
>>>on
>>>().getItemAt(0), String));
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.listChangedHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_symbol());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_symbol());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.cityListChangeHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_city());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_city());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.transferClickHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_inputText());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_inputText());
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @param {org.apache.flex.events.Event} event
>>>  */
>>> controllers.MyController.prototype.comboBoxChangeHandler =
>>>function(event) {
>>>-      this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_comboBoxValue());
>>>+  this.app.model/** Cast to models.MyModel
>>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>>*/.get_comboBoxValue());
>>> };
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @param {Object} document
>>>  * @param {string=} id
>>>  */
>>> controllers.MyController.prototype.setDocument = function(document,
>>>id) {
>>>-      id = typeof id !== 'undefined' ? id : null;
>>>-      this.app = org.apache.flex.utils.Language.as(document,
>>>FlexJSTest_again);
>>>-      this.app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>>+  id = typeof id !== 'undefined' ? id : null;
>>>+  this.app = org.apache.flex.utils.Language.as(document,
>>>FlexJSTest_again);
>>>+  this.app.addEventListener("viewChanged",
>>>goog.bind(this.viewChangeHandler, this));
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 38422d6..eb9c7a2 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
>>>@@ -1,63 +1,72 @@
>>> goog.provide('models.MyModel');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {org.apache.flex.events.EventDispatcher}
>>>  */
>>> models.MyModel = function() {
>>>-      goog.base(this);
>>>+  goog.base(this);
>>> }
>>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {string}
>>>  */
>>> models.MyModel.prototype._labelText;
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {string}
>>>  */
>>> models.MyModel.prototype.get_labelText = function() {
>>>-      return this._labelText;
>>>+  return this._labelText;
>>> };
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @param {string} value
>>>  */
>>> models.MyModel.prototype.set_labelText = function(value) {
>>>-      if (value != this._labelText) {
>>>-              this._labelText = value;
>>>-              this.dispatchEvent(new
>>>org.apache.flex.events.Event("labelTextChanged"));
>>>-      }
>>>+  if (value != this._labelText) {
>>>+    this._labelText = value;
>>>+    this.dispatchEvent(new
>>>org.apache.flex.events.Event("labelTextChanged"));
>>>+  }
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {Array}
>>>  */
>>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>>"YHOO"];
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {Array}
>>>  */
>>> models.MyModel.prototype.get_strings = function() {
>>>-      return this._strings;
>>>+  return this._strings;
>>> };
>>>
>>>+
>>> /**
>>>  * @private
>>>  * @type {Array}
>>>  */
>>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>>"Sydney", "Tokyo"];
>>>
>>>+
>>> /**
>>>  * @expose
>>>  * @return {Array}
>>>  */
>>> models.MyModel.prototype.get_cities = function() {
>>>-      return this._cities;
>>>-};
>>>\ No newline at end of file
>>>+  return this._cities;
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>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 6923f67..3edfc62 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
>>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>>> goog.require('org.apache.flex.core.Application');
>>> goog.require('org.apache.flex.html.staticControls.Button');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {org.apache.flex.core.Application}
>>>  */
>>> wildcard_import = function() {
>>>-      goog.base(this);
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldd;
>>>-
>>>-      /**
>>>-       * @private
>>>-       * @type {Array}
>>>-       */
>>>-      this.mxmldp;
>>>+  goog.base(this);
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldd;
>>>+
>>>+  /**
>>>+   * @private
>>>+   * @type {Array}
>>>+   */
>>>+  this.mxmldp;
>>> };
>>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>>
>>>+
>>> /**
>>>  * @private
>>>  */
>>> wildcard_import.prototype.tmp = function() {
>>>-      var /** @type {Button} */ myButton;
>>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>>+  var /** @type {Button} */ myButton;
>>>+  myButton = new org.apache.flex.html.staticControls.Button();
>>> };
>>>-
>>>-
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>index 3168e0c..ace15bb 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>>@@ -1,12 +1,12 @@
>>> goog.provide('Test');
>>>
>>> goog.require('classes.A');
>>>-
>>> goog.require('interfaces.IA');
>>> goog.require('interfaces.IE');
>>>-
>>> goog.require('org.apache.flex.utils.Language');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {classes.A}
>>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>>  * @implements {interfaces.IE}
>>>  */
>>> Test = function() {
>>>-      goog.base(this);
>>>-}
>>>+  goog.base(this);
>>>+};
>>> goog.inherits(Test, classes.A);
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>index 48c2497..1df9f5d 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_resu
>>>lt
>>>.js
>>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>>
>>> goog.require('classes.C');
>>>
>>>+
>>>+
>>> /**
>>>  * @constructor
>>>  * @extends {classes.C}
>>>  */
>>> classes.A = function() {
>>>-      goog.base(this);
>>>-}
>>>-goog.inherits(classes.A, classes.C);
>>>\ No newline at end of file
>>>+  goog.base(this);
>>>+};
>>>+goog.inherits(classes.A, classes.C);
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>index d1fe335..3dd8adb 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_resu
>>>lt
>>>.js
>>>@@ -1,8 +1,9 @@
>>> goog.provide('classes.B');
>>>
>>>
>>>+
>>> /**
>>>  * @constructor
>>>  */
>>> classes.B = function() {
>>>-};
>>>\ No newline at end of file
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>index 7aa37e6..9c7bb13 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_resu
>>>lt
>>>.js
>>>@@ -1,8 +1,9 @@
>>> goog.provide('classes.C');
>>>
>>>
>>>+
>>> /**
>>>  * @constructor
>>>  */
>>> classes.C = function() {
>>>-};
>>>\ No newline at end of file
>>>+};
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>index 97b7e18..360c807 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_
>>>re
>>>sult.js
>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>>
>>> goog.require('interfaces.IC');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  * @extends {interfaces.IC}
>>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>>> interfaces.IA = function() {
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>index e50057d..611cfb6 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_
>>>re
>>>sult.js
>>>@@ -1,5 +1,7 @@
>>> goog.provide('interfaces.IB');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>index db01166..35f794d 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_
>>>re
>>>sult.js
>>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>>
>>> goog.require('interfaces.ID');
>>>
>>>+
>>>+
>>> /**
>>>  * @interface
>>>  * @extends {interfaces.ID}
>>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>>> interfaces.IC = function() {
>>> };
>>>
>>>+
>>> /**
>>>  * @const
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>index d25c4a4..dfa6505 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_
>>>re
>>>sult.js
>>>@@ -1,6 +1,7 @@
>>> goog.provide('interfaces.ID');
>>>
>>>
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>index bb526de..c91f544 100644
>>>---
>>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>+++
>>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_
>>>re
>>>sult.js
>>>@@ -1,6 +1,7 @@
>>> goog.provide('interfaces.IE');
>>>
>>>
>>>+
>>> /**
>>>  * @interface
>>>  */
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>er
>>>.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>index 5edb70b..e8a2e62 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitter.java
>>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>>> import java.util.Collection;
>>> import java.util.HashSet;
>>> import java.util.Iterator;
>>>+import java.util.List;
>>>+import java.util.Map;
>>> import java.util.Set;
>>>
>>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>>> import org.apache.flex.compiler.common.ASModifier;
>>> import org.apache.flex.compiler.common.ModifiersSet;
>>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>>> import org.apache.flex.compiler.definitions.IDefinition;
>>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>>> import
>>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassif
>>>ic
>>>ation;
>>>@@ -75,6 +78,7 @@ import
>>>org.apache.flex.compiler.tree.as.IInterfaceNode;
>>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>>> import org.apache.flex.compiler.tree.as.ISetterNode;
>>> import org.apache.flex.compiler.tree.as.ITypeNode;
>>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>     private ICompilerProject project;
>>>
>>>     @Override
>>>+    protected String getIndent(int numIndent)
>>>+    {
>>>+        final StringBuilder sb = new StringBuilder();
>>>+        for (int i = 0; i < numIndent; i++)
>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>+        return sb.toString();
>>>+    }
>>>+
>>>+    @Override
>>>     protected void emitMemberName(IDefinitionNode node)
>>>     {
>>>         write(node.getName());
>>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>
>>>         project = getWalker().getProject();
>>>
>>>-        super.emitClass(node);
>>>+        IClassDefinition definition = node.getDefinition();
>>>+
>>>+        IFunctionDefinition ctorDefinition =
>>>definition.getConstructor();
>>>+
>>>+        // Static-only (Singleton) classes may not have a constructor
>>>+        if (ctorDefinition != null)
>>>+        {
>>>+            IFunctionNode ctorNode = (IFunctionNode)
>>>ctorDefinition.getNode();
>>>+            if (ctorNode != null)
>>>+            {
>>>+                // constructor
>>>+                emitMethod(ctorNode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+            else
>>>+            {
>>>+                String qname = definition.getQualifiedName();
>>>+                if (qname != null && !qname.equals(""))
>>>+                {
>>>+                    write(qname);
>>>+                    write(ASEmitterTokens.SPACE);
>>>+                    writeToken(ASEmitterTokens.EQUAL);
>>>+                    write(ASEmitterTokens.FUNCTION);
>>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>>+                    write(ASEmitterTokens.SPACE);
>>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>>+                    writeNewline();
>>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>+                }
>>>+            }
>>>+        }
>>>+
>>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>>+        for (IDefinitionNode dnode : dnodes)
>>>+        {
>>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>>+            {
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                emitField((IVariableNode) dnode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>>+            {
>>>+                if (!((IFunctionNode) dnode).isConstructor())
>>>+                {
>>>+                    writeNewline();
>>>+                    writeNewline();
>>>+                    writeNewline();
>>>+                    emitMethod((IFunctionNode) dnode);
>>>+                    write(ASEmitterTokens.SEMICOLON);
>>>+                }
>>>+            }
>>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>>+            {
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                writeNewline();
>>>+                emitAccessors((IAccessorNode) dnode);
>>>+                write(ASEmitterTokens.SEMICOLON);
>>>+            }
>>>+        }
>>>     }
>>>
>>>     @Override
>>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>     }
>>>
>>>     @Override
>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>+    {
>>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>>+        if (pnodes.length == 0)
>>>+            return;
>>>+
>>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>>+
>>>+        if (defaults != null)
>>>+        {
>>>+            final StringBuilder code = new StringBuilder();
>>>+
>>>+            if (!hasBody(node))
>>>+            {
>>>+                indentPush();
>>>+                write(JSFlexJSEmitterTokens.INDENT);
>>>+            }
>>>+
>>>+            List<IParameterNode> parameters = new
>>>ArrayList<IParameterNode>(
>>>+                    defaults.values());
>>>+
>>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>>+            {
>>>+                IParameterNode pnode = parameters.get(i);
>>>+
>>>+                if (pnode != null)
>>>+                {
>>>+                    code.setLength(0);
>>>+
>>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+
>>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+
>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>>+
>>>code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getName());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>>+                    code.append(pnode.getDefaultValue());
>>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>>+
>>>+                    write(code.toString());
>>>+
>>>+                    if (i == n - 1 && !hasBody(node))
>>>+                        indentPop();
>>>+
>>>+                    writeNewline();
>>>+                }
>>>+            }
>>>+        }
>>>+    }
>>>+
>>>+    @Override
>>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>>     {
>>>         ASTNodeID id = node.getNodeID();
>>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>>         writtenInstances.add(cname); // make sure we don't add
>>>ourselves
>>>
>>>+        boolean emitsRequires = false;
>>>         if (requiresList != null)
>>>         {
>>>             for (String imp : requiresList)
>>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends
>>>JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>>+
>>>                     writtenInstances.add(imp);
>>>+
>>>+                    emitsRequires = true;
>>>                 }
>>>             }
>>>-
>>>-            if (requiresList.size() > 1
>>>-                    || (requiresList.size() == 1 &&
>>>requiresList.get(0).indexOf(
>>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>>-            {
>>>-                writeNewline();
>>>-            }
>>>         }
>>>
>>>+        boolean emitsInterfaces = false;
>>>         if (interfacesList != null)
>>>         {
>>>             for (String imp : interfacesList)
>>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>>-            }
>>>-
>>>-            if (interfacesList.size() > 0)
>>>-            {
>>>-                writeNewline();
>>>+
>>>+                emitsInterfaces = true;
>>>             }
>>>         }
>>>
>>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>         //              'as' operators. We don't need to worry about
>>>requiring
>>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>>will NOT
>>>         //              include any of the code if it is not used in
>>>the
>>>project.
>>>-        if (flexProject.mainCU != null &&
>>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>>+        boolean isMainCU = flexProject.mainCU != null &&
>>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>>+        if (isMainCU)
>>>         {
>>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>             write(ASEmitterTokens.PAREN_OPEN);
>>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>>             write(ASEmitterTokens.PAREN_CLOSE);
>>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>>+        }
>>>+
>>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>>+        {
>>>             writeNewline();
>>>         }
>>>+
>>>+        writeNewline();
>>>+        writeNewline();
>>>     }
>>>
>>>     @Override
>>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>>implements IJSFlexJSEmitter
>>>             {
>>>                 writeNewline();
>>>                 writeNewline();
>>>+                writeNewline();
>>>                 getDoc().begin();
>>>                 getDoc().emitConst(null);
>>>                 getDoc().end();
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitt
>>>er
>>>Tokens.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>index 10ff880..53110c1 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JS
>>>Fl
>>>exJSEmitterTokens.java
>>>@@ -27,6 +27,7 @@ import
>>>org.apache.flex.compiler.codegen.IEmitterTokens;
>>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>>> {
>>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>>+    INDENT("  "),
>>>     INTERFACES("interfaces"),
>>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>>     UNDERSCORE("_"),
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.j
>>>av
>>>a
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>index 30e70bb..dc039a9 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGo
>>>og
>>>Emitter.java
>>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         }
>>>     }
>>>
>>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>>     {
>>>         IParameterNode[] pnodes = node.getParameterNodes();
>>>         if (pnodes.length == 0)
>>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         super(out);
>>>     }
>>>
>>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>nodes)
>>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>>nodes)
>>>     {
>>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>>IParameterNode>();
>>>         int i = 0;
>>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>>implements IJSGoogEmitter
>>>         return false;
>>>     }
>>>
>>>-    private static boolean hasBody(IFunctionNode node)
>>>+    protected static boolean hasBody(IFunctionNode node)
>>>     {
>>>         IScopedNode scope = node.getScopedNode();
>>>         return scope.getChildCount() > 0;
>>>
>>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compile
>>>r.
>>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSE
>>>mi
>>>tter.java
>>>----------------------------------------------------------------------
>>>diff --git
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>index 444b26a..cd7aad7 100644
>>>---
>>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>+++
>>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/
>>>MX
>>>MLFlexJSEmitter.java
>>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>>implements
>>>         super(out);
>>>     }
>>>
>>>+    @Override
>>>+    protected String getIndent(int numIndent)
>>>+    {
>>>+        final StringBuilder sb = new StringBuilder();
>>>+        for (int i = 0; i < numIndent; i++)
>>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>>+        return sb.toString();
>>>+    }
>>>+
>>>
>>>//----------------------------------------------------------------------
>>>--
>>>--
>>>
>>>     @Override
>>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>>MXMLEmitter implements
>>>         if (project.mainCU != null &&
>>>                 cu.getName().equals(project.mainCU.getName()))
>>>         {
>>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>>-            write(ASEmitterTokens.PAREN_OPEN);
>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>>-            writeNewline();
>>>+
>>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>>         }
>>>+
>>>+        writeNewline();
>>>+        writeNewline();
>>>     }
>>>
>>>     private void emitHeaderLine(String qname)
>>>
>>
>
>
>
>--
>Ix Multimedia Software
>
>Jan Luykenstraat 27
>3521 VB Utrecht
>
>T. 06-51952295
>I. www.ixsoftware.nl


Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
What is the test complaining about?

EdB



On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
> I'm getting one failure in compiler.jx.tests in
> org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLApplica
> tion
>
>
> Is it passing for others?
>
> -Alex
>
> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
> wrote:
>
>>Updated Branches:
>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 2bebadd..5ef10ba 100644
>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>  * @extends {org.apache.flex.core.ViewBase}
>>  */
>> MyInitialView = function() {
>>-      goog.base(this);
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.Label}
>>-       */
>>-      this.lbl;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>-       */
>>-      this.$ID0;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID1;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID2;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.Label}
>>-       */
>>-      this.timerLabel;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.List}
>>-       */
>>-      this.cityList;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID3;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>-       */
>>-      this.$ID5;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>-       */
>>-      this.$ID4;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>-       */
>>-      this.input;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID6;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>-       */
>>-      this.checkbox;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID7;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID8;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID9;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID10;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID11;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID12;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>-       */
>>-      this.list;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID13;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID14;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>-       */
>>-      this.comboBox;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID15;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldd;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldp;
>>+  goog.base(this);
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.Label}
>>+   */
>>+  this.lbl;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>+   */
>>+  this.$ID0;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID1;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID2;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.Label}
>>+   */
>>+  this.timerLabel;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.List}
>>+   */
>>+  this.cityList;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID3;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>+   */
>>+  this.$ID5;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>+   */
>>+  this.$ID4;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>+   */
>>+  this.input;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID6;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>+   */
>>+  this.checkbox;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID7;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID8;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID9;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID10;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID11;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID12;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>+   */
>>+  this.list;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID13;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID14;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>+   */
>>+  this.comboBox;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID15;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldd;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldp;
>> };
>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>
>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_symbol = function() {
>>-      return
>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>String);
>>+  return
>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>String);
>> };
>>
>> /**
>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_city = function() {
>>-      return
>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>>String);
>>+  return
>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>>String);
>> };
>>
>> /**
>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_inputText = function() {
>>-      return this.get_input().get_text();
>>+  return this.get_input().get_text();
>> };
>>
>> /**
>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_comboBoxValue = function() {
>>-      return String(this.get_comboBox().get_selectedItem());
>>+  return String(this.get_comboBox().get_selectedItem());
>> };
>>
>> /**
>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>function() {
>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>  */
>> MyInitialView.prototype.startTimer = function(event) {
>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>-      this.timer.start();
>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>+  this.timer.start();
>> };
>>
>> /**
>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer = function(event) {
>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>  */
>> MyInitialView.prototype.timerHandler = function(event) {
>>-      this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>;
>>+
>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString());
>> };
>>
>> /**
>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>function(event) {
>>  */
>> MyInitialView.prototype.$EH0 = function(event)
>> {
>>-      this.startTimer(event);
>>+  this.startTimer(event);
>> };
>>
>> /**
>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>  */
>> MyInitialView.prototype.$EH1 = function(event)
>> {
>>-      this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>-      this.timer.stop();
>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>+  this.timer.stop();
>> };
>>
>> /**
>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>  */
>> MyInitialView.prototype.$EH2 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('cityListChanged'));
>> };
>>
>> /**
>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>  */
>> MyInitialView.prototype.$EH3 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('transferClicked'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('transferClicked'));
>> };
>>
>> /**
>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>  */
>> MyInitialView.prototype.$EH4 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('listChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('listChanged'));
>> };
>>
>> /**
>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>  */
>> MyInitialView.prototype.$EH5 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('buttonClicked'));
>> };
>>
>> /**
>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>  */
>> MyInitialView.prototype.$EH6 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>> };
>>
>> /**
>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>  */
>> MyInitialView.prototype.get_lbl = function()
>> {
>>-      return this.lbl;
>>+  return this.lbl;
>> };
>>
>> /**
>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>  */
>> MyInitialView.prototype.set_lbl = function(value)
>> {
>>-      if (value != this.lbl)
>>-              this.lbl = value;
>>+  if (value != this.lbl)
>>+    this.lbl = value;
>> };
>>
>> /**
>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>  */
>> MyInitialView.prototype.get_timerLabel = function()
>> {
>>-      return this.timerLabel;
>>+  return this.timerLabel;
>> };
>>
>> /**
>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>  */
>> MyInitialView.prototype.set_timerLabel = function(value)
>> {
>>-      if (value != this.timerLabel)
>>-              this.timerLabel = value;
>>+  if (value != this.timerLabel)
>>+    this.timerLabel = value;
>> };
>>
>> /**
>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>function(value)
>>  */
>> MyInitialView.prototype.get_cityList = function()
>> {
>>-      return this.cityList;
>>+  return this.cityList;
>> };
>>
>> /**
>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>  */
>> MyInitialView.prototype.set_cityList = function(value)
>> {
>>-      if (value != this.cityList)
>>-              this.cityList = value;
>>+  if (value != this.cityList)
>>+    this.cityList = value;
>> };
>>
>> /**
>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList = function(value)
>>  */
>> MyInitialView.prototype.get_input = function()
>> {
>>-      return this.input;
>>+  return this.input;
>> };
>>
>> /**
>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>  */
>> MyInitialView.prototype.set_input = function(value)
>> {
>>-      if (value != this.input)
>>-              this.input = value;
>>+  if (value != this.input)
>>+    this.input = value;
>> };
>>
>> /**
>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>  */
>> MyInitialView.prototype.get_checkbox = function()
>> {
>>-      return this.checkbox;
>>+  return this.checkbox;
>> };
>>
>> /**
>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>  */
>> MyInitialView.prototype.set_checkbox = function(value)
>> {
>>-      if (value != this.checkbox)
>>-              this.checkbox = value;
>>+  if (value != this.checkbox)
>>+    this.checkbox = value;
>> };
>>
>> /**
>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox = function(value)
>>  */
>> MyInitialView.prototype.get_list = function()
>> {
>>-      return this.list;
>>+  return this.list;
>> };
>>
>> /**
>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>  */
>> MyInitialView.prototype.set_list = function(value)
>> {
>>-      if (value != this.list)
>>-              this.list = value;
>>+  if (value != this.list)
>>+    this.list = value;
>> };
>>
>> /**
>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>  */
>> MyInitialView.prototype.get_comboBox = function()
>> {
>>-      return this.comboBox;
>>+  return this.comboBox;
>> };
>>
>> /**
>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>  */
>> MyInitialView.prototype.set_comboBox = function(value)
>> {
>>-      if (value != this.comboBox)
>>-              this.comboBox = value;
>>+  if (value != this.comboBox)
>>+    this.comboBox = value;
>> };
>>
>> /**
>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>function(value)
>>  */
>> MyInitialView.prototype.get_MXMLDescriptor = function()
>> {
>>-      if (this.mxmldd == undefined)
>>-      {
>>-              /** @type {Array} */
>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>-              /** @type {Array} */
>>-              var data = [
>>+  if (this.mxmldd == undefined)
>>+  {
>>+    /** @type {Array} */
>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>+    /** @type {Array} */
>>+    var data = [
>> org.apache.flex.html.staticControls.Label,
>> 4,
>> 'id',
>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>'_id', true, '$ID15', 'source
>> this.$EH6,
>> null
>> ];
>>-
>>-              if (arr)
>>-                      this.mxmldd = arr.concat(data);
>>-              else
>>-                      this.mxmldd = data;
>>-      }
>>-      return this.mxmldd;
>>+
>>+    if (arr)
>>+      this.mxmldd = arr.concat(data);
>>+    else
>>+      this.mxmldd = data;
>>+  }
>>+  return this.mxmldd;
>> };
>>
>>
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>index c80f220..36d2f14 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>@@ -1,110 +1,124 @@
>> goog.provide('controllers.MyController');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @implements {org.apache.flex.core.IDocument}
>>  * @param {org.apache.flex.core.Application=} app
>>  */
>> controllers.MyController = function(app) {
>>-      app = typeof app !== 'undefined' ? app : null;
>>-      if (app) {
>>-              this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>>-              app.addEventListener("viewChanged", goog.bind(this.viewChangeHandler,
>>this));
>>-      }
>>+  app = typeof app !== 'undefined' ? app : null;
>>+  if (app) {
>>+    this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>>+    app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>>+  }
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> controllers.MyController.prototype.queryBegin =
>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fina
>>nce.quotes%20where%20symbol%20in%20(%22";
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> controllers.MyController.prototype.queryEnd =
>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json
>>";
>>
>>+
>> /**
>>  * @private
>>  * @type {FlexJSTest_again}
>>  */
>> controllers.MyController.prototype.app;
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.viewChangeHandler = function(event) {
>>-      this.app.initialView.addEventListener("buttonClicked",
>>goog.bind(this.buttonClickHandler, this));
>>-      this.app.initialView.addEventListener("listChanged",
>>goog.bind(this.listChangedHandler, this));
>>-      this.app.initialView.addEventListener("cityListChanged",
>>goog.bind(this.cityListChangeHandler, this));
>>-      this.app.initialView.addEventListener("transferClicked",
>>goog.bind(this.transferClickHandler, this));
>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>goog.bind(this.comboBoxChangeHandler, this));
>>+  this.app.initialView.addEventListener("buttonClicked",
>>goog.bind(this.buttonClickHandler, this));
>>+  this.app.initialView.addEventListener("listChanged",
>>goog.bind(this.listChangedHandler, this));
>>+  this.app.initialView.addEventListener("cityListChanged",
>>goog.bind(this.cityListChangeHandler, this));
>>+  this.app.initialView.addEventListener("transferClicked",
>>goog.bind(this.transferClickHandler, this));
>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>goog.bind(this.comboBoxChangeHandler, this));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.buttonClickHandler = function(event) {
>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>MyInitialView */.get_symbol();
>>-      this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>>-      this.app.get_service().send();
>>-      this.app.get_service().addEventListener("complete",
>>goog.bind(this.completeHandler, this));
>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>MyInitialView */.get_symbol();
>>+  this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>>+  this.app.get_service().send();
>>+  this.app.get_service().addEventListener("complete",
>>goog.bind(this.completeHandler, this));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.completeHandler = function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>>().getItemAt(0), String));
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>>().getItemAt(0), String));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.listChangedHandler = function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_symbol());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_symbol());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.cityListChangeHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_city());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_city());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.transferClickHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_inputText());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_inputText());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.comboBoxChangeHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_comboBoxValue());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_comboBoxValue());
>> };
>>
>>+
>> /**
>>  * @expose
>>  * @param {Object} document
>>  * @param {string=} id
>>  */
>> controllers.MyController.prototype.setDocument = function(document, id) {
>>-      id = typeof id !== 'undefined' ? id : null;
>>-      this.app = org.apache.flex.utils.Language.as(document,
>>FlexJSTest_again);
>>-      this.app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>>+  id = typeof id !== 'undefined' ? id : null;
>>+  this.app = org.apache.flex.utils.Language.as(document,
>>FlexJSTest_again);
>>+  this.app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 38422d6..eb9c7a2 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
>>@@ -1,63 +1,72 @@
>> goog.provide('models.MyModel');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {org.apache.flex.events.EventDispatcher}
>>  */
>> models.MyModel = function() {
>>-      goog.base(this);
>>+  goog.base(this);
>> }
>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> models.MyModel.prototype._labelText;
>>
>>+
>> /**
>>  * @expose
>>  * @return {string}
>>  */
>> models.MyModel.prototype.get_labelText = function() {
>>-      return this._labelText;
>>+  return this._labelText;
>> };
>>
>>+
>> /**
>>  * @expose
>>  * @param {string} value
>>  */
>> models.MyModel.prototype.set_labelText = function(value) {
>>-      if (value != this._labelText) {
>>-              this._labelText = value;
>>-              this.dispatchEvent(new
>>org.apache.flex.events.Event("labelTextChanged"));
>>-      }
>>+  if (value != this._labelText) {
>>+    this._labelText = value;
>>+    this.dispatchEvent(new
>>org.apache.flex.events.Event("labelTextChanged"));
>>+  }
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {Array}
>>  */
>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>"YHOO"];
>>
>>+
>> /**
>>  * @expose
>>  * @return {Array}
>>  */
>> models.MyModel.prototype.get_strings = function() {
>>-      return this._strings;
>>+  return this._strings;
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {Array}
>>  */
>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>"Sydney", "Tokyo"];
>>
>>+
>> /**
>>  * @expose
>>  * @return {Array}
>>  */
>> models.MyModel.prototype.get_cities = function() {
>>-      return this._cities;
>>-};
>>\ No newline at end of file
>>+  return this._cities;
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 6923f67..3edfc62 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
>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>> goog.require('org.apache.flex.core.Application');
>> goog.require('org.apache.flex.html.staticControls.Button');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {org.apache.flex.core.Application}
>>  */
>> wildcard_import = function() {
>>-      goog.base(this);
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldd;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldp;
>>+  goog.base(this);
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldd;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldp;
>> };
>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>
>>+
>> /**
>>  * @private
>>  */
>> wildcard_import.prototype.tmp = function() {
>>-      var /** @type {Button} */ myButton;
>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>+  var /** @type {Button} */ myButton;
>>+  myButton = new org.apache.flex.html.staticControls.Button();
>> };
>>-
>>-
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>index 3168e0c..ace15bb 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>@@ -1,12 +1,12 @@
>> goog.provide('Test');
>>
>> goog.require('classes.A');
>>-
>> goog.require('interfaces.IA');
>> goog.require('interfaces.IE');
>>-
>> goog.require('org.apache.flex.utils.Language');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {classes.A}
>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>  * @implements {interfaces.IE}
>>  */
>> Test = function() {
>>-      goog.base(this);
>>-}
>>+  goog.base(this);
>>+};
>> goog.inherits(Test, classes.A);
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>index 48c2497..1df9f5d 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>
>> goog.require('classes.C');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {classes.C}
>>  */
>> classes.A = function() {
>>-      goog.base(this);
>>-}
>>-goog.inherits(classes.A, classes.C);
>>\ No newline at end of file
>>+  goog.base(this);
>>+};
>>+goog.inherits(classes.A, classes.C);
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>index d1fe335..3dd8adb 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>@@ -1,8 +1,9 @@
>> goog.provide('classes.B');
>>
>>
>>+
>> /**
>>  * @constructor
>>  */
>> classes.B = function() {
>>-};
>>\ No newline at end of file
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>index 7aa37e6..9c7bb13 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>@@ -1,8 +1,9 @@
>> goog.provide('classes.C');
>>
>>
>>+
>> /**
>>  * @constructor
>>  */
>> classes.C = function() {
>>-};
>>\ No newline at end of file
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>index 97b7e18..360c807 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>
>> goog.require('interfaces.IC');
>>
>>+
>>+
>> /**
>>  * @interface
>>  * @extends {interfaces.IC}
>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>> interfaces.IA = function() {
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>index e50057d..611cfb6 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>@@ -1,5 +1,7 @@
>> goog.provide('interfaces.IB');
>>
>>+
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>index db01166..35f794d 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>
>> goog.require('interfaces.ID');
>>
>>+
>>+
>> /**
>>  * @interface
>>  * @extends {interfaces.ID}
>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>> interfaces.IC = function() {
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>index d25c4a4..dfa6505 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>@@ -1,6 +1,7 @@
>> goog.provide('interfaces.ID');
>>
>>
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>index bb526de..c91f544 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>@@ -1,6 +1,7 @@
>> goog.provide('interfaces.IE');
>>
>>
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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/JSFl
>>exJSEmitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>index 5edb70b..e8a2e62 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>> import java.util.Collection;
>> import java.util.HashSet;
>> import java.util.Iterator;
>>+import java.util.List;
>>+import java.util.Map;
>> import java.util.Set;
>>
>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>> import org.apache.flex.compiler.common.ASModifier;
>> import org.apache.flex.compiler.common.ModifiersSet;
>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>> import org.apache.flex.compiler.definitions.IDefinition;
>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>> import
>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassific
>>ation;
>>@@ -75,6 +78,7 @@ import org.apache.flex.compiler.tree.as.IInterfaceNode;
>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>> import org.apache.flex.compiler.tree.as.ISetterNode;
>> import org.apache.flex.compiler.tree.as.ITypeNode;
>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>     private ICompilerProject project;
>>
>>     @Override
>>+    protected String getIndent(int numIndent)
>>+    {
>>+        final StringBuilder sb = new StringBuilder();
>>+        for (int i = 0; i < numIndent; i++)
>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>+        return sb.toString();
>>+    }
>>+
>>+    @Override
>>     protected void emitMemberName(IDefinitionNode node)
>>     {
>>         write(node.getName());
>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>
>>         project = getWalker().getProject();
>>
>>-        super.emitClass(node);
>>+        IClassDefinition definition = node.getDefinition();
>>+
>>+        IFunctionDefinition ctorDefinition = definition.getConstructor();
>>+
>>+        // Static-only (Singleton) classes may not have a constructor
>>+        if (ctorDefinition != null)
>>+        {
>>+            IFunctionNode ctorNode = (IFunctionNode)
>>ctorDefinition.getNode();
>>+            if (ctorNode != null)
>>+            {
>>+                // constructor
>>+                emitMethod(ctorNode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+            else
>>+            {
>>+                String qname = definition.getQualifiedName();
>>+                if (qname != null && !qname.equals(""))
>>+                {
>>+                    write(qname);
>>+                    write(ASEmitterTokens.SPACE);
>>+                    writeToken(ASEmitterTokens.EQUAL);
>>+                    write(ASEmitterTokens.FUNCTION);
>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>+                    write(ASEmitterTokens.SPACE);
>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>+                    writeNewline();
>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>+                    write(ASEmitterTokens.SEMICOLON);
>>+                }
>>+            }
>>+        }
>>+
>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>+        for (IDefinitionNode dnode : dnodes)
>>+        {
>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>+            {
>>+                writeNewline();
>>+                writeNewline();
>>+                writeNewline();
>>+                emitField((IVariableNode) dnode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>+            {
>>+                if (!((IFunctionNode) dnode).isConstructor())
>>+                {
>>+                    writeNewline();
>>+                    writeNewline();
>>+                    writeNewline();
>>+                    emitMethod((IFunctionNode) dnode);
>>+                    write(ASEmitterTokens.SEMICOLON);
>>+                }
>>+            }
>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>+            {
>>+                writeNewline();
>>+                writeNewline();
>>+                writeNewline();
>>+                emitAccessors((IAccessorNode) dnode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+        }
>>     }
>>
>>     @Override
>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>     }
>>
>>     @Override
>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>+    {
>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>+        if (pnodes.length == 0)
>>+            return;
>>+
>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>+
>>+        if (defaults != null)
>>+        {
>>+            final StringBuilder code = new StringBuilder();
>>+
>>+            if (!hasBody(node))
>>+            {
>>+                indentPush();
>>+                write(JSFlexJSEmitterTokens.INDENT);
>>+            }
>>+
>>+            List<IParameterNode> parameters = new
>>ArrayList<IParameterNode>(
>>+                    defaults.values());
>>+
>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>+            {
>>+                IParameterNode pnode = parameters.get(i);
>>+
>>+                if (pnode != null)
>>+                {
>>+                    code.setLength(0);
>>+
>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+
>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getDefaultValue());
>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>+
>>+                    write(code.toString());
>>+
>>+                    if (i == n - 1 && !hasBody(node))
>>+                        indentPop();
>>+
>>+                    writeNewline();
>>+                }
>>+            }
>>+        }
>>+    }
>>+
>>+    @Override
>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>     {
>>         ASTNodeID id = node.getNodeID();
>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>         writtenInstances.add(cname); // make sure we don't add ourselves
>>
>>+        boolean emitsRequires = false;
>>         if (requiresList != null)
>>         {
>>             for (String imp : requiresList)
>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>+
>>                     writtenInstances.add(imp);
>>+
>>+                    emitsRequires = true;
>>                 }
>>             }
>>-
>>-            if (requiresList.size() > 1
>>-                    || (requiresList.size() == 1 &&
>>requiresList.get(0).indexOf(
>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>-            {
>>-                writeNewline();
>>-            }
>>         }
>>
>>+        boolean emitsInterfaces = false;
>>         if (interfacesList != null)
>>         {
>>             for (String imp : interfacesList)
>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>-            }
>>-
>>-            if (interfacesList.size() > 0)
>>-            {
>>-                writeNewline();
>>+
>>+                emitsInterfaces = true;
>>             }
>>         }
>>
>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>         //              'as' operators. We don't need to worry about
>>requiring
>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>will NOT
>>         //              include any of the code if it is not used in the
>>project.
>>-        if (flexProject.mainCU != null &&
>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>+        boolean isMainCU = flexProject.mainCU != null &&
>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>+        if (isMainCU)
>>         {
>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>             write(ASEmitterTokens.PAREN_OPEN);
>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>             write(ASEmitterTokens.PAREN_CLOSE);
>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>+        }
>>+
>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>+        {
>>             writeNewline();
>>         }
>>+
>>+        writeNewline();
>>+        writeNewline();
>>     }
>>
>>     @Override
>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>             {
>>                 writeNewline();
>>                 writeNewline();
>>+                writeNewline();
>>                 getDoc().begin();
>>                 getDoc().emitConst(null);
>>                 getDoc().end();
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter
>>Tokens.java
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>index 10ff880..53110c1 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>@@ -27,6 +27,7 @@ import org.apache.flex.compiler.codegen.IEmitterTokens;
>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>> {
>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>+    INDENT("  "),
>>     INTERFACES("interfaces"),
>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>     UNDERSCORE("_"),
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.jav
>>a
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>index 30e70bb..dc039a9 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         }
>>     }
>>
>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>     {
>>         IParameterNode[] pnodes = node.getParameterNodes();
>>         if (pnodes.length == 0)
>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         super(out);
>>     }
>>
>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>nodes)
>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>nodes)
>>     {
>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>IParameterNode>();
>>         int i = 0;
>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         return false;
>>     }
>>
>>-    private static boolean hasBody(IFunctionNode node)
>>+    protected static boolean hasBody(IFunctionNode node)
>>     {
>>         IScopedNode scope = node.getScopedNode();
>>         return scope.getChildCount() > 0;
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmi
>>tter.java
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>index 444b26a..cd7aad7 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>implements
>>         super(out);
>>     }
>>
>>+    @Override
>>+    protected String getIndent(int numIndent)
>>+    {
>>+        final StringBuilder sb = new StringBuilder();
>>+        for (int i = 0; i < numIndent; i++)
>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>+        return sb.toString();
>>+    }
>>+
>>
>>//------------------------------------------------------------------------
>>--
>>
>>     @Override
>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>MXMLEmitter implements
>>         if (project.mainCU != null &&
>>                 cu.getName().equals(project.mainCU.getName()))
>>         {
>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>-            write(ASEmitterTokens.PAREN_OPEN);
>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>-            writeNewline();
>>+
>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>         }
>>+
>>+        writeNewline();
>>+        writeNewline();
>>     }
>>
>>     private void emitHeaderLine(String qname)
>>
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Re: [1/4] Initial commit of 'correct' whitespace emission.

Posted by Erik de Bruin <er...@ixsoftware.nl>.
It's passing for me, both in Eclipse and from the terminal (OSX 10.9).
What is the test complaining about?

EdB



On Tue, Nov 12, 2013 at 8:07 PM, Alex Harui <ah...@adobe.com> wrote:
> I'm getting one failure in compiler.jx.tests in
> org.apache.flex.compiler.internal.codegen.mxml.flexjs.TestFlexJSMXMLApplica
> tion
>
>
> Is it passing for others?
>
> -Alex
>
> On 11/12/13 3:05 AM, "erikdebruin@apache.org" <er...@apache.org>
> wrote:
>
>>Updated Branches:
>>  refs/heads/develop 026a53c72 -> dc0c5fe49
>>
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 2bebadd..5ef10ba 100644
>>--- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>+++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_result.js
>>@@ -21,157 +21,157 @@ goog.require('org.apache.flex.utils.Timer');
>>  * @extends {org.apache.flex.core.ViewBase}
>>  */
>> MyInitialView = function() {
>>-      goog.base(this);
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.Label}
>>-       */
>>-      this.lbl;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>-       */
>>-      this.$ID0;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID1;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID2;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.Label}
>>-       */
>>-      this.timerLabel;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.List}
>>-       */
>>-      this.cityList;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID3;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextArea}
>>-       */
>>-      this.$ID5;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.SimpleBinding}
>>-       */
>>-      this.$ID4;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextInput}
>>-       */
>>-      this.input;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID6;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.CheckBox}
>>-       */
>>-      this.checkbox;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID7;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID8;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID9;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID10;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID11;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.RadioButton}
>>-       */
>>-      this.$ID12;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.DropDownList}
>>-       */
>>-      this.list;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID13;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.TextButton}
>>-       */
>>-      this.$ID14;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.html.staticControls.ComboBox}
>>-       */
>>-      this.comboBox;
>>-
>>-      /**
>>-       * @private
>>-       * @type {org.apache.flex.binding.ConstantBinding}
>>-       */
>>-      this.$ID15;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldd;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldp;
>>+  goog.base(this);
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.Label}
>>+   */
>>+  this.lbl;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>+   */
>>+  this.$ID0;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID1;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID2;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.Label}
>>+   */
>>+  this.timerLabel;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.List}
>>+   */
>>+  this.cityList;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID3;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextArea}
>>+   */
>>+  this.$ID5;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.SimpleBinding}
>>+   */
>>+  this.$ID4;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextInput}
>>+   */
>>+  this.input;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID6;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.CheckBox}
>>+   */
>>+  this.checkbox;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID7;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID8;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID9;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID10;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID11;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.RadioButton}
>>+   */
>>+  this.$ID12;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.DropDownList}
>>+   */
>>+  this.list;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID13;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.TextButton}
>>+   */
>>+  this.$ID14;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.html.staticControls.ComboBox}
>>+   */
>>+  this.comboBox;
>>+
>>+  /**
>>+   * @private
>>+   * @type {org.apache.flex.binding.ConstantBinding}
>>+   */
>>+  this.$ID15;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldd;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldp;
>> };
>> goog.inherits(MyInitialView, org.apache.flex.core.ViewBase);
>>
>>@@ -186,7 +186,7 @@ MyInitialView.prototype.timer;
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_symbol = function() {
>>-      return
>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>String);
>>+  return
>>org.apache.flex.utils.Language.as(this.get_list().get_selectedItem(),
>>String);
>> };
>>
>> /**
>>@@ -194,7 +194,7 @@ MyInitialView.prototype.get_symbol = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_city = function() {
>>-      return
>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>>String);
>>+  return
>>org.apache.flex.utils.Language.as(this.get_cityList().get_selectedItem(),
>>String);
>> };
>>
>> /**
>>@@ -202,7 +202,7 @@ MyInitialView.prototype.get_city = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_inputText = function() {
>>-      return this.get_input().get_text();
>>+  return this.get_input().get_text();
>> };
>>
>> /**
>>@@ -210,7 +210,7 @@ MyInitialView.prototype.get_inputText = function() {
>>  * @return {string}
>>  */
>> MyInitialView.prototype.get_comboBoxValue = function() {
>>-      return String(this.get_comboBox().get_selectedItem());
>>+  return String(this.get_comboBox().get_selectedItem());
>> };
>>
>> /**
>>@@ -218,9 +218,9 @@ MyInitialView.prototype.get_comboBoxValue =
>>function() {
>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>  */
>> MyInitialView.prototype.startTimer = function(event) {
>>-      this.timer = new org.apache.flex.utils.Timer(1000);
>>-      this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>-      this.timer.start();
>>+  this.timer = new org.apache.flex.utils.Timer(1000);
>>+  this.timer.addEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>+  this.timer.start();
>> };
>>
>> /**
>>@@ -228,7 +228,7 @@ MyInitialView.prototype.startTimer = function(event) {
>>  * @param {org.apache.flex.events.org.apache.flex.events.Event} event
>>  */
>> MyInitialView.prototype.timerHandler = function(event) {
>>-      this.get_timerLabel().set_text(this.timer.get_currentCount().toString())
>>;
>>+
>>this.get_timerLabel().set_text(this.timer.get_currentCount().toString());
>> };
>>
>> /**
>>@@ -238,7 +238,7 @@ MyInitialView.prototype.timerHandler =
>>function(event) {
>>  */
>> MyInitialView.prototype.$EH0 = function(event)
>> {
>>-      this.startTimer(event);
>>+  this.startTimer(event);
>> };
>>
>> /**
>>@@ -248,8 +248,8 @@ MyInitialView.prototype.$EH0 = function(event)
>>  */
>> MyInitialView.prototype.$EH1 = function(event)
>> {
>>-      this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>-      this.timer.stop();
>>+  this.timer.removeEventListener('timer', goog.bind(this.timerHandler,
>>this));
>>+  this.timer.stop();
>> };
>>
>> /**
>>@@ -259,7 +259,7 @@ MyInitialView.prototype.$EH1 = function(event)
>>  */
>> MyInitialView.prototype.$EH2 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('cityListChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('cityListChanged'));
>> };
>>
>> /**
>>@@ -269,7 +269,7 @@ MyInitialView.prototype.$EH2 = function(event)
>>  */
>> MyInitialView.prototype.$EH3 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('transferClicked'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('transferClicked'));
>> };
>>
>> /**
>>@@ -279,7 +279,7 @@ MyInitialView.prototype.$EH3 = function(event)
>>  */
>> MyInitialView.prototype.$EH4 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('listChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('listChanged'));
>> };
>>
>> /**
>>@@ -289,7 +289,7 @@ MyInitialView.prototype.$EH4 = function(event)
>>  */
>> MyInitialView.prototype.$EH5 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('buttonClicked'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('buttonClicked'));
>> };
>>
>> /**
>>@@ -299,7 +299,7 @@ MyInitialView.prototype.$EH5 = function(event)
>>  */
>> MyInitialView.prototype.$EH6 = function(event)
>> {
>>-      this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>>+  this.dispatchEvent(new
>>org.apache.flex.events.CustomEvent('comboBoxChanged'));
>> };
>>
>> /**
>>@@ -309,7 +309,7 @@ MyInitialView.prototype.$EH6 = function(event)
>>  */
>> MyInitialView.prototype.get_lbl = function()
>> {
>>-      return this.lbl;
>>+  return this.lbl;
>> };
>>
>> /**
>>@@ -319,8 +319,8 @@ MyInitialView.prototype.get_lbl = function()
>>  */
>> MyInitialView.prototype.set_lbl = function(value)
>> {
>>-      if (value != this.lbl)
>>-              this.lbl = value;
>>+  if (value != this.lbl)
>>+    this.lbl = value;
>> };
>>
>> /**
>>@@ -330,7 +330,7 @@ MyInitialView.prototype.set_lbl = function(value)
>>  */
>> MyInitialView.prototype.get_timerLabel = function()
>> {
>>-      return this.timerLabel;
>>+  return this.timerLabel;
>> };
>>
>> /**
>>@@ -340,8 +340,8 @@ MyInitialView.prototype.get_timerLabel = function()
>>  */
>> MyInitialView.prototype.set_timerLabel = function(value)
>> {
>>-      if (value != this.timerLabel)
>>-              this.timerLabel = value;
>>+  if (value != this.timerLabel)
>>+    this.timerLabel = value;
>> };
>>
>> /**
>>@@ -351,7 +351,7 @@ MyInitialView.prototype.set_timerLabel =
>>function(value)
>>  */
>> MyInitialView.prototype.get_cityList = function()
>> {
>>-      return this.cityList;
>>+  return this.cityList;
>> };
>>
>> /**
>>@@ -361,8 +361,8 @@ MyInitialView.prototype.get_cityList = function()
>>  */
>> MyInitialView.prototype.set_cityList = function(value)
>> {
>>-      if (value != this.cityList)
>>-              this.cityList = value;
>>+  if (value != this.cityList)
>>+    this.cityList = value;
>> };
>>
>> /**
>>@@ -372,7 +372,7 @@ MyInitialView.prototype.set_cityList = function(value)
>>  */
>> MyInitialView.prototype.get_input = function()
>> {
>>-      return this.input;
>>+  return this.input;
>> };
>>
>> /**
>>@@ -382,8 +382,8 @@ MyInitialView.prototype.get_input = function()
>>  */
>> MyInitialView.prototype.set_input = function(value)
>> {
>>-      if (value != this.input)
>>-              this.input = value;
>>+  if (value != this.input)
>>+    this.input = value;
>> };
>>
>> /**
>>@@ -393,7 +393,7 @@ MyInitialView.prototype.set_input = function(value)
>>  */
>> MyInitialView.prototype.get_checkbox = function()
>> {
>>-      return this.checkbox;
>>+  return this.checkbox;
>> };
>>
>> /**
>>@@ -403,8 +403,8 @@ MyInitialView.prototype.get_checkbox = function()
>>  */
>> MyInitialView.prototype.set_checkbox = function(value)
>> {
>>-      if (value != this.checkbox)
>>-              this.checkbox = value;
>>+  if (value != this.checkbox)
>>+    this.checkbox = value;
>> };
>>
>> /**
>>@@ -414,7 +414,7 @@ MyInitialView.prototype.set_checkbox = function(value)
>>  */
>> MyInitialView.prototype.get_list = function()
>> {
>>-      return this.list;
>>+  return this.list;
>> };
>>
>> /**
>>@@ -424,8 +424,8 @@ MyInitialView.prototype.get_list = function()
>>  */
>> MyInitialView.prototype.set_list = function(value)
>> {
>>-      if (value != this.list)
>>-              this.list = value;
>>+  if (value != this.list)
>>+    this.list = value;
>> };
>>
>> /**
>>@@ -435,7 +435,7 @@ MyInitialView.prototype.set_list = function(value)
>>  */
>> MyInitialView.prototype.get_comboBox = function()
>> {
>>-      return this.comboBox;
>>+  return this.comboBox;
>> };
>>
>> /**
>>@@ -445,8 +445,8 @@ MyInitialView.prototype.get_comboBox = function()
>>  */
>> MyInitialView.prototype.set_comboBox = function(value)
>> {
>>-      if (value != this.comboBox)
>>-              this.comboBox = value;
>>+  if (value != this.comboBox)
>>+    this.comboBox = value;
>> };
>>
>> /**
>>@@ -456,12 +456,12 @@ MyInitialView.prototype.set_comboBox =
>>function(value)
>>  */
>> MyInitialView.prototype.get_MXMLDescriptor = function()
>> {
>>-      if (this.mxmldd == undefined)
>>-      {
>>-              /** @type {Array} */
>>-              var arr = goog.base(this, 'get_MXMLDescriptor');
>>-              /** @type {Array} */
>>-              var data = [
>>+  if (this.mxmldd == undefined)
>>+  {
>>+    /** @type {Array} */
>>+    var arr = goog.base(this, 'get_MXMLDescriptor');
>>+    /** @type {Array} */
>>+    var data = [
>> org.apache.flex.html.staticControls.Label,
>> 4,
>> 'id',
>>@@ -835,13 +835,13 @@ null, [org.apache.flex.binding.ConstantBinding, 4,
>>'_id', true, '$ID15', 'source
>> this.$EH6,
>> null
>> ];
>>-
>>-              if (arr)
>>-                      this.mxmldd = arr.concat(data);
>>-              else
>>-                      this.mxmldd = data;
>>-      }
>>-      return this.mxmldd;
>>+
>>+    if (arr)
>>+      this.mxmldd = arr.concat(data);
>>+    else
>>+      this.mxmldd = data;
>>+  }
>>+  return this.mxmldd;
>> };
>>
>>
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/files/controllers/MyController_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>index c80f220..36d2f14 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/files/controllers/MyController_resul
>>t.js
>>@@ -1,110 +1,124 @@
>> goog.provide('controllers.MyController');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @implements {org.apache.flex.core.IDocument}
>>  * @param {org.apache.flex.core.Application=} app
>>  */
>> controllers.MyController = function(app) {
>>-      app = typeof app !== 'undefined' ? app : null;
>>-      if (app) {
>>-              this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>>-              app.addEventListener("viewChanged", goog.bind(this.viewChangeHandler,
>>this));
>>-      }
>>+  app = typeof app !== 'undefined' ? app : null;
>>+  if (app) {
>>+    this.app = org.apache.flex.utils.Language.as(app, FlexJSTest_again);
>>+    app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>>+  }
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> controllers.MyController.prototype.queryBegin =
>>"http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.fina
>>nce.quotes%20where%20symbol%20in%20(%22";
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> controllers.MyController.prototype.queryEnd =
>>"%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json
>>";
>>
>>+
>> /**
>>  * @private
>>  * @type {FlexJSTest_again}
>>  */
>> controllers.MyController.prototype.app;
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.viewChangeHandler = function(event) {
>>-      this.app.initialView.addEventListener("buttonClicked",
>>goog.bind(this.buttonClickHandler, this));
>>-      this.app.initialView.addEventListener("listChanged",
>>goog.bind(this.listChangedHandler, this));
>>-      this.app.initialView.addEventListener("cityListChanged",
>>goog.bind(this.cityListChangeHandler, this));
>>-      this.app.initialView.addEventListener("transferClicked",
>>goog.bind(this.transferClickHandler, this));
>>-      this.app.initialView.addEventListener("comboBoxChanged",
>>goog.bind(this.comboBoxChangeHandler, this));
>>+  this.app.initialView.addEventListener("buttonClicked",
>>goog.bind(this.buttonClickHandler, this));
>>+  this.app.initialView.addEventListener("listChanged",
>>goog.bind(this.listChangedHandler, this));
>>+  this.app.initialView.addEventListener("cityListChanged",
>>goog.bind(this.cityListChangeHandler, this));
>>+  this.app.initialView.addEventListener("transferClicked",
>>goog.bind(this.transferClickHandler, this));
>>+  this.app.initialView.addEventListener("comboBoxChanged",
>>goog.bind(this.comboBoxChangeHandler, this));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.buttonClickHandler = function(event) {
>>-      var /** @type {string} */ sym = this.app.initialView/** Cast to
>>MyInitialView */.get_symbol();
>>-      this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>>-      this.app.get_service().send();
>>-      this.app.get_service().addEventListener("complete",
>>goog.bind(this.completeHandler, this));
>>+  var /** @type {string} */ sym = this.app.initialView/** Cast to
>>MyInitialView */.get_symbol();
>>+  this.app.get_service().set_url(this.queryBegin + sym + this.queryEnd);
>>+  this.app.get_service().send();
>>+  this.app.get_service().addEventListener("complete",
>>goog.bind(this.completeHandler, this));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.completeHandler = function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>>().getItemAt(0), String));
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(org.apache.flex.utils.Language.as(this.app.get_collection
>>().getItemAt(0), String));
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.listChangedHandler = function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_symbol());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_symbol());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.cityListChangeHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_city());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_city());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.transferClickHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_inputText());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_inputText());
>> };
>>
>>+
>> /**
>>  * @private
>>  * @param {org.apache.flex.events.Event} event
>>  */
>> controllers.MyController.prototype.comboBoxChangeHandler =
>>function(event) {
>>-      this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_comboBoxValue());
>>+  this.app.model/** Cast to models.MyModel
>>*/.set_labelText(this.app.initialView/** Cast to MyInitialView
>>*/.get_comboBoxValue());
>> };
>>
>>+
>> /**
>>  * @expose
>>  * @param {Object} document
>>  * @param {string=} id
>>  */
>> controllers.MyController.prototype.setDocument = function(document, id) {
>>-      id = typeof id !== 'undefined' ? id : null;
>>-      this.app = org.apache.flex.utils.Language.as(document,
>>FlexJSTest_again);
>>-      this.app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>>+  id = typeof id !== 'undefined' ? id : null;
>>+  this.app = org.apache.flex.utils.Language.as(document,
>>FlexJSTest_again);
>>+  this.app.addEventListener("viewChanged",
>>goog.bind(this.viewChangeHandler, this));
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 38422d6..eb9c7a2 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
>>@@ -1,63 +1,72 @@
>> goog.provide('models.MyModel');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {org.apache.flex.events.EventDispatcher}
>>  */
>> models.MyModel = function() {
>>-      goog.base(this);
>>+  goog.base(this);
>> }
>> goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
>>
>>+
>> /**
>>  * @private
>>  * @type {string}
>>  */
>> models.MyModel.prototype._labelText;
>>
>>+
>> /**
>>  * @expose
>>  * @return {string}
>>  */
>> models.MyModel.prototype.get_labelText = function() {
>>-      return this._labelText;
>>+  return this._labelText;
>> };
>>
>>+
>> /**
>>  * @expose
>>  * @param {string} value
>>  */
>> models.MyModel.prototype.set_labelText = function(value) {
>>-      if (value != this._labelText) {
>>-              this._labelText = value;
>>-              this.dispatchEvent(new
>>org.apache.flex.events.Event("labelTextChanged"));
>>-      }
>>+  if (value != this._labelText) {
>>+    this._labelText = value;
>>+    this.dispatchEvent(new
>>org.apache.flex.events.Event("labelTextChanged"));
>>+  }
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {Array}
>>  */
>> models.MyModel.prototype._strings = ["AAPL", "ADBE", "GOOG", "MSFT",
>>"YHOO"];
>>
>>+
>> /**
>>  * @expose
>>  * @return {Array}
>>  */
>> models.MyModel.prototype.get_strings = function() {
>>-      return this._strings;
>>+  return this._strings;
>> };
>>
>>+
>> /**
>>  * @private
>>  * @type {Array}
>>  */
>> models.MyModel.prototype._cities = ["London", "Miami", "Paris",
>>"Sydney", "Tokyo"];
>>
>>+
>> /**
>>  * @expose
>>  * @return {Array}
>>  */
>> models.MyModel.prototype.get_cities = function() {
>>-      return this._cities;
>>-};
>>\ No newline at end of file
>>+  return this._cities;
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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 6923f67..3edfc62 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
>>@@ -3,33 +3,34 @@ goog.provide('wildcard_import');
>> goog.require('org.apache.flex.core.Application');
>> goog.require('org.apache.flex.html.staticControls.Button');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {org.apache.flex.core.Application}
>>  */
>> wildcard_import = function() {
>>-      goog.base(this);
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldd;
>>-
>>-      /**
>>-       * @private
>>-       * @type {Array}
>>-       */
>>-      this.mxmldp;
>>+  goog.base(this);
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldd;
>>+
>>+  /**
>>+   * @private
>>+   * @type {Array}
>>+   */
>>+  this.mxmldp;
>> };
>> goog.inherits(wildcard_import, org.apache.flex.core.Application);
>>
>>+
>> /**
>>  * @private
>>  */
>> wildcard_import.prototype.tmp = function() {
>>-      var /** @type {Button} */ myButton;
>>-      myButton = new org.apache.flex.html.staticControls.Button();
>>+  var /** @type {Button} */ myButton;
>>+  myButton = new org.apache.flex.html.staticControls.Button();
>> };
>>-
>>-
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>index 3168e0c..ace15bb 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/Test_result.js
>>@@ -1,12 +1,12 @@
>> goog.provide('Test');
>>
>> goog.require('classes.A');
>>-
>> goog.require('interfaces.IA');
>> goog.require('interfaces.IE');
>>-
>> goog.require('org.apache.flex.utils.Language');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {classes.A}
>>@@ -14,10 +14,11 @@ goog.require('org.apache.flex.utils.Language');
>>  * @implements {interfaces.IE}
>>  */
>> Test = function() {
>>-      goog.base(this);
>>-}
>>+  goog.base(this);
>>+};
>> goog.inherits(Test, classes.A);
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/A_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>index 48c2497..1df9f5d 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/A_result
>>.js
>>@@ -2,11 +2,13 @@ goog.provide('classes.A');
>>
>> goog.require('classes.C');
>>
>>+
>>+
>> /**
>>  * @constructor
>>  * @extends {classes.C}
>>  */
>> classes.A = function() {
>>-      goog.base(this);
>>-}
>>-goog.inherits(classes.A, classes.C);
>>\ No newline at end of file
>>+  goog.base(this);
>>+};
>>+goog.inherits(classes.A, classes.C);
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/B_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>index d1fe335..3dd8adb 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/B_result
>>.js
>>@@ -1,8 +1,9 @@
>> goog.provide('classes.B');
>>
>>
>>+
>> /**
>>  * @constructor
>>  */
>> classes.B = function() {
>>-};
>>\ No newline at end of file
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/classes/C_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>index 7aa37e6..9c7bb13 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/classes/C_result
>>.js
>>@@ -1,8 +1,9 @@
>> goog.provide('classes.C');
>>
>>
>>+
>> /**
>>  * @constructor
>>  */
>> classes.C = function() {
>>-};
>>\ No newline at end of file
>>+};
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>index 97b7e18..360c807 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IA_re
>>sult.js
>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IA');
>>
>> goog.require('interfaces.IC');
>>
>>+
>>+
>> /**
>>  * @interface
>>  * @extends {interfaces.IC}
>>@@ -9,6 +11,7 @@ goog.require('interfaces.IC');
>> interfaces.IA = function() {
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>index e50057d..611cfb6 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IB_re
>>sult.js
>>@@ -1,5 +1,7 @@
>> goog.provide('interfaces.IB');
>>
>>+
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>index db01166..35f794d 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IC_re
>>sult.js
>>@@ -2,6 +2,8 @@ goog.provide('interfaces.IC');
>>
>> goog.require('interfaces.ID');
>>
>>+
>>+
>> /**
>>  * @interface
>>  * @extends {interfaces.ID}
>>@@ -9,6 +11,7 @@ goog.require('interfaces.ID');
>> interfaces.IC = function() {
>> };
>>
>>+
>> /**
>>  * @const
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>index d25c4a4..dfa6505 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/ID_re
>>sult.js
>>@@ -1,6 +1,7 @@
>> goog.provide('interfaces.ID');
>>
>>
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_result.js
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>index bb526de..c91f544 100644
>>---
>>a/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>+++
>>b/compiler.jx.tests/test-files/flexjs/projects/interfaces/interfaces/IE_re
>>sult.js
>>@@ -1,6 +1,7 @@
>> goog.provide('interfaces.IE');
>>
>>
>>+
>> /**
>>  * @interface
>>  */
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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/JSFl
>>exJSEmitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>index 5edb70b..e8a2e62 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitter.java
>>@@ -24,6 +24,8 @@ import java.util.ArrayList;
>> import java.util.Collection;
>> import java.util.HashSet;
>> import java.util.Iterator;
>>+import java.util.List;
>>+import java.util.Map;
>> import java.util.Set;
>>
>> import org.apache.flex.compiler.codegen.IASGlobalFunctionConstants;
>>@@ -31,6 +33,7 @@ import org.apache.flex.compiler.codegen.IDocEmitter;
>> import org.apache.flex.compiler.codegen.js.flexjs.IJSFlexJSEmitter;
>> import org.apache.flex.compiler.common.ASModifier;
>> import org.apache.flex.compiler.common.ModifiersSet;
>>+import org.apache.flex.compiler.definitions.IClassDefinition;
>> import org.apache.flex.compiler.definitions.IDefinition;
>> import org.apache.flex.compiler.definitions.IFunctionDefinition;
>> import
>>org.apache.flex.compiler.definitions.IFunctionDefinition.FunctionClassific
>>ation;
>>@@ -75,6 +78,7 @@ import org.apache.flex.compiler.tree.as.IInterfaceNode;
>> import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
>> import org.apache.flex.compiler.tree.as.ILiteralNode;
>> import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
>>+import org.apache.flex.compiler.tree.as.IParameterNode;
>> import org.apache.flex.compiler.tree.as.ISetterNode;
>> import org.apache.flex.compiler.tree.as.ITypeNode;
>> import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
>>@@ -103,6 +107,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>     private ICompilerProject project;
>>
>>     @Override
>>+    protected String getIndent(int numIndent)
>>+    {
>>+        final StringBuilder sb = new StringBuilder();
>>+        for (int i = 0; i < numIndent; i++)
>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>+        return sb.toString();
>>+    }
>>+
>>+    @Override
>>     protected void emitMemberName(IDefinitionNode node)
>>     {
>>         write(node.getName());
>>@@ -115,7 +128,72 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>
>>         project = getWalker().getProject();
>>
>>-        super.emitClass(node);
>>+        IClassDefinition definition = node.getDefinition();
>>+
>>+        IFunctionDefinition ctorDefinition = definition.getConstructor();
>>+
>>+        // Static-only (Singleton) classes may not have a constructor
>>+        if (ctorDefinition != null)
>>+        {
>>+            IFunctionNode ctorNode = (IFunctionNode)
>>ctorDefinition.getNode();
>>+            if (ctorNode != null)
>>+            {
>>+                // constructor
>>+                emitMethod(ctorNode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+            else
>>+            {
>>+                String qname = definition.getQualifiedName();
>>+                if (qname != null && !qname.equals(""))
>>+                {
>>+                    write(qname);
>>+                    write(ASEmitterTokens.SPACE);
>>+                    writeToken(ASEmitterTokens.EQUAL);
>>+                    write(ASEmitterTokens.FUNCTION);
>>+                    write(ASEmitterTokens.PAREN_OPEN);
>>+                    write(ASEmitterTokens.PAREN_CLOSE);
>>+                    write(ASEmitterTokens.SPACE);
>>+                    write(ASEmitterTokens.BLOCK_OPEN);
>>+                    writeNewline();
>>+                    write(ASEmitterTokens.BLOCK_CLOSE);
>>+                    write(ASEmitterTokens.SEMICOLON);
>>+                }
>>+            }
>>+        }
>>+
>>+        IDefinitionNode[] dnodes = node.getAllMemberNodes();
>>+        for (IDefinitionNode dnode : dnodes)
>>+        {
>>+            if (dnode.getNodeID() == ASTNodeID.VariableID)
>>+            {
>>+                writeNewline();
>>+                writeNewline();
>>+                writeNewline();
>>+                emitField((IVariableNode) dnode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+            else if (dnode.getNodeID() == ASTNodeID.FunctionID)
>>+            {
>>+                if (!((IFunctionNode) dnode).isConstructor())
>>+                {
>>+                    writeNewline();
>>+                    writeNewline();
>>+                    writeNewline();
>>+                    emitMethod((IFunctionNode) dnode);
>>+                    write(ASEmitterTokens.SEMICOLON);
>>+                }
>>+            }
>>+            else if (dnode.getNodeID() == ASTNodeID.GetterID
>>+                    || dnode.getNodeID() == ASTNodeID.SetterID)
>>+            {
>>+                writeNewline();
>>+                writeNewline();
>>+                writeNewline();
>>+                emitAccessors((IAccessorNode) dnode);
>>+                write(ASEmitterTokens.SEMICOLON);
>>+            }
>>+        }
>>     }
>>
>>     @Override
>>@@ -681,6 +759,71 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>     }
>>
>>     @Override
>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>+    {
>>+        IParameterNode[] pnodes = node.getParameterNodes();
>>+        if (pnodes.length == 0)
>>+            return;
>>+
>>+        Map<Integer, IParameterNode> defaults = getDefaults(pnodes);
>>+
>>+        if (defaults != null)
>>+        {
>>+            final StringBuilder code = new StringBuilder();
>>+
>>+            if (!hasBody(node))
>>+            {
>>+                indentPush();
>>+                write(JSFlexJSEmitterTokens.INDENT);
>>+            }
>>+
>>+            List<IParameterNode> parameters = new
>>ArrayList<IParameterNode>(
>>+                    defaults.values());
>>+
>>+            for (int i = 0, n = parameters.size(); i < n; i++)
>>+            {
>>+                IParameterNode pnode = parameters.get(i);
>>+
>>+                if (pnode != null)
>>+                {
>>+                    code.setLength(0);
>>+
>>+                    /* x = typeof y !== 'undefined' ? y : z;\n */
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.EQUAL.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.TYPEOF.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+
>>code.append(ASEmitterTokens.STRICT_NOT_EQUAL.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>+                    code.append(ASEmitterTokens.UNDEFINED.getToken());
>>+                    code.append(ASEmitterTokens.SINGLE_QUOTE.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.TERNARY.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getName());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(ASEmitterTokens.COLON.getToken());
>>+                    code.append(ASEmitterTokens.SPACE.getToken());
>>+                    code.append(pnode.getDefaultValue());
>>+                    code.append(ASEmitterTokens.SEMICOLON.getToken());
>>+
>>+                    write(code.toString());
>>+
>>+                    if (i == n - 1 && !hasBody(node))
>>+                        indentPop();
>>+
>>+                    writeNewline();
>>+                }
>>+            }
>>+        }
>>+    }
>>+
>>+    @Override
>>     public void emitBinaryOperator(IBinaryOperatorNode node)
>>     {
>>         ASTNodeID id = node.getNodeID();
>>@@ -889,6 +1032,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>         ArrayList<String> writtenInstances = new ArrayList<String>();
>>         writtenInstances.add(cname); // make sure we don't add ourselves
>>
>>+        boolean emitsRequires = false;
>>         if (requiresList != null)
>>         {
>>             for (String imp : requiresList)
>>@@ -913,18 +1057,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>                     write(ASEmitterTokens.SINGLE_QUOTE);
>>                     write(ASEmitterTokens.PAREN_CLOSE);
>>                     writeNewline(ASEmitterTokens.SEMICOLON);
>>+
>>                     writtenInstances.add(imp);
>>+
>>+                    emitsRequires = true;
>>                 }
>>             }
>>-
>>-            if (requiresList.size() > 1
>>-                    || (requiresList.size() == 1 &&
>>requiresList.get(0).indexOf(
>>-                            JSGoogEmitterTokens.AS3.getToken()) == -1))
>>-            {
>>-                writeNewline();
>>-            }
>>         }
>>
>>+        boolean emitsInterfaces = false;
>>         if (interfacesList != null)
>>         {
>>             for (String imp : interfacesList)
>>@@ -936,11 +1077,8 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>                 write(ASEmitterTokens.SINGLE_QUOTE);
>>                 write(ASEmitterTokens.PAREN_CLOSE);
>>                 writeNewline(ASEmitterTokens.SEMICOLON);
>>-            }
>>-
>>-            if (interfacesList.size() > 0)
>>-            {
>>-                writeNewline();
>>+
>>+                emitsInterfaces = true;
>>             }
>>         }
>>
>>@@ -948,8 +1086,9 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>         //              'as' operators. We don't need to worry about
>>requiring
>>         //              this in every project: ADVANCED_OPTIMISATIONS
>>will NOT
>>         //              include any of the code if it is not used in the
>>project.
>>-        if (flexProject.mainCU != null &&
>>-                cu.getName().equals(flexProject.mainCU.getName()))
>>+        boolean isMainCU = flexProject.mainCU != null &&
>>+                    cu.getName().equals(flexProject.mainCU.getName());
>>+        if (isMainCU)
>>         {
>>             write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>             write(ASEmitterTokens.PAREN_OPEN);
>>@@ -958,8 +1097,15 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>             write(ASEmitterTokens.SINGLE_QUOTE);
>>             write(ASEmitterTokens.PAREN_CLOSE);
>>             writeNewline(ASEmitterTokens.SEMICOLON);
>>+        }
>>+
>>+        if (emitsRequires || emitsInterfaces || isMainCU)
>>+        {
>>             writeNewline();
>>         }
>>+
>>+        writeNewline();
>>+        writeNewline();
>>     }
>>
>>     @Override
>>@@ -983,6 +1129,7 @@ public class JSFlexJSEmitter extends JSGoogEmitter
>>implements IJSFlexJSEmitter
>>             {
>>                 writeNewline();
>>                 writeNewline();
>>+                writeNewline();
>>                 getDoc().begin();
>>                 getDoc().emitConst(null);
>>                 getDoc().end();
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter
>>Tokens.java
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>index 10ff880..53110c1 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFl
>>exJSEmitterTokens.java
>>@@ -27,6 +27,7 @@ import org.apache.flex.compiler.codegen.IEmitterTokens;
>> public enum JSFlexJSEmitterTokens implements IEmitterTokens
>> {
>>     FLEXJS_CLASS_INFO("FLEXJS_CLASS_INFO"),
>>+    INDENT("  "),
>>     INTERFACES("interfaces"),
>>     LANGUAGE_QNAME("org.apache.flex.utils.Language"),
>>     UNDERSCORE("_"),
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.jav
>>a
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>index 30e70bb..dc039a9 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoog
>>Emitter.java
>>@@ -704,7 +704,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         }
>>     }
>>
>>-    private void emitDefaultParameterCodeBlock(IFunctionNode node)
>>+    protected void emitDefaultParameterCodeBlock(IFunctionNode node)
>>     {
>>         IParameterNode[] pnodes = node.getParameterNodes();
>>         if (pnodes.length == 0)
>>@@ -869,7 +869,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         super(out);
>>     }
>>
>>-    private Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>nodes)
>>+    protected Map<Integer, IParameterNode> getDefaults(IParameterNode[]
>>nodes)
>>     {
>>         Map<Integer, IParameterNode> result = new HashMap<Integer,
>>IParameterNode>();
>>         int i = 0;
>>@@ -953,7 +953,7 @@ public class JSGoogEmitter extends JSEmitter
>>implements IJSGoogEmitter
>>         return false;
>>     }
>>
>>-    private static boolean hasBody(IFunctionNode node)
>>+    protected static boolean hasBody(IFunctionNode node)
>>     {
>>         IScopedNode scope = node.getScopedNode();
>>         return scope.getChildCount() > 0;
>>
>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/compiler.
>>jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmi
>>tter.java
>>----------------------------------------------------------------------
>>diff --git
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>index 444b26a..cd7aad7 100644
>>---
>>a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>+++
>>b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MX
>>MLFlexJSEmitter.java
>>@@ -103,6 +103,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter
>>implements
>>         super(out);
>>     }
>>
>>+    @Override
>>+    protected String getIndent(int numIndent)
>>+    {
>>+        final StringBuilder sb = new StringBuilder();
>>+        for (int i = 0; i < numIndent; i++)
>>+            sb.append(JSFlexJSEmitterTokens.INDENT.getToken());
>>+        return sb.toString();
>>+    }
>>+
>>
>>//------------------------------------------------------------------------
>>--
>>
>>     @Override
>>@@ -1386,15 +1395,11 @@ public class MXMLFlexJSEmitter extends
>>MXMLEmitter implements
>>         if (project.mainCU != null &&
>>                 cu.getName().equals(project.mainCU.getName()))
>>         {
>>-            write(JSGoogEmitterTokens.GOOG_REQUIRE);
>>-            write(ASEmitterTokens.PAREN_OPEN);
>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>-            write(JSFlexJSEmitterTokens.LANGUAGE_QNAME);
>>-            write(ASEmitterTokens.SINGLE_QUOTE);
>>-            write(ASEmitterTokens.PAREN_CLOSE);
>>-            writeNewline(ASEmitterTokens.SEMICOLON);
>>-            writeNewline();
>>+
>>emitHeaderLine(JSFlexJSEmitterTokens.LANGUAGE_QNAME.getToken());
>>         }
>>+
>>+        writeNewline();
>>+        writeNewline();
>>     }
>>
>>     private void emitHeaderLine(String qname)
>>
>



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl