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" <e...@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 <aha...@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, "erikdebr...@apache.org" <erikdebr...@apache.org> >> wrote: >> >>>Updated Branches: >>> refs/heads/develop 026a53c72 -> dc0c5fe49 >>> >>> >>>http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c4bdbf59/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