                     }
 
                     var isArray:Boolean = value is Array;
+                    var isDict:Boolean = value is Dictionary;
                     var prop:*;
                     indent += 2;
                     


        propertyNames.sort(Array.CASEINSENSITIVE |
                           (numericIndex ? Array.NUMERIC : 0));
        // remove any duplicates, i.e. any items that can't be distingushed by toString()
        for (i = 0; i < propertyNames.length - 1; i++)
        {
            // the list is sorted so any duplicates should be adjacent
            // two properties are only equal if both the uri and local name are identical
            if (propertyNames[i].toString() == propertyNames[i + 1].toString())
            {
                propertyNames.splice(i, 1);
                i--; // back up
            }
        }


     *  @return An Object containing the following properties:
     *  <ul>
     *    <li><code>name</code>: String containing the name of the class;</li>
     *    <li><code>properties</code>: Sorted list of the property names of the specified object,
     *    or references to the original key if the specified object is a Dictionary</li>
     *  </ul>
    */
    public static function getClassInfo(obj:Object,
