code: function createNamespaceTree() {
  
  	info("create namespace tree (" + __db().count() + " symbols)");
  
  	var aRootNamespaces = [];
  	var aTypes = __db(function() { return isFirstClassSymbol(this); }).get();
  
  	for (var i = 0; i < aTypes.length; i++) { // loop with a for-loop as it can handle concurrent modifications
  
  		var symbol = aTypes[i];
  		if ( symbol.memberof ) {
  
  			var parent = lookup(symbol.memberof);
  			if ( !parent ) {
  				warning("create missing namespace '" + symbol.memberof + "' (referenced by " + symbol.longname + ")");
  				parent = makeNamespace(symbol.memberof);
  				__longnames[symbol.memberof] = parent;
  				__db.insert(parent);
  				aTypes.push(parent); // concurrent modification: parent will be processed later in this loop
  			}
  			symbol.__ui5.parent = parent;
  			parent.__ui5.children = parent.__ui5.children || [];
  			parent.__ui5.children.push(symbol);
  
  		} else if ( symbol.longname !== ANONYMOUS_LONGNAME ) {
  
  			aRootNamespaces.push(symbol);
  
  		}
  	}
  
  	return aRootNamespaces;
  }
docs: ---- namespace tree -------------------------------------------------------------------------------- /*
  Completes the tree of namespaces. Namespaces for which content is available
  but which have not been documented are created as dummy without documentation.