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 <aha...@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, "erikdebr...@apache.org" <erikdebr...@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

Reply via email to