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