flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From erikdebr...@apache.org
Subject [01/11] git commit: [flex-asjs] [refs/heads/develop] - Initial commit of framework changes to make the "very strict" warnings go away.
Date Wed, 13 Nov 2013 10:44:32 GMT
Updated Branches:
  refs/heads/develop 67c11796e -> 6b8271177


Initial commit of framework changes to make the "very strict" warnings go away.

Signed-off-by: Erik de Bruin <erik@ixsoftware.nl>


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/c15d8b4d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/c15d8b4d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/c15d8b4d

Branch: refs/heads/develop
Commit: c15d8b4d217675a837f0cd62a104961e57075102
Parents: fa7ceb3
Author: Erik de Bruin <erik@ixsoftware.nl>
Authored: Tue Nov 12 20:32:21 2013 +0100
Committer: Erik de Bruin <erik@ixsoftware.nl>
Committed: Tue Nov 12 20:32:21 2013 +0100

----------------------------------------------------------------------
 frameworks/js/FlexJS/src/mx/states/AddItems.js  | 11 +++----
 .../js/FlexJS/src/mx/states/SetProperty.js      |  7 +++--
 frameworks/js/FlexJS/src/mx/states/State.js     |  2 +-
 .../src/org/apache/flex/binding/BindingBase.js  |  2 ++
 .../org/apache/flex/binding/ConstantBinding.js  |  1 +
 .../org/apache/flex/binding/GenericBinding.js   |  5 +++-
 .../org/apache/flex/binding/PropertyWatcher.js  | 14 +++++----
 .../org/apache/flex/binding/SimpleBinding.js    |  3 +-
 .../src/org/apache/flex/binding/WatcherBase.js  |  6 ++--
 .../src/org/apache/flex/core/Application.js     |  1 +
 .../org/apache/flex/core/HTMLElementWrapper.js  | 17 +++++------
 .../js/FlexJS/src/org/apache/flex/core/IBead.js |  2 +-
 .../src/org/apache/flex/core/IBeadController.js | 19 ++++++++-----
 .../src/org/apache/flex/core/IBeadLayout.js     |  3 +-
 .../src/org/apache/flex/core/IBeadModel.js      | 21 +++++++++-----
 .../src/org/apache/flex/core/IStatesImpl.js     |  1 +
 .../FlexJS/src/org/apache/flex/core/ListBase.js |  2 ++
 .../org/apache/flex/core/SimpleCSSValuesImpl.js |  6 ++--
 .../org/apache/flex/core/SimpleStatesImpl.js    |  8 ++++--
 .../FlexJS/src/org/apache/flex/core/UIBase.js   | 20 +++++++------
 .../FlexJS/src/org/apache/flex/core/ViewBase.js |  7 +++--
 .../org/apache/flex/core/ViewBaseDataBinding.js |  4 +--
 .../src/org/apache/flex/events/CustomEvent.js   |  4 +--
 .../FlexJS/src/org/apache/flex/events/Event.js  | 16 +++++------
 .../org/apache/flex/events/EventDispatcher.js   | 16 +++++++----
 .../org/apache/flex/events/ValueChangeEvent.js  | 10 +++----
 .../apache/flex/html/staticControls/Button.js   |  1 +
 .../apache/flex/html/staticControls/CheckBox.js |  8 ++++--
 .../flex/html/staticControls/Container.js       | 10 +++----
 .../flex/html/staticControls/DropDownList.js    |  4 ++-
 .../apache/flex/html/staticControls/Label.js    |  9 ------
 .../flex/html/staticControls/RadioButton.js     |  6 ++--
 .../apache/flex/html/staticControls/TextArea.js |  4 ++-
 .../flex/html/staticControls/TextButton.js      |  2 +-
 .../flex/html/staticControls/TextInput.js       |  4 ++-
 .../DataItemRendererFactoryForArrayData.js      | 21 ++++++++------
 .../flex/html/staticControls/beads/ListView.js  |  4 +--
 .../TextItemRendererFactoryForArrayData.js      | 21 ++++++++------
 .../controllers/ItemRendererMouseController.js  | 30 ++++++++++----------
 .../beads/layouts/NonVirtualHorizontalLayout.js | 13 +++++----
 .../beads/layouts/NonVirtualVerticalLayout.js   |  6 ++++
 .../NonVirtualVerticalScrollingLayout.js        | 13 +++++----
 .../beads/models/ArraySelectionModel.js         | 13 +++++++--
 .../ButtonBarButtonItemRenderer.js              |  6 ++--
 .../supportClasses/DataItemRenderer.js          |  2 ++
 .../supportClasses/NonVirtualDataGroup.js       |  6 ++--
 .../supportClasses/StringItemRenderer.js        |  2 ++
 .../src/org/apache/flex/net/HTTPService.js      | 14 ++++-----
 .../src/org/apache/flex/net/JSONInputParser.js  |  2 +-
 .../org/apache/flex/net/JSONItemConverter.js    |  2 +-
 .../flex/net/dataConverters/LazyCollection.js   | 12 ++++----
 .../src/org/apache/flex/utils/Language.js       | 14 +++++----
 .../apache/flex/utils/MXMLDataInterpreter.js    | 14 +++++----
 .../flex/utils/ViewSourceContextMenuOption.js   |  2 +-
 54 files changed, 266 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/mx/states/AddItems.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/mx/states/AddItems.js b/frameworks/js/FlexJS/src/mx/states/AddItems.js
