You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/04/13 20:56:10 UTC
[18/51] [partial] git commit: [flex-falcon]
[refs/heads/feature/maven-migration-test] - - Check-In of the migrated
project to make error analysis easier
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again.mxml
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again.mxml b/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again.mxml
new file mode 100644
index 0000000..2f3cbbd
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again.mxml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:local="*"
+ xmlns:basic="library://ns.apache.org/flexjs/basic"
+ xmlns:models="models.*"
+ xmlns:controllers="controllers.*"
+ initialize="MyModel(model).labelText='Hello World'"
+ >
+ <basic:valuesImpl>
+ <basic:SimpleCSSValuesImpl />
+ </basic:valuesImpl>
+ <basic:initialView>
+ <local:MyInitialView />
+ </basic:initialView>
+ <basic:model>
+ <models:MyModel />
+ </basic:model>
+ <basic:controller>
+ <controllers:MyController />
+ </basic:controller>
+ <basic:beads>
+ <basic:HTTPService id="service">
+ <basic:LazyCollection id="collection">
+ <basic:inputParser>
+ <basic:JSONInputParser />
+ </basic:inputParser>
+ <basic:itemConverter>
+ <local:StockDataJSONItemConverter />
+ </basic:itemConverter>
+ </basic:LazyCollection>
+ </basic:HTTPService>
+ </basic:beads>
+</basic:Application>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again_result.js b/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again_result.js
new file mode 100644
index 0000000..71eb945
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/FlexJSTest_again_result.js
@@ -0,0 +1,212 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * FlexJSTest_again
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('FlexJSTest_again');
+
+goog.require('org.apache.flex.core.Application');
+goog.require('org.apache.flex.core.SimpleCSSValuesImpl');
+goog.require('MyInitialView');
+goog.require('models.MyModel');
+goog.require('controllers.MyController');
+goog.require('org.apache.flex.net.HTTPService');
+goog.require('org.apache.flex.collections.LazyCollection');
+goog.require('org.apache.flex.collections.parsers.JSONInputParser');
+goog.require('StockDataJSONItemConverter');
+goog.require('org.apache.flex.events.Event');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.Application}
+ */
+FlexJSTest_again = function() {
+ FlexJSTest_again.base(this, 'constructor');
+
+ /**
+ * @private
+ * @type {org.apache.flex.core.SimpleCSSValuesImpl}
+ */
+ this.$ID0_;
+
+ /**
+ * @private
+ * @type {MyInitialView}
+ */
+ this.$ID1_;
+
+ /**
+ * @private
+ * @type {models.MyModel}
+ */
+ this.$ID2_;
+
+ /**
+ * @private
+ * @type {controllers.MyController}
+ */
+ this.$ID3_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.net.HTTPService}
+ */
+ this.service_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.collections.LazyCollection}
+ */
+ this.collection_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.collections.parsers.JSONInputParser}
+ */
+ this.$ID4_;
+
+ /**
+ * @private
+ * @type {StockDataJSONItemConverter}
+ */
+ this.$ID5_;
+
+ /**
+ * @private
+ * @type {Array}
+ */
+ this.mxmldd;
+
+ /**
+ * @private
+ * @type {Array}
+ */
+ this.mxmldp;
+
+ this.generateMXMLAttributes
+ ([5,
+'model',
+false,
+[models.MyModel, 1, '_id', true, '$ID2', 0, 0, null],
+'valuesImpl',
+false,
+[org.apache.flex.core.SimpleCSSValuesImpl, 1, '_id', true, '$ID0', 0, 0, null],
+'initialView',
+false,
+[MyInitialView, 1, '_id', true, '$ID1', 0, 0, null],
+'controller',
+false,
+[controllers.MyController, 1, '_id', true, '$ID3', 0, 0, null],
+'beads',
+null, [org.apache.flex.net.HTTPService, 2, 'id', true, 'service', 'beads', null, [org.apache.flex.collections.LazyCollection, 3, 'id', true, 'collection', 'inputParser', false, [org.apache.flex.collections.parsers.JSONInputParser, 1, '_id', true, '$ID4', 0, 0, null], 'itemConverter', false, [StockDataJSONItemConverter, 1, '_id', true, '$ID5', 0, 0, null], 0, 0, null], 0, 0, null],
+0,
+1,
+'initialize',
+this.$EH0
+ ]);
+
+};
+goog.inherits(FlexJSTest_again, org.apache.flex.core.Application);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+FlexJSTest_again.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'FlexJSTest_again', qName: 'FlexJSTest_again' }] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('FlexJSTest_again', FlexJSTest_again);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+FlexJSTest_again.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ 'service': { type: 'org.apache.flex.net.HTTPService', declaredBy: 'FlexJSTest_again'},
+ 'collection': { type: 'org.apache.flex.collections.LazyCollection', declaredBy: 'FlexJSTest_again'}
+ };
+ },
+ methods: function () {
+ return {
+ '$EH0': { type: 'void', declaredBy: 'FlexJSTest_again'}
+ };
+ }
+ };
+};
+
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+FlexJSTest_again.prototype.$EH0 = function(event)
+{
+ org.apache.flex.utils.Language.as(this.model, models.MyModel, true).labelText = 'Hello World';
+};
+
+
+Object.defineProperties(FlexJSTest_again.prototype, /** @lends {FlexJSTest_again.prototype} */ {
+/** @export */
+ service: {
+ /** @this {FlexJSTest_again} */
+ get: function() {
+ return this.service_;
+ },
+ /** @this {FlexJSTest_again} */
+ set: function(value) {
+ if (value != this.service_) {
+ this.service_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'service', null, value));
+ }
+ }
+ },
+ /** @export */
+ collection: {
+ /** @this {FlexJSTest_again} */
+ get: function() {
+ return this.collection_;
+ },
+ /** @this {FlexJSTest_again} */
+ set: function(value) {
+ if (value != this.collection_) {
+ this.collection_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'collection', null, value));
+ }
+ }
+ }
+});
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/LocalFunction.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/LocalFunction.as b/compiler-jx/src/test/resources/flexjs/files/LocalFunction.as
new file mode 100644
index 0000000..70d3981
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/LocalFunction.as
@@ -0,0 +1,44 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+
+ public class LocalFunction
+ {
+ public function LocalFunction() {}
+
+ private var myMemberProperty:String = "got it: ";
+
+ private function myMemberMethod(value:int):void
+ {
+ function myLocalFunction(value:int):String
+ {
+ return myMemberProperty + value;
+ }
+
+ trace("WOW! :: " + myLocalFunction(value + 42));
+ }
+
+ public function doIt():void
+ {
+ myMemberMethod(624);
+ }
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/LocalFunction_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/LocalFunction_result.js b/compiler-jx/src/test/resources/flexjs/files/LocalFunction_result.js
new file mode 100644
index 0000000..c86bba7
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/LocalFunction_result.js
@@ -0,0 +1,99 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * LocalFunction
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('LocalFunction');
+
+
+
+/**
+ * @constructor
+ */
+LocalFunction = function() {
+};
+
+
+/**
+ * @private
+ * @type {string}
+ */
+LocalFunction.prototype.myMemberProperty = "got it: ";
+
+
+/**
+ * @private
+ * @param {number} value
+ */
+LocalFunction.prototype.myMemberMethod = function(value) {
+ var self = this;
+ function myLocalFunction(value) {
+ return this.myMemberProperty + value;
+ };
+ org.apache.flex.utils.Language.trace("WOW! :: " + myLocalFunction(value + 42));
+};
+
+
+/**
+ * @export
+ */
+LocalFunction.prototype.doIt = function() {
+ this.myMemberMethod(624);
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+LocalFunction.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'LocalFunction', qName: 'LocalFunction'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('LocalFunction', LocalFunction);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+LocalFunction.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'LocalFunction': { type: '', declaredBy: 'LocalFunction'},
+ 'doIt': { type: 'void', declaredBy: 'LocalFunction'}
+ };
+ }
+ };
+};
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/MyInitialView.mxml b/compiler-jx/src/test/resources/flexjs/files/MyInitialView.mxml
new file mode 100644
index 0000000..2c30fd6
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/MyInitialView.mxml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<basic:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:basic="library://ns.apache.org/flexjs/basic"
+ >
+ <fx:Script>
+ <![CDATA[
+ import org.apache.flex.events.CustomEvent;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.utils.Timer;
+
+ private var timer:org.apache.flex.utils.Timer;
+
+ public function get symbol():String
+ {
+ return list.selectedItem as String;
+ }
+
+ public function get city():String
+ {
+ return cityList.selectedItem as String;
+ }
+
+ public function get inputText():String
+ {
+ return input.text;
+ }
+
+ public function get comboBoxValue():String
+ {
+ return String(comboBox.selectedItem);
+ }
+
+ public function startTimer(event:org.apache.flex.events.Event):void
+ {
+ timer = new org.apache.flex.utils.Timer(1000);
+ timer.addEventListener('timer', timerHandler);
+ timer.start()
+ }
+
+ public function timerHandler(event:org.apache.flex.events.Event):void
+ {
+ timerLabel.text = timer.currentCount.toString();
+ }
+ ]]>
+ </fx:Script>
+ <basic:Label id="lbl" x="100" y="25" >
+ <basic:beads>
+ <basic:SimpleBinding eventName="labelTextChanged"
+ sourceID="applicationModel"
+ sourcePropertyName="labelText"
+ destinationPropertyName="text" />
+ </basic:beads>
+ </basic:Label>
+ <basic:TextButton text="Let's Start Timer" x="100" y="75" click="startTimer(event)" />
+ <basic:TextButton text="Stop Timer" x="100" y="100" click="timer.removeEventListener('timer', timerHandler);timer.stop()" />
+ <basic:Label id="timerLabel" x="100" y="125" />
+
+ <basic:List id="cityList" x="200" y="75" width="100" height="75" change="dispatchEvent(new CustomEvent('cityListChanged'))">
+ <basic:beads>
+ <basic:ConstantBinding
+ sourceID="applicationModel"
+ sourcePropertyName="cities"
+ destinationPropertyName="dataProvider" />
+ </basic:beads>
+ </basic:List>
+
+ <basic:TextArea x="320" y="25" width="150" height="75">
+ <basic:beads>
+ <basic:SimpleBinding eventName="labelTextChanged"
+ sourceID="applicationModel"
+ sourcePropertyName="labelText"
+ destinationPropertyName="text" />
+ </basic:beads>
+ </basic:TextArea>
+ <basic:TextInput id="input" x="320" y="110" />
+ <basic:TextButton text="Transfer" x="320" y="138" click="dispatchEvent(new CustomEvent('transferClicked'))" />
+
+ <basic:CheckBox id="checkbox" x="320" y="170" text="Check Me" />
+
+ <basic:RadioButton groupName="group1" text="Apples" value="0" x="100" y="150" />
+ <basic:RadioButton groupName="group1" text="Oranges" value="1" x="100" y="170" selected="true" />
+ <basic:RadioButton groupName="group1" text="Grapes" value="2" x="100" y="190" />
+
+ <basic:RadioButton groupName="group2" text="Red" value="red" x="100" y="250" selected="true" />
+ <basic:RadioButton groupName="group2" text="Green" value="green" x="100" y="270" />
+ <basic:RadioButton groupName="group2" text="Blue" value="blue" x="100" y="290" />
+
+ <basic:DropDownList id="list" x="200" y="200" width="100" height="24" change="dispatchEvent(new CustomEvent('listChanged'))">
+ <basic:beads>
+ <basic:ConstantBinding
+ sourceID="applicationModel"
+ sourcePropertyName="strings"
+ destinationPropertyName="dataProvider" />
+ </basic:beads>
+ </basic:DropDownList>
+ <basic:TextButton text="OK" x="200" y="230" click="dispatchEvent(new CustomEvent('buttonClicked'))" />
+
+ <basic:ComboBox id="comboBox" x="320" y="200" width="100" change="dispatchEvent(new CustomEvent('comboBoxChanged'))">
+ <basic:beads>
+ <basic:ConstantBinding
+ sourceID="applicationModel"
+ sourcePropertyName="cities"
+ destinationPropertyName="dataProvider" />
+ </basic:beads>
+ </basic:ComboBox>
+
+</basic:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js b/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
new file mode 100644
index 0000000..95b90ce
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
@@ -0,0 +1,889 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * MyInitialView
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('MyInitialView');
+
+goog.require('org.apache.flex.core.ViewBase');
+goog.require('org.apache.flex.html.Label');
+goog.require('org.apache.flex.binding.SimpleBinding');
+goog.require('org.apache.flex.html.TextButton');
+goog.require('org.apache.flex.html.List');
+goog.require('org.apache.flex.binding.ConstantBinding');
+goog.require('org.apache.flex.html.TextArea');
+goog.require('org.apache.flex.html.TextInput');
+goog.require('org.apache.flex.html.CheckBox');
+goog.require('org.apache.flex.html.RadioButton');
+goog.require('org.apache.flex.html.DropDownList');
+goog.require('org.apache.flex.html.ComboBox');
+goog.require('org.apache.flex.events.CustomEvent');
+goog.require('org.apache.flex.events.Event');
+goog.require('org.apache.flex.events.MouseEvent');
+goog.require('org.apache.flex.utils.Timer');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.ViewBase}
+ */
+MyInitialView = function() {
+ MyInitialView.base(this, 'constructor');
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.Label}
+ */
+ this.lbl_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.binding.SimpleBinding}
+ */
+ this.$ID0_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextButton}
+ */
+ this.$ID1_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextButton}
+ */
+ this.$ID2_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.Label}
+ */
+ this.timerLabel_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.List}
+ */
+ this.cityList_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.binding.ConstantBinding}
+ */
+ this.$ID3_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextArea}
+ */
+ this.$ID5_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.binding.SimpleBinding}
+ */
+ this.$ID4_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextInput}
+ */
+ this.input_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextButton}
+ */
+ this.$ID6_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.CheckBox}
+ */
+ this.checkbox_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID7_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID8_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID9_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID10_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID11_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.RadioButton}
+ */
+ this.$ID12_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.DropDownList}
+ */
+ this.list_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.binding.ConstantBinding}
+ */
+ this.$ID13_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.TextButton}
+ */
+ this.$ID14_;
+
+ /**
+ * @private
+ * @type {org.apache.flex.html.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);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+MyInitialView.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'MyInitialView', qName: 'MyInitialView' }] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('MyInitialView', MyInitialView);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+MyInitialView.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ 'symbol': { type: 'String', declaredBy: 'MyInitialView'},
+ 'city': { type: 'String', declaredBy: 'MyInitialView'},
+ 'inputText': { type: 'String', declaredBy: 'MyInitialView'},
+ 'comboBoxValue': { type: 'String', declaredBy: 'MyInitialView'},
+ 'lbl': { type: 'org.apache.flex.html.Label', declaredBy: 'MyInitialView'},
+ 'timerLabel': { type: 'org.apache.flex.html.Label', declaredBy: 'MyInitialView'},
+ 'cityList': { type: 'org.apache.flex.html.List', declaredBy: 'MyInitialView'},
+ 'input': { type: 'org.apache.flex.html.TextInput', declaredBy: 'MyInitialView'},
+ 'checkbox': { type: 'org.apache.flex.html.CheckBox', declaredBy: 'MyInitialView'},
+ 'list': { type: 'org.apache.flex.html.DropDownList', declaredBy: 'MyInitialView'},
+ 'comboBox': { type: 'org.apache.flex.html.ComboBox', declaredBy: 'MyInitialView'}
+ };
+ },
+ methods: function () {
+ return {
+ 'startTimer': { type: 'void', declaredBy: 'MyInitialView'},
+ 'timerHandler': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH0': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH1': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH2': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH3': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH4': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH5': { type: 'void', declaredBy: 'MyInitialView'},
+ '$EH6': { type: 'void', declaredBy: 'MyInitialView'}
+ };
+ }
+ };
+};
+
+
+
+/**
+ * @private
+ * @type {org.apache.flex.utils.Timer}
+ */
+MyInitialView.prototype.timer;
+
+
+;
+
+
+;
+
+
+;
+
+
+;
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+MyInitialView.prototype.startTimer = function(event) {
+ this.timer = new org.apache.flex.utils.Timer(1000);
+ this.timer.addEventListener('timer', org.apache.flex.utils.Language.closure(this.timerHandler, this, 'timerHandler'));
+ this.timer.start();
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+MyInitialView.prototype.timerHandler = function(event) {
+ this.timerLabel.text = this.timer.currentCount.toString();
+};
+
+
+
+
+
+Object.defineProperties(MyInitialView.prototype, /** @lends {MyInitialView.prototype} */ {
+/** @export */
+symbol: {
+get: /** @this {MyInitialView} */ function() {
+ return org.apache.flex.utils.Language.as(this.list.selectedItem, String);
+}},
+/** @export */
+city: {
+get: /** @this {MyInitialView} */ function() {
+ return org.apache.flex.utils.Language.as(this.cityList.selectedItem, String);
+}},
+/** @export */
+inputText: {
+get: /** @this {MyInitialView} */ function() {
+ return this.input.text;
+}},
+/** @export */
+comboBoxValue: {
+get: /** @this {MyInitialView} */ function() {
+ return String(this.comboBox.selectedItem);
+}}}
+);/**
+ * @export
+ * @param {org.apache.flex.events.MouseEvent} event
+ */
+MyInitialView.prototype.$EH0 = function(event)
+{
+ this.startTimer(event);
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.MouseEvent} event
+ */
+MyInitialView.prototype.$EH1 = function(event)
+{
+ this.timer.removeEventListener('timer', org.apache.flex.utils.Language.closure(this.timerHandler, this, 'timerHandler'));
+ this.timer.stop();
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+MyInitialView.prototype.$EH2 = function(event)
+{
+ this.dispatchEvent(new org.apache.flex.events.CustomEvent('cityListChanged'));
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.MouseEvent} event
+ */
+MyInitialView.prototype.$EH3 = function(event)
+{
+ this.dispatchEvent(new org.apache.flex.events.CustomEvent('transferClicked'));
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+MyInitialView.prototype.$EH4 = function(event)
+{
+ this.dispatchEvent(new org.apache.flex.events.CustomEvent('listChanged'));
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.MouseEvent} event
+ */
+MyInitialView.prototype.$EH5 = function(event)
+{
+ this.dispatchEvent(new org.apache.flex.events.CustomEvent('buttonClicked'));
+};
+
+
+/**
+ * @export
+ * @param {org.apache.flex.events.Event} event
+ */
+MyInitialView.prototype.$EH6 = function(event)
+{
+ this.dispatchEvent(new org.apache.flex.events.CustomEvent('comboBoxChanged'));
+};
+
+
+Object.defineProperties(MyInitialView.prototype, /** @lends {MyInitialView.prototype} */ {
+/** @export */
+ lbl: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.lbl_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.lbl_) {
+ this.lbl_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'lbl', null, value));
+ }
+ }
+ },
+ /** @export */
+ timerLabel: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.timerLabel_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.timerLabel_) {
+ this.timerLabel_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'timerLabel', null, value));
+ }
+ }
+ },
+ /** @export */
+ cityList: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.cityList_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.cityList_) {
+ this.cityList_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'cityList', null, value));
+ }
+ }
+ },
+ /** @export */
+ input: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.input_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.input_) {
+ this.input_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'input', null, value));
+ }
+ }
+ },
+ /** @export */
+ checkbox: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.checkbox_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.checkbox_) {
+ this.checkbox_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'checkbox', null, value));
+ }
+ }
+ },
+ /** @export */
+ list: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.list_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.list_) {
+ this.list_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'list', null, value));
+ }
+ }
+ },
+ /** @export */
+ comboBox: {
+ /** @this {MyInitialView} */
+ get: function() {
+ return this.comboBox_;
+ },
+ /** @this {MyInitialView} */
+ set: function(value) {
+ if (value != this.comboBox_) {
+ this.comboBox_ = value;
+ this.dispatchEvent(org.apache.flex.events.ValueChangeEvent.createUpdateEvent(this, 'comboBox', null, value));
+ }
+ }
+ },
+ 'MXMLDescriptor': {
+ /** @this {MyInitialView} */
+ get: function() {
+ {
+ if (this.mxmldd == undefined)
+ {
+ /** @type {Array} */
+ var arr = org.apache.flex.utils.Language.superGetter(MyInitialView,this, 'MXMLDescriptor');
+ /** @type {Array} */
+ var data = [
+ org.apache.flex.html.Label,
+4,
+'id',
+true,
+'lbl',
+'x',
+true,
+100,
+'y',
+true,
+25,
+'beads',
+null, [org.apache.flex.binding.SimpleBinding, 5, '_id', true, '$ID0', 'eventName', true, 'labelTextChanged', 'sourceID', true, 'applicationModel', 'sourcePropertyName', true, 'labelText', 'destinationPropertyName', true, 'text', 0, 0, null],
+0,
+0,
+null,
+org.apache.flex.html.TextButton,
+4,
+'_id',
+true,
+'$ID1',
+'text',
+true,
+'Let\'s Start Timer',
+'x',
+true,
+100,
+'y',
+true,
+75,
+0,
+1,
+'click',
+this.$EH0,
+null,
+org.apache.flex.html.TextButton,
+4,
+'_id',
+true,
+'$ID2',
+'text',
+true,
+'Stop Timer',
+'x',
+true,
+100,
+'y',
+true,
+100,
+0,
+1,
+'click',
+this.$EH1,
+null,
+org.apache.flex.html.Label,
+3,
+'id',
+true,
+'timerLabel',
+'x',
+true,
+100,
+'y',
+true,
+125,
+0,
+0,
+null,
+org.apache.flex.html.List,
+6,
+'id',
+true,
+'cityList',
+'x',
+true,
+200,
+'y',
+true,
+75,
+'width',
+true,
+100,
+'height',
+true,
+75,
+'beads',
+null, [org.apache.flex.binding.ConstantBinding, 4, '_id', true, '$ID3', 'sourceID', true, 'applicationModel', 'sourcePropertyName', true, 'cities', 'destinationPropertyName', true, 'dataProvider', 0, 0, null],
+0,
+1,
+'change',
+this.$EH2,
+null,
+org.apache.flex.html.TextArea,
+6,
+'_id',
+true,
+'$ID5',
+'x',
+true,
+320,
+'y',
+true,
+25,
+'width',
+true,
+150,
+'height',
+true,
+75,
+'beads',
+null, [org.apache.flex.binding.SimpleBinding, 5, '_id', true, '$ID4', 'eventName', true, 'labelTextChanged', 'sourceID', true, 'applicationModel', 'sourcePropertyName', true, 'labelText', 'destinationPropertyName', true, 'text', 0, 0, null],
+0,
+0,
+null,
+org.apache.flex.html.TextInput,
+3,
+'id',
+true,
+'input',
+'x',
+true,
+320,
+'y',
+true,
+110,
+0,
+0,
+null,
+org.apache.flex.html.TextButton,
+4,
+'_id',
+true,
+'$ID6',
+'text',
+true,
+'Transfer',
+'x',
+true,
+320,
+'y',
+true,
+138,
+0,
+1,
+'click',
+this.$EH3,
+null,
+org.apache.flex.html.CheckBox,
+4,
+'id',
+true,
+'checkbox',
+'x',
+true,
+320,
+'y',
+true,
+170,
+'text',
+true,
+'Check Me',
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+6,
+'_id',
+true,
+'$ID7',
+'groupName',
+true,
+'group1',
+'text',
+true,
+'Apples',
+'value',
+true,
+0,
+'x',
+true,
+100,
+'y',
+true,
+150,
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+7,
+'_id',
+true,
+'$ID8',
+'groupName',
+true,
+'group1',
+'text',
+true,
+'Oranges',
+'value',
+true,
+1,
+'x',
+true,
+100,
+'y',
+true,
+170,
+'selected',
+true,
+true,
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+6,
+'_id',
+true,
+'$ID9',
+'groupName',
+true,
+'group1',
+'text',
+true,
+'Grapes',
+'value',
+true,
+2,
+'x',
+true,
+100,
+'y',
+true,
+190,
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+7,
+'_id',
+true,
+'$ID10',
+'groupName',
+true,
+'group2',
+'text',
+true,
+'Red',
+'value',
+true,
+16711680,
+'x',
+true,
+100,
+'y',
+true,
+250,
+'selected',
+true,
+true,
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+6,
+'_id',
+true,
+'$ID11',
+'groupName',
+true,
+'group2',
+'text',
+true,
+'Green',
+'value',
+true,
+32768,
+'x',
+true,
+100,
+'y',
+true,
+270,
+0,
+0,
+null,
+org.apache.flex.html.RadioButton,
+6,
+'_id',
+true,
+'$ID12',
+'groupName',
+true,
+'group2',
+'text',
+true,
+'Blue',
+'value',
+true,
+255,
+'x',
+true,
+100,
+'y',
+true,
+290,
+0,
+0,
+null,
+org.apache.flex.html.DropDownList,
+6,
+'id',
+true,
+'list',
+'x',
+true,
+200,
+'y',
+true,
+200,
+'width',
+true,
+100,
+'height',
+true,
+24,
+'beads',
+null, [org.apache.flex.binding.ConstantBinding, 4, '_id', true, '$ID13', 'sourceID', true, 'applicationModel', 'sourcePropertyName', true, 'strings', 'destinationPropertyName', true, 'dataProvider', 0, 0, null],
+0,
+1,
+'change',
+this.$EH4,
+null,
+org.apache.flex.html.TextButton,
+4,
+'_id',
+true,
+'$ID14',
+'text',
+true,
+'OK',
+'x',
+true,
+200,
+'y',
+true,
+230,
+0,
+1,
+'click',
+this.$EH5,
+null,
+org.apache.flex.html.ComboBox,
+5,
+'id',
+true,
+'comboBox',
+'x',
+true,
+320,
+'y',
+true,
+200,
+'width',
+true,
+100,
+'beads',
+null, [org.apache.flex.binding.ConstantBinding, 4, '_id', true, '$ID15', 'sourceID', true, 'applicationModel', 'sourcePropertyName', true, 'cities', 'destinationPropertyName', true, 'dataProvider', 0, 0, null],
+0,
+1,
+'change',
+this.$EH6,
+null
+ ];
+
+ 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/c3dce49f/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.as b/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.as
new file mode 100644
index 0000000..a39606b
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.as
@@ -0,0 +1,40 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+ import org.apache.flex.collections.converters.JSONItemConverter;
+
+ public class StockDataJSONItemConverter extends JSONItemConverter
+ {
+ public function StockDataJSONItemConverter()
+ {
+ super();
+ }
+
+ override public function convertItem(data:String):Object
+ {
+ var obj:Object = super.convertItem(data);
+ if (obj["query"]["count"] == 0)
+ return "No Data";
+
+ obj = obj["query"]["results"]["quote"];
+ return obj;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.js b/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.js
new file mode 100644
index 0000000..8e8037e
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/StockDataJSONItemConverter.js
@@ -0,0 +1,39 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+goog.provide('StockDataJSONItemConverter');
+
+goog.require('org.apache.flex.net.JSONItemConverter');
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.net.JSONItemConverter}
+ */
+StockDataJSONItemConverter = function() {
+ goog.base(this);
+}
+goog.inherits(StockDataJSONItemConverter, org.apache.flex.net.JSONItemConverter);
+
+/**
+ * @export
+ * @param {string} data
+ * @return {Object}
+ * @override
+ */
+StockDataJSONItemConverter.prototype.convertItem = function(data) {
+ var /** @type {Object} */ obj = goog.base(this, 'convertItem', data);
+ if (obj["query"]["count"] == 0)
+ return "No Data";
+ obj = obj["query"]["results"]["quote"];
+ return obj;
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/controllers/MyController.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/controllers/MyController.as b/compiler-jx/src/test/resources/flexjs/files/controllers/MyController.as
new file mode 100644
index 0000000..d7b0547
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/controllers/MyController.as
@@ -0,0 +1,92 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package controllers
+{
+ import org.apache.flex.core.Application;
+ import org.apache.flex.core.IDocument;
+ import org.apache.flex.events.Event;
+
+
+ import models.MyModel;
+
+ public class MyController implements IDocument
+ {
+ public function MyController(app:Application = null)
+ {
+ if (app)
+ {
+ this.app = app as FlexJSTest_again;
+ app.addEventListener("viewChanged", viewChangeHandler);
+ }
+ }
+
+ private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22";
+ private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json";
+ private var app:FlexJSTest_again;
+
+ private function viewChangeHandler(event:Event):void
+ {
+ app.initialView.addEventListener("buttonClicked", buttonClickHandler);
+ app.initialView.addEventListener("listChanged", listChangedHandler);
+ app.initialView.addEventListener("cityListChanged", cityListChangeHandler);
+ app.initialView.addEventListener("transferClicked", transferClickHandler);
+ app.initialView.addEventListener("comboBoxChanged", comboBoxChangeHandler);
+ }
+
+ private function buttonClickHandler(event:Event):void
+ {
+ var sym:String = MyInitialView(app.initialView).symbol;
+ app.service.url = queryBegin + sym + queryEnd;
+ app.service.send();
+ app.service.addEventListener("complete", completeHandler);
+ }
+
+ private function completeHandler(event:Event):void
+ {
+ MyModel(app.model).labelText = app.collection.getItemAt(0) as String;
+ }
+
+ private function listChangedHandler(event:Event):void
+ {
+ MyModel(app.model).labelText = MyInitialView(app.initialView).symbol;
+ }
+
+ private function cityListChangeHandler(event:Event):void
+ {
+ MyModel(app.model).labelText = MyInitialView(app.initialView).city;
+ }
+
+ private function transferClickHandler(event:Event):void
+ {
+ MyModel(app.model).labelText = MyInitialView(app.initialView).inputText;
+ }
+
+ private function comboBoxChangeHandler(event:Event):void
+ {
+ MyModel(app.model).labelText = MyInitialView(app.initialView).comboBoxValue;
+ }
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.app = document as FlexJSTest_again;
+ app.addEventListener("viewChanged", viewChangeHandler);
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/controllers/MyController_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/controllers/MyController_result.js b/compiler-jx/src/test/resources/flexjs/files/controllers/MyController_result.js
new file mode 100644
index 0000000..883b408
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/controllers/MyController_result.js
@@ -0,0 +1,181 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * controllers.MyController
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+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", org.apache.flex.utils.Language.closure(this.viewChangeHandler, this, 'viewChangeHandler'));
+ }
+};
+
+
+/**
+ * @private
+ * @type {string}
+ */
+controllers.MyController.prototype.queryBegin = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.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", org.apache.flex.utils.Language.closure(this.buttonClickHandler, this, 'buttonClickHandler'));
+ this.app.initialView.addEventListener("listChanged", org.apache.flex.utils.Language.closure(this.listChangedHandler, this, 'listChangedHandler'));
+ this.app.initialView.addEventListener("cityListChanged", org.apache.flex.utils.Language.closure(this.cityListChangeHandler, this, 'cityListChangeHandler'));
+ this.app.initialView.addEventListener("transferClicked", org.apache.flex.utils.Language.closure(this.transferClickHandler, this, 'transferClickHandler'));
+ this.app.initialView.addEventListener("comboBoxChanged", org.apache.flex.utils.Language.closure(this.comboBoxChangeHandler, this, 'comboBoxChangeHandler'));
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.buttonClickHandler = function(event) {
+ var /** @type {string} */ sym = org.apache.flex.utils.Language.as(this.app.initialView, MyInitialView, true).symbol;
+ this.app.service.url = this.queryBegin + sym + this.queryEnd;
+ this.app.service.send();
+ this.app.service.addEventListener("complete", org.apache.flex.utils.Language.closure(this.completeHandler, this, 'completeHandler'));
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.completeHandler = function(event) {
+ org.apache.flex.utils.Language.as(this.app.model, models.MyModel, true).labelText = org.apache.flex.utils.Language.as(this.app.collection.getItemAt(0), String);
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.listChangedHandler = function(event) {
+ org.apache.flex.utils.Language.as(this.app.model, models.MyModel, true).labelText = org.apache.flex.utils.Language.as(this.app.initialView, MyInitialView, true).symbol;
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.cityListChangeHandler = function(event) {
+ org.apache.flex.utils.Language.as(this.app.model, models.MyModel, true).labelText = org.apache.flex.utils.Language.as(this.app.initialView, MyInitialView, true).city;
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.transferClickHandler = function(event) {
+ org.apache.flex.utils.Language.as(this.app.model, models.MyModel, true).labelText = org.apache.flex.utils.Language.as(this.app.initialView, MyInitialView, true).inputText;
+};
+
+
+/**
+ * @private
+ * @param {org.apache.flex.events.Event} event
+ */
+controllers.MyController.prototype.comboBoxChangeHandler = function(event) {
+ org.apache.flex.utils.Language.as(this.app.model, models.MyModel, true).labelText = org.apache.flex.utils.Language.as(this.app.initialView, MyInitialView, true).comboBoxValue;
+};
+
+
+/**
+ * @export
+ * @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", org.apache.flex.utils.Language.closure(this.viewChangeHandler, this, 'viewChangeHandler'));
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+controllers.MyController.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'MyController', qName: 'controllers.MyController'}], interfaces: [org.apache.flex.core.IDocument] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('controllers.MyController', controllers.MyController);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+controllers.MyController.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'MyController': { type: '', declaredBy: 'controllers.MyController'},
+ 'setDocument': { type: 'void', declaredBy: 'controllers.MyController'}
+ };
+ }
+ };
+};
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/models/MyModel.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/models/MyModel.as b/compiler-jx/src/test/resources/flexjs/files/models/MyModel.as
new file mode 100644
index 0000000..1dc23e6
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/models/MyModel.as
@@ -0,0 +1,59 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+
+ public class MyModel extends EventDispatcher
+ {
+ public function MyModel()
+ {
+ }
+
+ private var _labelText:String;
+
+ public function get labelText():String
+ {
+ return _labelText;
+ }
+
+ public function set labelText(value:String):void
+ {
+ if (value != _labelText)
+ {
+ _labelText = value;
+ dispatchEvent(new Event("labelTextChanged"));
+ }
+ }
+
+ private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"];
+ public function get strings():Array
+ {
+ return _strings;
+ }
+
+ private var _cities:Array = ["London", "Miami", "Paris", "Sydney", "Tokyo"];
+ public function get cities():Array
+ {
+ return _cities;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js b/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
new file mode 100644
index 0000000..7a26fe9
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
@@ -0,0 +1,125 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * models.MyModel
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('models.MyModel');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
+ */
+models.MyModel = function() {
+ models.MyModel.base(this, 'constructor');
+
+this._strings = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"];
+this._cities = ["London", "Miami", "Paris", "Sydney", "Tokyo"];
+};
+goog.inherits(models.MyModel, org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * @private
+ * @type {string}
+ */
+models.MyModel.prototype._labelText;
+
+
+/**
+ * @private
+ * @type {Array}
+ */
+models.MyModel.prototype._strings;
+
+
+/**
+ * @private
+ * @type {Array}
+ */
+models.MyModel.prototype._cities;
+
+
+Object.defineProperties(models.MyModel.prototype, /** @lends {models.MyModel.prototype} */ {
+/** @export */
+labelText: {
+get: /** @this {models.MyModel} */ function() {
+ return this._labelText;
+},
+set: /** @this {models.MyModel} */ function(value) {
+ if (value != this._labelText) {
+ this._labelText = value;
+ this.dispatchEvent(new org.apache.flex.events.Event("labelTextChanged"));
+ }
+}},
+/** @export */
+strings: {
+get: /** @this {models.MyModel} */ function() {
+ return this._strings;
+}},
+/** @export */
+cities: {
+get: /** @this {models.MyModel} */ function() {
+ return this._cities;
+}}}
+);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+models.MyModel.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'MyModel', qName: 'models.MyModel'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('models.MyModel', models.MyModel);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+models.MyModel.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ 'labelText': { type: 'String', declaredBy: 'models.MyModel'},
+ 'strings': { type: 'Array', declaredBy: 'models.MyModel'},
+ 'cities': { type: 'Array', declaredBy: 'models.MyModel'}
+ };
+ },
+ methods: function () {
+ return {
+ 'MyModel': { type: '', declaredBy: 'models.MyModel'}
+ };
+ }
+ };
+};
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/wildcard_import.mxml
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/wildcard_import.mxml b/compiler-jx/src/test/resources/flexjs/files/wildcard_import.mxml
new file mode 100644
index 0000000..99406bc
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/wildcard_import.mxml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:basic="library://ns.apache.org/flexjs/basic"
+ >
+ <fx:Script>
+ <![CDATA[
+
+ import org.apache.flex.html.*;
+
+ private function tmp():void
+ {
+ var myButton:Button;
+
+ myButton = new Button();
+ }
+
+ ]]>
+ </fx:Script>
+</basic:Application>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/files/wildcard_import_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/files/wildcard_import_result.js b/compiler-jx/src/test/resources/flexjs/files/wildcard_import_result.js
new file mode 100644
index 0000000..4ef8a61
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/files/wildcard_import_result.js
@@ -0,0 +1,99 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * wildcard_import
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('wildcard_import');
+
+goog.require('org.apache.flex.core.Application');
+goog.require('org.apache.flex.html.Button');
+
+
+
+/**
+ * @constructor
+ * @extends {org.apache.flex.core.Application}
+ */
+wildcard_import = function() {
+ wildcard_import.base(this, 'constructor');
+
+ /**
+ * @private
+ * @type {Array}
+ */
+ this.mxmldd;
+
+ /**
+ * @private
+ * @type {Array}
+ */
+ this.mxmldp;
+};
+goog.inherits(wildcard_import, org.apache.flex.core.Application);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+wildcard_import.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'wildcard_import', qName: 'wildcard_import' }] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('wildcard_import', wildcard_import);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+wildcard_import.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ };
+ }
+ };
+};
+
+
+
+/**
+ * @private
+ */
+wildcard_import.prototype.tmp = function() {
+ var /** @type {org.apache.flex.html.Button} */ myButton;
+ myButton = new org.apache.flex.html.Button();
+};
+
+
+
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test.as
new file mode 100644
index 0000000..9190d6e
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+ import classes.A;
+ import classes.C;
+ import interfaces.IC;
+
+ public class Test extends A
+ {
+ public function Test()
+ {
+ super();
+ }
+
+ override public function someFunction():C
+ {
+ return null;
+ }
+
+ override public function someOtherFunction():IC
+ {
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test_result.js
new file mode 100644
index 0000000..8f8fd20
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/Test_result.js
@@ -0,0 +1,94 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Test
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('Test');
+
+goog.require('classes.A');
+
+
+
+/**
+ * @constructor
+ * @extends {classes.A}
+ */
+Test = function() {
+ Test.base(this, 'constructor');
+};
+goog.inherits(Test, classes.A);
+
+
+/**
+ * @export
+ * @override
+ */
+Test.prototype.someFunction = function() {
+ return null;
+};
+
+
+/**
+ * @export
+ * @override
+ */
+Test.prototype.someOtherFunction = function() {
+ return null;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+Test.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Test', qName: 'Test'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('Test', Test);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+Test.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'Test': { type: '', declaredBy: 'Test'},
+ 'someFunction': { type: 'C', declaredBy: 'Test'},
+ 'someOtherFunction': { type: 'IC', declaredBy: 'Test'}
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A.as
new file mode 100644
index 0000000..004a607
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package classes
+{
+ import interfaces.IA;
+ import interfaces.IB;
+
+ public class A implements IA
+ {
+ public function A()
+ {
+ }
+
+ public function someFunction():B
+ {
+ return null;
+ }
+
+ public function someOtherFunction():IB
+ {
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A_result.js
new file mode 100644
index 0000000..e3320af
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/A_result.js
@@ -0,0 +1,92 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * classes.A
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('classes.A');
+
+goog.require('interfaces.IA');
+
+
+
+/**
+ * @constructor
+ * @implements {interfaces.IA}
+ */
+classes.A = function() {
+};
+
+
+/**
+ * @export
+ * @return {classes.B}
+ */
+classes.A.prototype.someFunction = function() {
+ return null;
+};
+
+
+/**
+ * @export
+ * @return {interfaces.IB}
+ */
+classes.A.prototype.someOtherFunction = function() {
+ return null;
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+classes.A.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'A', qName: 'classes.A'}], interfaces: [interfaces.IA] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('classes.A', classes.A);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+classes.A.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'A': { type: '', declaredBy: 'classes.A'},
+ 'someFunction': { type: 'B', declaredBy: 'classes.A'},
+ 'someOtherFunction': { type: 'IB', declaredBy: 'classes.A'}
+ };
+ }
+ };
+};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B.as
new file mode 100644
index 0000000..b410e59
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B.as
@@ -0,0 +1,25 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package classes
+{
+ public class B
+ {
+ public function B() {}
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B_result.js
new file mode 100644
index 0000000..8aaa2f7
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/B_result.js
@@ -0,0 +1,69 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * classes.B
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('classes.B');
+
+
+
+/**
+ * @constructor
+ */
+classes.B = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+classes.B.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'B', qName: 'classes.B'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('classes.B', classes.B);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+classes.B.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'B': { type: '', declaredBy: 'classes.B'}
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C.as
new file mode 100644
index 0000000..d414a26
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C.as
@@ -0,0 +1,25 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package classes
+{
+ public class C
+ {
+ public function C() {}
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C_result.js
new file mode 100644
index 0000000..46f094f
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/classes/C_result.js
@@ -0,0 +1,69 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * classes.C
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('classes.C');
+
+
+
+/**
+ * @constructor
+ */
+classes.C = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+classes.C.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'C', qName: 'classes.C'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('classes.C', classes.C);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+classes.C.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'C': { type: '', declaredBy: 'classes.C'}
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA.as
new file mode 100644
index 0000000..6f363bc
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package interfaces
+{
+ import classes.B;
+
+ public interface IA
+ {
+ function someFunction():B;
+ function someOtherFunction():IB;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA_result.js
new file mode 100644
index 0000000..04220e1
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IA_result.js
@@ -0,0 +1,69 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * interfaces.IA
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('interfaces.IA');
+
+
+
+
+/**
+ * @interface
+ */
+interfaces.IA = function() {
+};
+interfaces.IA.prototype.someFunction = function() {
+};
+interfaces.IA.prototype.someOtherFunction = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+interfaces.IA.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'IA', qName: 'interfaces.IA'}] };
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+interfaces.IA.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'someFunction': { type: 'B', declaredBy: 'interfaces.IA'},
+ 'someOtherFunction': { type: 'IB', declaredBy: 'interfaces.IA'}
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB.as
new file mode 100644
index 0000000..a995635
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package interfaces
+{
+ public interface IB {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB_result.js
new file mode 100644
index 0000000..01a7fe6
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IB_result.js
@@ -0,0 +1,62 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * interfaces.IB
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('interfaces.IB');
+
+
+
+/**
+ * @interface
+ */
+interfaces.IB = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+interfaces.IB.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'IB', qName: 'interfaces.IB'}] };
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+interfaces.IB.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ };
+ }
+ };
+};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC.as b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC.as
new file mode 100644
index 0000000..3a650c7
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package interfaces
+{
+ public interface IC {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC_result.js b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC_result.js
new file mode 100644
index 0000000..f9b77c6
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/bad_overrides/interfaces/IC_result.js
@@ -0,0 +1,62 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * interfaces.IC
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('interfaces.IC');
+
+
+
+/**
+ * @interface
+ */
+interfaces.IC = function() {
+};
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+interfaces.IC.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'IC', qName: 'interfaces.IC'}]};
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+interfaces.IC.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ };
+ }
+ };
+};
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/circular/Base.as
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/circular/Base.as b/compiler-jx/src/test/resources/flexjs/projects/circular/Base.as
new file mode 100644
index 0000000..64798d8
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/circular/Base.as
@@ -0,0 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+ import Super;
+
+ public class Base extends Super
+ {
+ public function Base()
+ {
+ super();
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/c3dce49f/compiler-jx/src/test/resources/flexjs/projects/circular/Base_result.js
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/resources/flexjs/projects/circular/Base_result.js b/compiler-jx/src/test/resources/flexjs/projects/circular/Base_result.js
new file mode 100644
index 0000000..e9f581c
--- /dev/null
+++ b/compiler-jx/src/test/resources/flexjs/projects/circular/Base_result.js
@@ -0,0 +1,74 @@
+/**
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Base
+ *
+ * @fileoverview
+ *
+ * @suppress {checkTypes|accessControls}
+ */
+
+goog.provide('Base');
+
+goog.require('Super');
+
+
+
+/**
+ * @constructor
+ * @extends {Super}
+ */
+Base = function() {
+ Base.base(this, 'constructor');
+};
+goog.inherits(Base, Super);
+
+
+/**
+ * Metadata
+ *
+ * @type {Object.<string, Array.<Object>>}
+ */
+Base.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'Base', qName: 'Base'}] };
+
+
+/**
+ * Prevent renaming of class. Needed for reflection.
+ */
+goog.exportSymbol('Base', Base);
+
+
+
+/**
+ * Reflection
+ *
+ * @return {Object.<string, Function>}
+ */
+Base.prototype.FLEXJS_REFLECTION_INFO = function () {
+ return {
+ variables: function () {
+ return {
+ };
+ },
+ accessors: function () {
+ return {
+ };
+ },
+ methods: function () {
+ return {
+ 'Base': { type: '', declaredBy: 'Base'}
+ };
+ }
+ };
+};