 
     //--------------------------------------------------------------------------
     //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The inheritingStyles and nonInheritingStyles properties
+     *  are initialized to this empty Object.
+     *  This allows the getStyle() and getStyle()
+     *  methods to simply access inheritingStyles[] and nonInheritingStyles[]
+     *  without needing to first check whether those objects exist.
+     *  If they were simply initialized to {}, we couldn't determine
+     *  whether the style chain has already been built or not.
+     */
+    public static const STYLE_UNINITIALIZED:Object = {};
+    
+    //--------------------------------------------------------------------------
+    //
     //  Class methods
     //
     //--------------------------------------------------------------------------

        }

        var inheritChain:Object = styleName.inheritingStyles;
        if (!inheritChain || inheritChain == StyleManager.STYLE_UNINITIALIZED)
            inheritChain = StyleManager.stylesRoot;

        // If there's no type selector on this object, then we can collapse
        // 6 steps to 2 (see above)

        // Push items onto the proto chain in reverse order, beginning with
        // 6) Follow the usual search path for the styleName object
        var nonInheritChain:Object = styleName.nonInheritingStyles;
        if (!nonInheritChain ||
            nonInheritChain == StyleProtoChain.STYLE_UNINITIALIZED)
        {
            nonInheritChain = StyleManager.stylesRoot;