index 3cf63a2..4103ed8 100644
--- a/frameworks/js/FlexJS/src/mx/states/AddItems.js
+++ b/frameworks/js/FlexJS/src/mx/states/AddItems.js
@@ -28,7 +28,7 @@ mx.states.AddItems = function() {
 
 /**
  * @param {Object} document The MXML object.
- * @param {string=} opt_id The id.
+ * @param {?string=} opt_id The id.
  */
 mx.states.AddItems.prototype.setDocument = function(document, opt_id) {
   opt_id = typeof opt_id !== 'undefined' ? opt_id : null;
@@ -61,28 +61,28 @@ mx.states.AddItems.prototype.itemsDescriptor = null;
  * @expose
  * @type {string} destination The id of the parent.
  */
-mx.states.AddItems.prototype.destination = null;
+mx.states.AddItems.prototype.destination = '';
 
 
 /**
  * @expose
  * @type {string} propertyName The child property name (e.g. mxmlContent).
  */
-mx.states.AddItems.prototype.propertyName = null;
+mx.states.AddItems.prototype.propertyName = '';
 
 
 /**
  * @expose
  * @type {string} position Where the item goes relative to relativeTo.
  */
-mx.states.AddItems.prototype.position = null;
+mx.states.AddItems.prototype.position = '';
 
 
 /**
  * @expose
  * @type {string} relativeTo The id of the child where the item goes.
  */
-mx.states.AddItems.prototype.relativeTo = null;
+mx.states.AddItems.prototype.relativeTo = '';
 
 
 /**
@@ -103,6 +103,7 @@ mx.states.AddItems.prototype.initializeFromObject = function(properties) {
 
 /**
  * @const
+ * @type {Object.<string, Array.<Object>>}
  */
 mx.states.AddItems.prototype.FLEXJS_CLASS_INFO =
     { interfaces: [org.apache.flex.core.IDocument] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/mx/states/SetProperty.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/mx/states/SetProperty.js b/frameworks/js/FlexJS/src/mx/states/SetProperty.js
index cfc8b53..83382e2 100644
--- a/frameworks/js/FlexJS/src/mx/states/SetProperty.js
+++ b/frameworks/js/FlexJS/src/mx/states/SetProperty.js
@@ -28,7 +28,7 @@ mx.states.SetProperty = function() {
 
 /**
  * @param {Object} document The MXML object.
- * @param {string=} opt_id The id.
+ * @param {?string=} opt_id The id.
  */
 mx.states.SetProperty.prototype.setDocument = function(document, opt_id) {
   opt_id = typeof opt_id !== 'undefined' ? opt_id : null;
@@ -47,14 +47,14 @@ mx.states.SetProperty.prototype.document = null;
  * @expose
  * @type {string} name The target property name.
  */
-mx.states.SetProperty.prototype.name = null;
+mx.states.SetProperty.prototype.name = '';
 
 
 /**
  * @expose
  * @type {string} target The id of the object.
  */
-mx.states.SetProperty.prototype.target = null;
+mx.states.SetProperty.prototype.target = '';
 
 
 /**
@@ -89,6 +89,7 @@ mx.states.SetProperty.prototype.initializeFromObject = function(properties) {
 
 /**
  * @const
+ * @type {Object.<string, Array.<Object>>}
  */
 mx.states.SetProperty.prototype.FLEXJS_CLASS_INFO =
     { interfaces: [org.apache.flex.core.IDocument] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/mx/states/State.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/mx/states/State.js b/frameworks/js/FlexJS/src/mx/states/State.js
index b325c50..6d5a2b4 100644
--- a/frameworks/js/FlexJS/src/mx/states/State.js
+++ b/frameworks/js/FlexJS/src/mx/states/State.js
@@ -29,7 +29,7 @@ mx.states.State = function(opt_props) {
  * @expose
  * @type {string} name The state name.
  */
-mx.states.State.prototype.name = null;
+mx.states.State.prototype.name = '';
 
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/BindingBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/BindingBase.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/BindingBase.js
index f1f198f..83d382b 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/BindingBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/BindingBase.js
@@ -66,6 +66,7 @@ org.apache.flex.binding.BindingBase.prototype.sourceID;
 
 
 /**
+ * @expose
  * @param {Object} value The strand (owner) of the bead.
  */
 org.apache.flex.binding.BindingBase.prototype.set_strand = function(value) {
@@ -85,6 +86,7 @@ org.apache.flex.binding.BindingBase.prototype.set_strand = function(value) {
 
 
 /**
+ * @expose
  * @param {Object} document The MXML object.
  */
 org.apache.flex.binding.BindingBase.prototype.setDocument = function(document) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/ConstantBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/ConstantBinding.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/ConstantBinding.js
index 1ae9ef7..5a9f1cf 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/ConstantBinding.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/ConstantBinding.js
@@ -20,6 +20,7 @@ goog.require('org.apache.flex.binding.BindingBase');
 
 /**
  * @constructor
+ * @extends {org.apache.flex.binding.BindingBase}
  */
 org.apache.flex.binding.ConstantBinding = function() {
   goog.base(this);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/GenericBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/GenericBinding.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/GenericBinding.js
index f90efc4..de11274 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/GenericBinding.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/GenericBinding.js
@@ -13,14 +13,17 @@
  */
 
 goog.provide('org.apache.flex.binding.GenericBinding');
+
 goog.require('org.apache.flex.binding.BindingBase');
 
 
 
 /**
  * @constructor
+ * @extends {org.apache.flex.binding.BindingBase}
  */
 org.apache.flex.binding.GenericBinding = function() {
+  goog.base(this);
 };
 goog.inherits(org.apache.flex.binding.GenericBinding,
     org.apache.flex.binding.BindingBase);
@@ -35,7 +38,7 @@ org.apache.flex.binding.GenericBinding.prototype.destinationData = null;
 
 /**
  * @expose
- * @type {function}
+ * @type {?function(?): ?}
  */
 org.apache.flex.binding.GenericBinding.prototype.destinationFunction = null;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/PropertyWatcher.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/PropertyWatcher.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/PropertyWatcher.js
index d134ed1..13fe3fa 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/PropertyWatcher.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/PropertyWatcher.js
@@ -13,19 +13,23 @@
  */
 
 goog.provide('org.apache.flex.binding.PropertyWatcher');
+
 goog.require('org.apache.flex.binding.WatcherBase');
 
 
 
 /**
  * @constructor
+ * @extends {org.apache.flex.binding.WatcherBase}
  * @param {Object} source The source object.
  * @param {string} propertyName The property in the source.
  * @param {Object} eventNames An array of event names or an event name.
- * @param {function} getterFunction A function to get the source property.
+ * @param {function(?): ?} getterFunction A function to get the source property.
  */
 org.apache.flex.binding.PropertyWatcher =
     function(source, propertyName, eventNames, getterFunction) {
+  goog.base(this);
+
   this.source = source;
   this.propertyName = propertyName;
   this.getterFunction = getterFunction;
@@ -54,7 +58,7 @@ org.apache.flex.binding.PropertyWatcher.prototype.eventNames;
 
 
 /**
- * @type {function}
+ * @type {?function(?): ?}
  */
 org.apache.flex.binding.PropertyWatcher.prototype.getterFunction = null;
 
@@ -81,7 +85,7 @@ org.apache.flex.binding.PropertyWatcher.prototype.changeHandler =
 
 
 /**
- * @protected
+ * @expose
  * @param {Object} parent The new parent watcher.
  */
 org.apache.flex.binding.PropertyWatcher.prototype.parentChanged =
@@ -109,7 +113,7 @@ org.apache.flex.binding.PropertyWatcher.prototype.addEventListeners =
   if (typeof(this.eventNames) == 'string')
     this.source.addEventListener(this.eventNames,
         goog.bind(this.changeHandler, this));
-  else if (typeof(this.eventNames) == 'Object')
+  else if (typeof(this.eventNames) == 'object')
   {
     var arr = this.eventNames;
     var n = arr.length;
@@ -131,7 +135,7 @@ org.apache.flex.binding.PropertyWatcher.prototype.removeEventListeners =
   if (typeof(this.eventNames) == 'string')
     this.source.removeEventListener(this.eventNames,
         goog.bind(this.changeHandler, this));
-  else if (typeof(this.eventNames) == 'Object')
+  else if (typeof(this.eventNames) == 'object')
   {
     var arr = this.eventNames;
     var n = arr.length;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/SimpleBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/SimpleBinding.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/SimpleBinding.js
index 8f12e51..798f571 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/SimpleBinding.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/SimpleBinding.js
@@ -20,6 +20,7 @@ goog.require('org.apache.flex.binding.BindingBase');
 
 /**
  * @constructor
+ * @extends {org.apache.flex.binding.BindingBase}
  */
 org.apache.flex.binding.SimpleBinding = function() {
   goog.base(this);
@@ -36,6 +37,7 @@ org.apache.flex.binding.SimpleBinding.prototype.eventName = '';
 
 
 /**
+ * @expose
  */
 org.apache.flex.binding.SimpleBinding.prototype.changeHandler = function() {
   this.destination['set_' + this.destinationPropertyName](
@@ -46,7 +48,6 @@ org.apache.flex.binding.SimpleBinding.prototype.changeHandler = function() {
 
 /**
  * @override
- * @param {Object} value The strand (owner) of the bead.
  */
 org.apache.flex.binding.SimpleBinding.prototype.set_strand = function(value) {
   goog.base(this, 'set_strand', value);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/binding/WatcherBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/binding/WatcherBase.js b/frameworks/js/FlexJS/src/org/apache/flex/binding/WatcherBase.js
index 754b54a..9d3c41e 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/binding/WatcherBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/binding/WatcherBase.js
@@ -158,7 +158,7 @@ org.apache.flex.binding.WatcherBase.prototype.valueChanged =
 /**
  *  @protected
  *  @this {org.apache.flex.binding.WatcherBase}
- *  @param {function} wrappedFunction The function to call.
+ *  @param {function(?): ?} wrappedFunction The function to call.
  */
 org.apache.flex.binding.WatcherBase.prototype.wrapUpdate =
     function(wrappedFunction) {
@@ -169,10 +169,10 @@ org.apache.flex.binding.WatcherBase.prototype.wrapUpdate =
   catch (error)
   {
     var staticClass = org.apache.flex.binding.WatcherBase;
-    var n = this.allowedErrorTypes.length;
+    var n = staticClass.allowedErrorTypes.length;
     for (var i = 0; i < n; i++)
     {
-      if (error.constructor == this.allowedErrorTypes[i].type)
+      if (error.constructor == staticClass.allowedErrorTypes[i].type)
       {
         var handler = staticClass.allowedErrorTypes[i].handler;
         if (handler != null)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/Application.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/Application.js b/frameworks/js/FlexJS/src/org/apache/flex/core/Application.js
index a6d034c..40121a3 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/Application.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/Application.js
@@ -15,6 +15,7 @@
 goog.provide('org.apache.flex.core.Application');
 
 goog.require('org.apache.flex.core.HTMLElementWrapper');
+goog.require('org.apache.flex.core.SimpleValuesImpl');
 goog.require('org.apache.flex.core.ValuesManager');
 goog.require('org.apache.flex.utils.MXMLDataInterpreter');
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/HTMLElementWrapper.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/HTMLElementWrapper.js b/frameworks/js/FlexJS/src/org/apache/flex/core/HTMLElementWrapper.js
index 0342aa7..cc3c41d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/HTMLElementWrapper.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/HTMLElementWrapper.js
@@ -14,7 +14,9 @@
 
 goog.provide('org.apache.flex.core.HTMLElementWrapper');
 
+goog.require('org.apache.flex.core.IBeadModel');
 goog.require('org.apache.flex.events.EventDispatcher');
+goog.require('org.apache.flex.utils.Language');
 
 
 
@@ -38,7 +40,7 @@ org.apache.flex.core.HTMLElementWrapper.prototype.element = null;
 
 /**
  * @protected
- * @type {Object}
+ * @type {Array.<Object>}
  */
 org.apache.flex.core.HTMLElementWrapper.prototype.strand = null;
 
@@ -54,8 +56,7 @@ org.apache.flex.core.HTMLElementWrapper.prototype.addBead = function(bead) {
 
   this.strand.push(bead);
 
-  if (bead.constructor.$implements !== undefined &&
-      bead.constructor.$implements.IBeadModel !== undefined) {
+  if (org.apache.flex.utils.Language.is(bead, org.apache.flex.core.IBeadModel)) {
     this.model = bead;
   }
 
@@ -65,7 +66,7 @@ org.apache.flex.core.HTMLElementWrapper.prototype.addBead = function(bead) {
 
 /**
  * @expose
- * @param {Object} classOrInterface The requested bead type.
+ * @param {!Object} classOrInterface The requested bead type.
  * @return {Object} The bead.
  */
 org.apache.flex.core.HTMLElementWrapper.prototype.getBeadByType =
@@ -76,11 +77,7 @@ org.apache.flex.core.HTMLElementWrapper.prototype.getBeadByType =
   for (i = 0; i < n; i++) {
     bead = this.strand[i];
 
-    if (bead instanceof classOrInterface) {
-      return bead;
-    }
-
-    if (bead.constructor.$implements.hasOwnProperty(classOrInterface)) {
+    if (org.apache.flex.utils.Language.is(bead, classOrInterface)) {
       return bead;
     }
   }
@@ -134,7 +131,7 @@ org.apache.flex.core.HTMLElementWrapper.prototype.removeBead = function(bead) {
 
 /**
  * @expose
- * @param {Object} value The new strand.
+ * @param {Array.<Object>} value The new strand.
  */
 org.apache.flex.core.HTMLElementWrapper.prototype.set_strand =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/IBead.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IBead.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IBead.js
index b22265c..eeb5a01 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/IBead.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IBead.js
@@ -29,7 +29,7 @@ org.apache.flex.core.IBead = function() {
  * set_strand()
  *
  * @expose
- * @param {Object} value The new host.
+ * @param {org.apache.flex.core.IStrand} value The new host.
  */
 org.apache.flex.core.IBead.prototype.set_strand =
     function(value) {};

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadController.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadController.js
index 81ebd12..625aff9 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadController.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadController.js
@@ -14,17 +14,22 @@
 
 goog.provide('org.apache.flex.core.IBeadController');
 
-goog.require('org.apache.flex.events.EventDispatcher');
+goog.require('org.apache.flex.core.IBead');
 
 
 
 /**
- * @constructor
- * @extends {org.apache.flex.events.EventDispatcher}
+ * @interface
+ * @extends {org.apache.flex.core.IBead}
  */
 org.apache.flex.core.IBeadController = function() {
-  goog.base(this);
 };
-goog.inherits(
-              org.apache.flex.core.IBeadController,
-              org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ * @suppress {checkTypes}
+ */
+org.apache.flex.core.IBeadController.prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBead] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadLayout.js
index 76b4634..1938b9b 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadLayout.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadLayout.js
@@ -20,7 +20,7 @@ goog.require('org.apache.flex.core.IBead');
 
 /**
  * @interface
- * @implements {org.apache.flex.core.IBead}
+ * @extends {org.apache.flex.core.IBead}
  */
 org.apache.flex.core.IBeadLayout = function() {
 };
@@ -28,6 +28,7 @@ org.apache.flex.core.IBeadLayout = function() {
 
 /**
  * @const
+ * @type {Object.<string, Array.<Object>>}
  */
 org.apache.flex.core.IBeadLayout.prototype.FLEXJS_CLASS_INFO =
     { interfaces: [org.apache.flex.core.IBead] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadModel.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadModel.js
index ec8fedc..018ee7c 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadModel.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IBeadModel.js
@@ -14,17 +14,24 @@
 
 goog.provide('org.apache.flex.core.IBeadModel');
 
-goog.require('org.apache.flex.events.EventDispatcher');
+goog.require('org.apache.flex.core.IBead');
+goog.require('org.apache.flex.events.IEventDispatcher');
 
 
 
 /**
- * @constructor
- * @extends {org.apache.flex.events.EventDispatcher}
+ * @interface
+ * @extends {org.apache.flex.core.IBead}
+ * @extends {org.apache.flex.events.IEventDispatcher}
  */
 org.apache.flex.core.IBeadModel = function() {
-  goog.base(this);
 };
-goog.inherits(
-    org.apache.flex.core.IBeadModel,
-    org.apache.flex.events.EventDispatcher);
+
+
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.core.IBeadModel.prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBead,
+                   org.apache.flex.events.IEventDispatcher] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/IStatesImpl.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/IStatesImpl.js b/frameworks/js/FlexJS/src/org/apache/flex/core/IStatesImpl.js
index ddb9ebd..4647103 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/IStatesImpl.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/IStatesImpl.js
@@ -32,6 +32,7 @@ org.apache.flex.core.IStatesImpl = function() {
 
 /**
  * @const
+ * @type {Object.<string, Array.<Object>>}
  */
 org.apache.flex.core.IStatesImpl.prototype.FLEXJS_CLASS_INFO =
     { interfaces: [org.apache.flex.core.IBead,

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/ListBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/ListBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/ListBase.js
index f2d5dae..76adb5b 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/ListBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/ListBase.js
@@ -55,6 +55,8 @@ org.apache.flex.core.ListBase.prototype.createElement = function() {
   this.element.style.borderWidth = '1px';
   this.element.style.borderColor = '#333333';
   this.positioner = this.element;
+
+  return this.element;
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleCSSValuesImpl.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleCSSValuesImpl.js b/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleCSSValuesImpl.js
index b6629f0..22c362c 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleCSSValuesImpl.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleCSSValuesImpl.js
@@ -25,8 +25,8 @@ org.apache.flex.core.SimpleCSSValuesImpl = function() {
 
 /**
  * @param {Object} thisObject The object to fetch a value for.
- * @param {String} valueName The name of the value to fetch.
- * @param {String} state The psuedo-state if any for.
+ * @param {string} valueName The name of the value to fetch.
+ * @param {string} state The psuedo-state if any for.
  * @param {Object} attrs The object with name value pairs that
  *                       might make a difference.
  * @return {Object} The value.
@@ -113,7 +113,7 @@ org.apache.flex.core.SimpleCSSValuesImpl.prototype.getValue =
 
 /**
  * @param {Object} thisObject The object to get a name for.
- * @return {string} The CSS selector name or null.
+ * @return {?string} The CSS selector name or null.
  */
 org.apache.flex.core.SimpleCSSValuesImpl.prototype.getQualifiedClassName =
     function(thisObject) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleStatesImpl.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleStatesImpl.js b/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleStatesImpl.js
index f0fc482..695e2da 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleStatesImpl.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/SimpleStatesImpl.js
@@ -26,6 +26,7 @@ goog.require('org.apache.flex.events.EventDispatcher');
 
 /**
  * @constructor
+ * @extends {org.apache.flex.events.EventDispatcher}
  * @implements {org.apache.flex.core.IBead}
  * @implements {org.apache.flex.core.IStatesImpl}
  */
@@ -50,8 +51,10 @@ org.apache.flex.core.SimpleStatesImpl.prototype.set_strand =
     function(value) {
   if (this.strand_ !== value) {
     this.strand_ = value;
-    this.strand_.addEventListener('currentStateChanged',
-        goog.bind(this.stateChangeHandler_, this));
+    if (this.strand_.addEventListener) {
+      this.strand_.addEventListener('currentStateChanged',
+          goog.bind(this.stateChangeHandler_, this));
+    }
   }
 };
 
@@ -200,6 +203,7 @@ org.apache.flex.core.SimpleStatesImpl.prototype.apply_ = function(s) {
 
 /**
  * @const
+ * @type {Object.<string, Array.<Object>>}
  */
 org.apache.flex.core.SimpleStatesImpl.prototype.FLEXJS_CLASS_INFO =
     { interfaces: [org.apache.flex.core.IBead,

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
index 514c13e..daa026b 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/UIBase.js
@@ -34,7 +34,7 @@ org.apache.flex.core.UIBase = function() {
    * @private
    * @type {string}
    */
-  this.lastDisplay_ = null;
+  this.lastDisplay_ = '';
 
   /**
    * @protected
@@ -192,7 +192,7 @@ org.apache.flex.core.UIBase.prototype.addBead = function(bead) {
 
 
 /**
- * @param {Class} classOrInterface A type or interface.
+ * @param {Object} classOrInterface A type or interface.
  * @return {Object} The bead of the given type or null.
  */
 org.apache.flex.core.UIBase.prototype.getBeadByType =
@@ -225,6 +225,8 @@ org.apache.flex.core.UIBase.prototype.removeBead =
       return bead;
     }
   }
+
+  return null;
 };
 
 
@@ -292,7 +294,7 @@ org.apache.flex.core.UIBase.prototype.get_height = function() {
  * @expose
  * @type {string}
  */
-org.apache.flex.core.UIBase.prototype.id = null;
+org.apache.flex.core.UIBase.prototype.id = '';
 
 
 /**
@@ -306,7 +308,7 @@ org.apache.flex.core.UIBase.prototype.get_id = function() {
 
 /**
  * @expose
- * @param {Object} value The new id.
+ * @param {string} value The new id.
  */
 org.apache.flex.core.UIBase.prototype.set_id = function(value) {
   if (this.id !== value) {
@@ -321,7 +323,7 @@ org.apache.flex.core.UIBase.prototype.set_id = function(value) {
  * @expose
  * @type {string}
  */
-org.apache.flex.core.UIBase.prototype.className = null;
+org.apache.flex.core.UIBase.prototype.className = '';
 
 
 /**
@@ -335,7 +337,7 @@ org.apache.flex.core.UIBase.prototype.get_className = function() {
 
 /**
  * @expose
- * @param {object} value The new className.
+ * @param {string} value The new className.
  */
 org.apache.flex.core.UIBase.prototype.set_className = function(value) {
   if (this.className !== value)
@@ -349,7 +351,7 @@ org.apache.flex.core.UIBase.prototype.set_className = function(value) {
 
 /**
  * @expose
- * @type {object}
+ * @type {Object}
  */
 org.apache.flex.core.UIBase.prototype.model = null;
 
@@ -385,7 +387,7 @@ org.apache.flex.core.UIBase.prototype.set_model = function(value) {
 
 /**
  * @expose
- * @return {object} True if visible.
+ * @return {boolean} True if visible.
  */
 org.apache.flex.core.UIBase.prototype.get_visible = function() {
   return this.element.style.display !== 'none';
@@ -394,7 +396,7 @@ org.apache.flex.core.UIBase.prototype.get_visible = function() {
 
 /**
  * @expose
- * @param {object} value The new model.
+ * @param {boolean} value The new model.
  */
 org.apache.flex.core.UIBase.prototype.set_visible = function(value) {
   var oldValue = this.element.style.display !== 'none';

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBase.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBase.js b/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBase.js
index 811c95c..2a0fe19 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBase.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBase.js
@@ -43,7 +43,7 @@ org.apache.flex.core.ViewBase = function() {
 
   /**
    * @private
-   * @type {string}
+   * @type {Object}
    */
   this.currentState_ = null;
 
@@ -73,6 +73,7 @@ org.apache.flex.core.ViewBase.prototype.MXMLDescriptor = null;
 
 
 /**
+ * @expose
  */
 org.apache.flex.core.ViewBase.prototype.addedToParent = function() {
 
@@ -138,7 +139,7 @@ org.apache.flex.core.ViewBase.prototype.hasState = function(state) {
 
 /**
  * @expose
- * @return {string} The name of the current state.
+ * @return {Object} The name of the current state.
  */
 org.apache.flex.core.ViewBase.prototype.get_currentState = function() {
   return this.currentState_;
@@ -147,7 +148,7 @@ org.apache.flex.core.ViewBase.prototype.get_currentState = function() {
 
 /**
  * @expose
- * @param {string} value The name of the current state.
+ * @param {Object} value The name of the current state.
  */
 org.apache.flex.core.ViewBase.prototype.set_currentState = function(value) {
   var event = new org.apache.flex.events.ValueChangeEvent(

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBaseDataBinding.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBaseDataBinding.js b/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBaseDataBinding.js
index 8654bad..f38ef47 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBaseDataBinding.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/core/ViewBaseDataBinding.js
@@ -341,13 +341,13 @@ org.apache.flex.core.ViewBaseDataBinding.prototype.deferredBindingsHandler =
     {
       var destination = this.strand_['get_' + p]();
       destination.addBead(this.deferredBindings[p]);
-      delete deferredBindings[p];
+      delete this.deferredBindings[p];
     }
     else if (this.strand_[p] != null)
     {
       var destination = this.strand_[p];
       destination.addBead(this.deferredBindings[p]);
-      delete deferredBindings[p];
+      delete this.deferredBindings[p];
     }
   }
 };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/events/CustomEvent.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/events/CustomEvent.js b/frameworks/js/FlexJS/src/org/apache/flex/events/CustomEvent.js
index 6d507d1..1e837d3 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/events/CustomEvent.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/events/CustomEvent.js
@@ -24,7 +24,7 @@ goog.require('goog.events.Event');
  * @param {string} type The event type.
  */
 org.apache.flex.events.CustomEvent = function(type) {
-  goog.base(this);
+  goog.base(this, type);
 
   this.type = type;
 };
@@ -45,4 +45,4 @@ org.apache.flex.events.CustomEvent.prototype.init = function(type) {
  * @expose
  * @type {string} type The event type.
  */
-org.apache.flex.events.CustomEvent.prototype.type = null;
+org.apache.flex.events.CustomEvent.prototype.type = '';

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/events/Event.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/events/Event.js b/frameworks/js/FlexJS/src/org/apache/flex/events/Event.js
index e5d9613..c42eb8e 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/events/Event.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/events/Event.js
@@ -34,6 +34,13 @@ goog.inherits(org.apache.flex.events.Event,
 
 /**
  * @expose
+ * @type {string} type The event type.
+ */
+org.apache.flex.events.Event.prototype.type = '';
+
+
+/**
+ * @expose
  * @param {string} type The event type.
  */
 org.apache.flex.events.Event.prototype.init = function(type) {
@@ -43,15 +50,8 @@ org.apache.flex.events.Event.prototype.init = function(type) {
 
 /**
  * @expose
- * @return {Object} The event target.
+ * @return {Object|undefined} The event target.
  */
 org.apache.flex.events.Event.prototype.get_target = function() {
   return this.target;
 };
-
-
-/**
- * @expose
- * @type {string} type The event type.
- */
-org.apache.flex.events.Event.prototype.type = null;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/events/EventDispatcher.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/events/EventDispatcher.js b/frameworks/js/FlexJS/src/org/apache/flex/events/EventDispatcher.js
index 4638904..b3873f3 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/events/EventDispatcher.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/events/EventDispatcher.js
@@ -32,12 +32,18 @@ goog.inherits(org.apache.flex.events.EventDispatcher,
 
 /**
  * @override
- * @expose
- * @param {string} type The event type.
- * @param {function(?): ?} fn The event handler.
+ * @param {string} type The type of the event to listen for.
+ * @param {Function|Object} handler The function to handle the event. The
+ *     handler can also be an object that implements the handleEvent method
+ *     which takes the event object as argument.
+ * @param {boolean=} opt_capture In DOM-compliant browsers, this determines
+ *     whether the listener is fired during the capture or bubble phase
+ *     of the event.
+ * @param {Object=} opt_handlerScope Object in whose scope to call
+ *     the listener.
  */
 org.apache.flex.events.EventDispatcher.prototype.addEventListener =
-    function(type, fn) {
+    function(type, handler, opt_capture, opt_handlerScope) {
   var source;
 
   /**
@@ -52,5 +58,5 @@ org.apache.flex.events.EventDispatcher.prototype.addEventListener =
     source = this.element;
   }
 
-  goog.events.listen(source, type, fn);
+  goog.events.listen(source, type, handler);
 };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/events/ValueChangeEvent.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/events/ValueChangeEvent.js b/frameworks/js/FlexJS/src/org/apache/flex/events/ValueChangeEvent.js
index ddfcd11..875c5e2 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/events/ValueChangeEvent.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/events/ValueChangeEvent.js
@@ -22,11 +22,11 @@ goog.require('goog.events.Event');
  * @constructor
  * @extends {goog.events.Event}
  * @param {string} type The event type.
- * @param {string} ov The old value.
- * @param {string} nv The new value.
+ * @param {Object} ov The old value.
+ * @param {Object} nv The new value.
  */
 org.apache.flex.events.ValueChangeEvent = function(type, ov, nv) {
-  goog.base(this);
+  goog.base(this, type);
 
   this.type = type;
   this.oldValue = ov;
@@ -49,7 +49,7 @@ org.apache.flex.events.ValueChangeEvent.prototype.init = function(type) {
  * @expose
  * @type {string} type The event type.
  */
-org.apache.flex.events.ValueChangeEvent.prototype.type = null;
+org.apache.flex.events.ValueChangeEvent.prototype.type = '';
 
 
 /**
@@ -70,7 +70,7 @@ org.apache.flex.events.ValueChangeEvent.prototype.newValue = null;
  * @expose
  * @type {string} propertyName The property that changed.
  */
-org.apache.flex.events.ValueChangeEvent.prototype.propertyName = null;
+org.apache.flex.events.ValueChangeEvent.prototype.propertyName = '';
 
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
index 209ef52..bc493a6 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Button.js
@@ -43,5 +43,6 @@ org.apache.flex.html.staticControls.Button.prototype.createElement =
   var impl = org.apache.flex.core.ValuesManager.valuesImpl.
       getValue(this, 'iStatesImpl');
 
+  return this.element;
 };
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
index 95e5b6e..1fd7828 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/CheckBox.js
@@ -33,7 +33,7 @@ goog.inherits(org.apache.flex.html.staticControls.CheckBox,
  * @override
  */
 org.apache.flex.html.staticControls.CheckBox.prototype.createElement =
-    function(p) {
+    function() {
   var cb;
 
   this.element = document.createElement('label');
@@ -45,6 +45,8 @@ org.apache.flex.html.staticControls.CheckBox.prototype.createElement =
 
   this.positioner = this.element;
   cb.flexjs_wrapper = this;
+
+  return this.element;
 };
 
 
@@ -69,7 +71,7 @@ org.apache.flex.html.staticControls.CheckBox.prototype.set_text =
 
 /**
  * @expose
- * @return {bool} The selected getter.
+ * @return {boolean} The selected getter.
  */
 org.apache.flex.html.staticControls.CheckBox.prototype.get_selected =
     function() {
@@ -79,7 +81,7 @@ org.apache.flex.html.staticControls.CheckBox.prototype.get_selected =
 
 /**
  * @expose
- * @param {bool} value The selected setter.
+ * @param {boolean} value The selected setter.
  */
 org.apache.flex.html.staticControls.CheckBox.prototype.set_selected =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
index 9b7378a..2b6da3e 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Container.js
@@ -33,13 +33,15 @@ goog.inherits(org.apache.flex.html.staticControls.Container,
  * @override
  */
 org.apache.flex.html.staticControls.Container.prototype.createElement =
-    function(p) {
+    function() {
   var cb;
 
   this.element = document.createElement('div');
 
   this.positioner = this.element;
   this.element.flexjs_wrapper = this;
+
+  return this.element;
 };
 
 
@@ -54,22 +56,20 @@ org.apache.flex.html.staticControls.Container.prototype.addElement =
 
 
 /**
- * @override
- * @param {Object} child The element to be added.
+ * @expose
  */
 org.apache.flex.html.staticControls.Container.prototype.childrenAdded =
     function() {
-
   this.dispatchEvent('childrenAdded');
 };
 
 
 /**
+ * @expose
  * @return {Array} the HTML DOM element children.
  */
 org.apache.flex.html.staticControls.Container.prototype.internalChildren =
     function() {
-
   return this.element.children;
 };
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
index 929caad..9902c64 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/DropDownList.js
@@ -41,6 +41,8 @@ org.apache.flex.html.staticControls.DropDownList.prototype.
   goog.events.listen(this.element, 'change',
       goog.bind(this.changeHandler, this));
   this.positioner = this.element;
+
+  return this.element;
 };
 
 
@@ -82,7 +84,7 @@ org.apache.flex.html.staticControls.DropDownList.prototype.changeHandler =
 
 /**
  * @expose
- * @param {Number} value The new selected index.
+ * @param {number} value The new selected index.
  */
 org.apache.flex.html.staticControls.DropDownList.prototype.
     set_selectedIndex = function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Label.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Label.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Label.js
index 875179d..882d45d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Label.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Label.js
@@ -33,15 +33,6 @@ goog.inherits(org.apache.flex.html.staticControls.Label,
 
 
 /**
- * @override
- */
-org.apache.flex.html.staticControls.Label.prototype.createElement =
-    function() {
-  goog.base(this, 'createElement');
-};
-
-
-/**
  * @expose
  * @return {string} The text getter.
  */

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/RadioButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/RadioButton.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/RadioButton.js
index a8ba4ff..ac75b80 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/RadioButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/RadioButton.js
@@ -45,6 +45,8 @@ org.apache.flex.html.staticControls.RadioButton.prototype.createElement =
 
   this.positioner = this.element;
   rb.flexjs_wrapper = this;
+
+  return this.element;
 };
 
 
@@ -106,7 +108,7 @@ org.apache.flex.html.staticControls.RadioButton.prototype.set_text =
 
 /**
  * @expose
- * @return {bool} The selected getter.
+ * @return {boolean} The selected getter.
  */
 org.apache.flex.html.staticControls.RadioButton.prototype.get_selected =
     function() {
@@ -116,7 +118,7 @@ org.apache.flex.html.staticControls.RadioButton.prototype.get_selected =
 
 /**
  * @expose
- * @param {bool} value The selected setter.
+ * @param {boolean} value The selected setter.
  */
 org.apache.flex.html.staticControls.RadioButton.prototype.set_selected =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextArea.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextArea.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextArea.js
index a3a27b7..84a4ece 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextArea.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextArea.js
@@ -33,11 +33,13 @@ goog.inherits(org.apache.flex.html.staticControls.TextArea,
  * @override
  */
 org.apache.flex.html.staticControls.TextArea.prototype.createElement =
-    function(p) {
+    function() {
 
   this.element = document.createElement('textarea');
   this.positioner = this.element;
   this.element.flexjs_wrapper = this;
+
+  return this.element;
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextButton.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextButton.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextButton.js
index 51ceacd..49dccb6 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextButton.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextButton.js
@@ -20,7 +20,7 @@ goog.require('org.apache.flex.html.staticControls.Button');
 
 /**
  * @constructor
- * @extends {org.apache.flex.core.UIBase}
+ * @extends {org.apache.flex.html.staticControls.Button}
  */
 org.apache.flex.html.staticControls.TextButton = function() {
   goog.base(this);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextInput.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextInput.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextInput.js
index 14a76c3..ef7ea2d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextInput.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/TextInput.js
@@ -33,12 +33,14 @@ goog.inherits(org.apache.flex.html.staticControls.TextInput,
  * @override
  */
 org.apache.flex.html.staticControls.TextInput.prototype.createElement =
-    function(p) {
+    function() {
   this.element = document.createElement('input');
   this.element.setAttribute('type', 'input');
 
   this.positioner = this.element;
   this.element.flexjs_wrapper = this;
+
+  return this.element;
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/DataItemRendererFactoryForArrayData.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/DataItemRendererFactoryForArrayData.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/DataItemRendererFactoryForArrayData.js
index 02de174..93e4602 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/DataItemRendererFactoryForArrayData.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/DataItemRendererFactoryForArrayData.js
@@ -16,6 +16,7 @@ goog.provide('org.apache.flex.html.staticControls.beads.DataItemRendererFactoryF
 
 goog.require('org.apache.flex.events.EventDispatcher');
 goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionModel');
+goog.require('org.apache.flex.html.staticControls.beads.ListView');
 goog.require('org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer');
 
 
@@ -36,8 +37,15 @@ goog.inherits(
 
 /**
  * @expose
-          DataItemRendererFactoryForArrayData}
- * @param {object} value The component strand.
+ * @type {Object}
+ */
+org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
+    prototype.itemRendererClass_ = null;
+
+
+/**
+ * @expose
+ * @param {Object} value The component strand.
  */
 org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
     prototype.set_strand = function(value) {
@@ -57,8 +65,7 @@ org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
 
 /**
  * @expose
- *        DataItemRendererFactoryForArrayData}
- * @return {object} Class used for the itemRenderer.
+ * @return {Object} The itemRenderer.
  */
 org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
     prototype.get_itemRendererClass = function() {
@@ -68,8 +75,7 @@ org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
 
 /**
  * @expose
-          DataItemRendererFactoryForArrayData}
- * @param {object} value class to use for the item renderer.
+ * @param {Object} value class to use for the item renderer.
  */
 org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
     prototype.set_itemRendererClass = function(value) {
@@ -79,8 +85,7 @@ org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
 
 /**
  * @expose
-          DataItemRendererFactoryForArrayData}
- * @param {object} event The event that triggered the dataProvider change.
+ * @param {Object} event The event that triggered the dataProvider change.
  */
 org.apache.flex.html.staticControls.beads.DataItemRendererFactoryForArrayData.
     prototype.dataProviderChangedHandler = function(event) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/ListView.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/ListView.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/ListView.js
index 32b8131..c29e4ed 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/ListView.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/ListView.js
@@ -67,7 +67,7 @@ org.apache.flex.html.staticControls.beads.ListView.prototype.set_strand =
 
 /**
  * @expose
- * @return {object} The DataGroup instance.
+ * @return {Object} The DataGroup instance.
  */
 org.apache.flex.html.staticControls.beads.ListView.prototype.get_dataGroup =
     function() {
@@ -77,7 +77,7 @@ org.apache.flex.html.staticControls.beads.ListView.prototype.get_dataGroup =
 
 /**
  * @expose
- * @param {object} value The event that triggered the selection.
+ * @param {Object} value The event that triggered the selection.
  */
 org.apache.flex.html.staticControls.beads.ListView.prototype.
     selectionChangeHandler = function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/TextItemRendererFactoryForArrayData.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/TextItemRendererFactoryForArrayData.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/TextItemRendererFactoryForArrayData.js
index ff5b362..1d7578d 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/TextItemRendererFactoryForArrayData.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/TextItemRendererFactoryForArrayData.js
@@ -22,7 +22,8 @@ goog.require('org.apache.flex.html.staticControls.beads.models.ArraySelectionMod
 
 /**
  * @constructor
- * @extends {org.apache.flex.core.IItemRenderer}
+ * @extends {org.apache.flex.events.EventDispatcher}
+ * @implements {org.apache.flex.core.IItemRenderer}
  */
 org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData =
     function() {
@@ -31,16 +32,12 @@ org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData =
 goog.inherits(
     org.apache.flex.html.staticControls.
         beads.TextItemRendererFactoryForArrayData,
-    org.apache.flex.core.IItemRenderer,
     org.apache.flex.events.EventDispatcher);
-// TODO (erikdebruin) this 'goog.inherits' doesn't do what you think... We need
-//                    a proper interface here.
 
 
 /**
  * @expose
-          TextItemRendererFactoryForArrayData}
- * @param {object} value The component strand.
+ * @param {Object} value The component strand.
  */
 org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
     prototype.set_strand = function(value) {
@@ -62,8 +59,7 @@ org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
 
 /**
  * @expose
-          TextItemRendererFactoryForArrayData}
- * @param {object} event The event that triggered the dataProvider change.
+ * @param {Object} event The event that triggered the dataProvider change.
  */
 org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
     prototype.dataProviderChangedHandler = function(event) {
@@ -81,3 +77,12 @@ org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
   var newEvent = new org.apache.flex.events.Event('itemsCreated');
   this.strand_.dispatchEvent(newEvent);
 };
+
+
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.TextItemRendererFactoryForArrayData.
+    prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IItemRenderer] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/ItemRendererMouseController.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/ItemRendererMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/ItemRendererMouseController.js
index 8f99957..7ca5fef 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/ItemRendererMouseController.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/ItemRendererMouseController.js
@@ -20,21 +20,16 @@ goog.require('org.apache.flex.core.IBeadController');
 
 /**
  * @constructor
- * @extends {org.apache.flex.core.IBeadController}
+ * @implements {org.apache.flex.core.IBeadController}
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController = function() {
-  goog.base(this);
 };
-goog.inherits(org.apache.flex.html.staticControls.beads.
-        controllers.ItemRendererMouseController,
-    org.apache.flex.core.IBeadController);
 
 
 /**
  * @expose
- *        ItemRendererMouseController}
- * @param {object} value The strand for this component.
+ * @param {Object} value The strand for this component.
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController.prototype.set_strand = function(value) {
@@ -56,8 +51,7 @@ org.apache.flex.html.staticControls.beads.controllers.
 
 /**
  * @expose
- *        ItemRendererMouseController}
- * @param {object} event The mouse event that triggered the hover.
+ * @param {Object} event The mouse event that triggered the hover.
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController.prototype.handleMouseOver = function(event) {
@@ -68,8 +62,7 @@ org.apache.flex.html.staticControls.beads.controllers.
 
 /**
  * @expose
- *        ItemRendererMouseController}
- * @param {object} event The mouse-out event.
+ * @param {Object} event The mouse-out event.
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController.prototype.handleMouseOut = function(event) {
@@ -80,8 +73,7 @@ org.apache.flex.html.staticControls.beads.controllers.
 
 /**
  * @expose
- *        ItemRendererMouseController}
- * @param {object} event The mouse-down event.
+ * @param {Object} event The mouse-down event.
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController.prototype.handleMouseDown = function(event) {
@@ -92,8 +84,7 @@ org.apache.flex.html.staticControls.beads.controllers.
 
 /**
  * @expose
- *        ItemRendererMouseController}
- * @param {object} event The mouse-up event that triggers the selection.
+ * @param {Object} event The mouse-up event that triggers the selection.
  */
 org.apache.flex.html.staticControls.beads.controllers.
     ItemRendererMouseController.prototype.handleMouseUp = function(event) {
@@ -111,3 +102,12 @@ org.apache.flex.html.staticControls.beads.controllers.
 
   this.strand_.get_itemRendererParent().dispatchEvent(newEvent);
 };
+
+
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.controllers.
+    ItemRendererMouseController.prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBeadController] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualHorizontalLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualHorizontalLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualHorizontalLayout.js
index d0de246..ddc2082 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualHorizontalLayout.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualHorizontalLayout.js
@@ -21,16 +21,13 @@ goog.require('org.apache.flex.html.staticControls.beads.ListView');
 
 /**
  * @constructor
+ * @implements {org.apache.flex.core.IBeadLayout}
  */
 org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout =
     function() {
-  goog.base(this);
   this.strand_ = null;
   this.className = 'NonVirtualHorizontalLayout';
 };
-goog.inherits(org.apache.flex.html.staticControls.beads.
-        layouts.NonVirtualHorizontalLayout,
-    org.apache.flex.core.IBeadLayout);
 
 
 /**
@@ -75,4 +72,10 @@ org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout.
   }
 };
 
-
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualHorizontalLayout.
+    prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBeadLayout] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalLayout.js
index 9e134b1..74d740e 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalLayout.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalLayout.js
@@ -63,3 +63,9 @@ org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout.
 };
 
 
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.NonVirtualVerticalLayout.
+    prototype.FLEXJS_CLASS_INFO = { interfaces: [org.apache.flex.core.IBeadLayout] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalScrollingLayout.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalScrollingLayout.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalScrollingLayout.js
index 89f1307..c6e73b0 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalScrollingLayout.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/layouts/NonVirtualVerticalScrollingLayout.js
@@ -20,17 +20,13 @@ goog.require('org.apache.flex.core.IBeadLayout');
 
 /**
  * @constructor
- * @extends {org.apache.flex.core.IBeadLayout');}
+ * @implements {org.apache.flex.core.IBeadLayout}
  */
 org.apache.flex.html.staticControls.beads.layouts.
     NonVirtualVerticalScrollingLayout = function() {
-  goog.base(this);
   this.strand_ = null;
   this.className = 'NonVirtualVerticalScrollingLayout';
 };
-goog.inherits(org.apache.flex.html.staticControls.beads.
-        layouts.NonVirtualVerticalScrollingLayout,
-    org.apache.flex.core.IBeadLayout);
 
 
 /**
@@ -67,3 +63,10 @@ org.apache.flex.html.staticControls.beads.layouts.
 };
 
 
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.layouts.
+    NonVirtualVerticalScrollingLayout.prototype.FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBeadLayout] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/models/ArraySelectionModel.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/models/ArraySelectionModel.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/models/ArraySelectionModel.js
index 5f907dd..1336959 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/models/ArraySelectionModel.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/models/ArraySelectionModel.js
@@ -21,7 +21,8 @@ goog.require('org.apache.flex.events.EventDispatcher');
 
 /**
  * @constructor
- * @extends {org.apache.flex.core.IBeadModel}
+ * @extends {org.apache.flex.events.EventDispatcher}
+ * @implements {org.apache.flex.core.IBeadModel}
  */
 org.apache.flex.html.staticControls.beads.models.ArraySelectionModel =
     function() {
@@ -30,7 +31,6 @@ org.apache.flex.html.staticControls.beads.models.ArraySelectionModel =
 };
 goog.inherits(
     org.apache.flex.html.staticControls.beads.models.ArraySelectionModel,
-    org.apache.flex.core.IBeadModel,
     org.apache.flex.events.EventDispatcher);
 
 
@@ -126,3 +126,12 @@ org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
   this.dispatchEvent('selectedItemChanged');
   this.dispatchEvent('selectedIndexChanged');
 };
+
+
+/**
+ * @const
+ * @type {Object.<string, Array.<Object>>}
+ */
+org.apache.flex.html.staticControls.beads.models.ArraySelectionModel.prototype.
+    FLEXJS_CLASS_INFO =
+    { interfaces: [org.apache.flex.core.IBeadModel] };

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/ButtonBarButtonItemRenderer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/ButtonBarButtonItemRenderer.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/ButtonBarButtonItemRenderer.js
index dd79796..9c68f85 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/ButtonBarButtonItemRenderer.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/ButtonBarButtonItemRenderer.js
@@ -35,7 +35,6 @@ goog.inherits(
 
 /**
  * @override
-          ButtonBarButtonItemRenderer}
  */
 org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
     prototype.createElement = function() {
@@ -56,12 +55,13 @@ org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
   this.controller = new org.apache.flex.html.staticControls.beads.controllers.
       ItemRendererMouseController();
   this.controller.set_strand(this);
+
+  return this.element;
 };
 
 
 /**
  * @expose
-          ButtonBarButtonItemRenderer}
  * @param {Object} value The strand.
  */
 org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
@@ -73,7 +73,6 @@ org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
 
 /**
  * @expose
-          ButtonBarButtonItemRenderer}
  * @return {Object} The strand.
  */
 org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
@@ -84,7 +83,6 @@ org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.
 
 /**
  * @expose
-          ButtonBarButtonItemRenderer}
  * @param {Object} value The text to display.
  */
 org.apache.flex.html.staticControls.supportClasses.ButtonBarButtonItemRenderer.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/DataItemRenderer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/DataItemRenderer.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/DataItemRenderer.js
index 41870be..1d5a3a3 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/DataItemRenderer.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/DataItemRenderer.js
@@ -51,6 +51,8 @@ org.apache.flex.html.staticControls.supportClasses.DataItemRenderer.
   this.controller = new org.apache.flex.html.staticControls.beads.controllers.
       ItemRendererMouseController();
   this.controller.set_strand(this);
+
+  return this.element;
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/NonVirtualDataGroup.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/NonVirtualDataGroup.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/NonVirtualDataGroup.js
index 543cef4..431a3a6 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/NonVirtualDataGroup.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/NonVirtualDataGroup.js
@@ -34,7 +34,6 @@ goog.inherits(
 
 /**
  * @expose
- *        NonVirtualDataGroup}
  * @param {Object} value The strand.
  */
 org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup.
@@ -45,19 +44,19 @@ org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup.
 
 /**
  * @override
- *        NonVirtualDataGroup}
  */
 org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup.
     prototype.createElement = function() {
   this.element = document.createElement('div');
   this.element.style.overflow = 'auto';
   this.set_className('NonVirtualDataGroup');
+
+  return this.element;
 };
 
 
 /**
  * @override
- *        NonVirtualDataGroup}
  * @param {Object} value The child element being added.
  */
 org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup.
@@ -72,7 +71,6 @@ org.apache.flex.html.staticControls.supportClasses.NonVirtualDataGroup.
 
 /**
  * @expose
- *        NonVirtualDataGroup}
  * @param {Object} index The index for the itemRenderer.
  * @return {Object} The itemRenderer that matches the index.
  */

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/StringItemRenderer.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/StringItemRenderer.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/StringItemRenderer.js
index c7709af..dd37f50 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/StringItemRenderer.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/supportClasses/StringItemRenderer.js
@@ -51,6 +51,8 @@ org.apache.flex.html.staticControls.supportClasses.StringItemRenderer.
   this.controller = new org.apache.flex.html.staticControls.beads.controllers.
       ItemRendererMouseController();
   this.controller.set_strand(this);
+
+  return this.element;
 };
 
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/net/HTTPService.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/net/HTTPService.js b/frameworks/js/FlexJS/src/org/apache/flex/net/HTTPService.js
index 843bfdf..854edb7 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/net/HTTPService.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/net/HTTPService.js
@@ -34,7 +34,7 @@ org.apache.flex.net.HTTPService = function() {
 
   /**
    * @private
-   * @type {Number}
+   * @type {number}
    */
   this.status_;
 
@@ -64,7 +64,7 @@ org.apache.flex.net.HTTPService = function() {
 
   /**
    * @private
-   * @type {Number}
+   * @type {number}
    */
   this.timeout_ = 0;
 
@@ -169,7 +169,7 @@ org.apache.flex.net.HTTPService.prototype.set_contentType = function(value) {
  * @return {Array} value The array of HTTPHeaders.
  */
 org.apache.flex.net.HTTPService.prototype.get_headers = function() {
-  if (this.headers_ === 'undefined') {
+  if (!this.headers_ === undefined) {
     this.headers_ = [];
   }
 
@@ -239,7 +239,7 @@ org.apache.flex.net.HTTPService.prototype.get_responseURL = function() {
 
 /**
  * @expose
- * @return {Number} value The status.
+ * @return {number} value The status.
  */
 org.apache.flex.net.HTTPService.prototype.get_status = function() {
   return this.status_;
@@ -248,7 +248,7 @@ org.apache.flex.net.HTTPService.prototype.get_status = function() {
 
 /**
  * @expose
- * @return {Number} value The timeout.
+ * @return {number} value The timeout.
  */
 org.apache.flex.net.HTTPService.prototype.get_timeout = function() {
   return this.timeout_;
@@ -257,7 +257,7 @@ org.apache.flex.net.HTTPService.prototype.get_timeout = function() {
 
 /**
  * @expose
- * @param {Number} value The timeout.
+ * @param {number} value The timeout.
  */
 org.apache.flex.net.HTTPService.prototype.set_timeout = function(value) {
   this.timeout_ = value;
@@ -369,7 +369,7 @@ org.apache.flex.net.HTTPService.prototype.get_id = function() {
 
 /**
  * @expose
- * @param {Object} value The new id.
+ * @param {string} value The new id.
  */
 org.apache.flex.net.HTTPService.prototype.set_id = function(value) {
   if (this.id !== value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/net/JSONInputParser.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/net/JSONInputParser.js b/frameworks/js/FlexJS/src/org/apache/flex/net/JSONInputParser.js
index dc65fa0..52b3f3e 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/net/JSONInputParser.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/net/JSONInputParser.js
@@ -26,7 +26,7 @@ org.apache.flex.net.JSONInputParser = function() {
 /**
  * @expose
  * @param {string} s The input string.
- * @return {Array.<String>} The Array of unparsed objects.
+ * @return {Array.<string>} The Array of unparsed objects.
  */
 org.apache.flex.net.JSONInputParser.prototype.parseItems = function(s) {
   return s.split('},');

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/net/JSONItemConverter.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/net/JSONItemConverter.js b/frameworks/js/FlexJS/src/org/apache/flex/net/JSONItemConverter.js
index 36b42fa..551d3f9 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/net/JSONItemConverter.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/net/JSONItemConverter.js
@@ -26,7 +26,7 @@ org.apache.flex.net.JSONItemConverter = function() {
 /**
  * @expose
  * @param {string} s The input string.
- * @return {Object} The object.
+ * @return {*} The object.
  */
 org.apache.flex.net.JSONItemConverter.prototype.convertItem = function(s) {
   return JSON.parse(s);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/net/dataConverters/LazyCollection.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/net/dataConverters/LazyCollection.js b/frameworks/js/FlexJS/src/org/apache/flex/net/dataConverters/LazyCollection.js
index 1029a14..f7d2c63 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/net/dataConverters/LazyCollection.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/net/dataConverters/LazyCollection.js
@@ -55,7 +55,7 @@ org.apache.flex.net.dataConverters.LazyCollection = function() {
 
 /**
  * @expose
- * @return {string} value The input parser.
+ * @return {Object} value The input parser.
  */
 org.apache.flex.net.dataConverters.LazyCollection.prototype.get_inputParser =
     function() {
@@ -65,7 +65,7 @@ org.apache.flex.net.dataConverters.LazyCollection.prototype.get_inputParser =
 
 /**
  * @expose
- * @param {string} value The input parser.
+ * @param {Object} value The input parser.
  */
 org.apache.flex.net.dataConverters.LazyCollection.prototype.set_inputParser =
     function(value) {
@@ -75,7 +75,7 @@ org.apache.flex.net.dataConverters.LazyCollection.prototype.set_inputParser =
 
 /**
  * @expose
- * @return {string} value The input parser.
+ * @return {Object} value The input parser.
  */
 org.apache.flex.net.dataConverters.LazyCollection.prototype.get_itemConverter =
     function() {
@@ -85,7 +85,7 @@ org.apache.flex.net.dataConverters.LazyCollection.prototype.get_itemConverter =
 
 /**
  * @expose
- * @param {string} value The input parser.
+ * @param {Object} value The input parser.
  */
 org.apache.flex.net.dataConverters.LazyCollection.prototype.set_itemConverter =
     function(value) {
@@ -97,7 +97,7 @@ org.apache.flex.net.dataConverters.LazyCollection.prototype.set_itemConverter =
  * @expose
  * @type {string}
  */
-org.apache.flex.net.dataConverters.LazyCollection.prototype.id = null;
+org.apache.flex.net.dataConverters.LazyCollection.prototype.id = '';
 
 
 /**
@@ -112,7 +112,7 @@ org.apache.flex.net.dataConverters.LazyCollection.prototype.get_id =
 
 /**
  * @expose
- * @param {Object} value The new id.
+ * @param {string} value The new id.
  */
 org.apache.flex.net.dataConverters.LazyCollection.prototype.set_id =
     function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js
index c7cc068..20c4634 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/utils/Language.js
@@ -44,7 +44,7 @@ org.apache.flex.utils.Language.as = function(leftOperand, rightOperand) {
  * int()
  *
  * @expose
- * @param {*} value The value to be cast.
+ * @param {?} value The value to be cast.
  * @return {number}
  */
 org.apache.flex.utils.Language._int = function(value) {
@@ -56,7 +56,7 @@ org.apache.flex.utils.Language._int = function(value) {
  * is()
  *
  * @expose
- * @param {!Object} leftOperand The lefthand operand of the
+ * @param {?Object} leftOperand The lefthand operand of the
  *     binary as operator in AS3.
  * @param {!Object} rightOperand The righthand operand of the
  *     binary operator in AS3.
@@ -102,9 +102,13 @@ org.apache.flex.utils.Language.is = function(leftOperand, rightOperand) {
  * @param {string} value The message to be written to the console.
  */
 org.apache.flex.utils.Language.trace = function(value) {
+  var theConsole;
+
+  theConsole = goog.global['console'];
+
   try {
-    if (console && console.log) {
-      console.log(value);
+    if (theConsole && theConsole.log) {
+      theConsole.log(value);
     }
   } catch (e) {
     // ignore; at least we tried ;-)
@@ -116,7 +120,7 @@ org.apache.flex.utils.Language.trace = function(value) {
  * uint()
  *
  * @expose
- * @param {*} value The value to be cast.
+ * @param {?} value The value to be cast.
  * @return {number}
  */
 org.apache.flex.utils.Language.uint = function(value) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
index d3551fd..2421d1a 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/utils/MXMLDataInterpreter.js
@@ -86,7 +86,7 @@ org.apache.flex.utils.MXMLDataInterpreter.generateMXMLObject =
  * @param {Object} document The MXML object.
  * @param {Object} parent The parent object.
  * @param {Array} data The data array.
- * @param {Boolean=} opt_recursive Whether to create objects in children.
+ * @param {boolean=} opt_recursive Whether to create objects in children.
  * @return {Array} The generated array.
  */
 org.apache.flex.utils.MXMLDataInterpreter.generateMXMLArray =
@@ -214,7 +214,9 @@ org.apache.flex.utils.MXMLDataInterpreter.generateMXMLArray =
         value = generateMXMLObject(document, value);
       }
 
-      comp.setStyle(name, value);
+      if (comp.setStyle) {
+        comp.setStyle(name, value);
+      }
     }
 
     /*
@@ -252,7 +254,7 @@ org.apache.flex.utils.MXMLDataInterpreter.generateMXMLArray =
             document, comp, children, opt_recursive);
         if (typeof comp.childrenAdded === 'function')
           comp.childrenAdded();
-      } else {
+      } else if (comp.setMXMLDescriptor) {
         comp.setMXMLDescriptor(children);
       }
     }
@@ -281,13 +283,13 @@ org.apache.flex.utils.MXMLDataInterpreter.generateMXMLArray =
  * @param {Object} document The MXML object.
  * @param {Object} parent The parent object.
  * @param {Array} data The data array.
- * @param {Boolean} recursive Whether to create objects in children.
+ * @param {boolean=} opt_recursive Whether to create objects in children.
  */
 org.apache.flex.utils.MXMLDataInterpreter.generateMXMLInstances =
-    function(document, parent, data, recursive) {
+    function(document, parent, data, opt_recursive) {
   if (data) {
     org.apache.flex.utils.MXMLDataInterpreter.generateMXMLArray(
-        document, parent, data, recursive);
+        document, parent, data, opt_recursive);
   }
 };
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c15d8b4d/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
----------------------------------------------------------------------
diff --git a/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js b/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
index 7e2ada0..ea90f7f 100644
--- a/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
+++ b/frameworks/js/FlexJS/src/org/apache/flex/utils/ViewSourceContextMenuOption.js
@@ -26,7 +26,7 @@ org.apache.flex.utils.ViewSourceContextMenuOption = function() {
 
 
 /**
- * @param {object} value The strand (owner) of the bead.
+ * @param {Object} value The strand (owner) of the bead.
  */
 org.apache.flex.utils.ViewSourceContextMenuOption.prototype.set_strand =
     function(value) {


Mime
View raw message