'Recursively update the class constructor name of the given class
@param jsobject {list of JSObject} The JSClasses (or things things
containing the JSClasses) to find constructors to mark as ctors'

def _updateClassConstructors(self, jsobject):

    if isinstance(jsobject, JSClass):
        if jsobject.constructor:
            jsfunc = self._findScopeWithName(jsobject.constructor, [jsobject], type='functions')
            if (jsfunc and ('__ctor__' not in jsfunc.attributes)):
                log.debug('Making    function:%r    the    constructor    for    class:%r', jsfunc.name, jsobject.name)
                jsfunc.attributes.append('__ctor__')
    allObjects = ((jsobject.functions.values() + jsobject.classes.values()) + jsobject.variables.values())
    if (not isinstance(jsobject, JSFile)):
        allObjects += jsobject.members.values()
    for subobj in allObjects:
        self._updateClassConstructors(subobj)
