     //--------------------------------------------------------------------------
 
     //----------------------------------
+    //  displayAsPassword
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _displayAsPassword:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var displayAsPasswordChanged:Boolean = false;
+    
+    /**
+     *  Documentation is not currently available.
+     */
+    public function get displayAsPassword():Boolean
+    {
+        return _displayAsPassword;
+    }
+
+    /**
+     *  @private
+     */
+    public function set displayAsPassword(value:Boolean):void
+    {
+        if (value == _displayAsPassword)
+            return;
+
+        _displayAsPassword = value;
+        displayAsPasswordChanged = true;
+
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  maxChars
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _maxChars:int = 0;
+
+    /**
+     *  @private
+     */
+    private var maxCharsChanged:Boolean = false;
+
+    /**
+     *  The maximum number of characters that the TextView can contain,
+     *  as entered by a user.
+     *  A script can insert more text than maxChars allows;
+     *  the maxChars property indicates only how much text a user can enter.
+     *  If the value of this property is 0,
+     *  a user can enter an unlimited amount of text. 
+     * 
+     *  @default 0
+     */
+    public function get maxChars():int 
+    {
+        return _maxChars;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set maxChars(value:int):void
+    {
+        if (value == _maxChars)
+            return;
+        
+        _maxChars = value;
+        maxCharsChanged = true;
+
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  restrict
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _restrict:String = null;
+
+    /**
+     *  @private
+     */
+    private var restrictChanged:Boolean = false;
+
+    /**
+     *  Documentation is not currently available.
+     * 
+     *  @default null
+     */
+    public function get restrict():String 
+    {
+        return _restrict;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set restrict(value:String):void
+    {
+        if (value == _restrict)
+            return;
+        
+        _restrict = value;
+        restrictChanged = true;
+
+        invalidateProperties();
+    }
+
+    //----------------------------------
     //  selectionActivePosition
     //----------------------------------
 

    //  textView
    //----------------------------------

    [SkinPart]

    /**
     *  The TextView that must be present

    {
        super.commitProperties();

		if (displayAsPasswordChanged)
        {
            textView.displayAsPassword = _displayAsPassword;
            displayAsPasswordChanged = false;
        }

        if (maxCharsChanged)
        {
            textView.maxChars = _maxChars;
            maxCharsChanged = false;
        }

        if (restrictChanged)
        {
            textView.restrict = _restrict;
            restrictChanged = false;
        }
        
        if (mx_internal::textChanged)
        {
            textView.text = mx_internal::_text;
