lib/docgen/formatter.js
function lazyBuildObjectTree(priv, formatted) {
  definePropertyGetters(formatted, {
    children: lazy(function() { return priv.fqnMap.getChildrenOf(formatted.fqn); }),
    fields: lazy(function() { return formatted.children.filter(Filter.ofType('property')); }),
    methods: lazy(function() { return formatted.children.filter(Filter.ofType('function')); }),
    parent: lazy(function() { return priv.fqnMap.getParentOf(formatted.fqn); }),
    parentElement: lazy(function() { return priv.fqnMap.get(formatted.idTags['parent-element']); }),
  });
}
function lazyBuildObjectTree(priv, formatted) {
  definePropertyGetters(formatted, {
    children: lazy(function() { return priv.fqnMap.getChildrenOf(formatted.fqn); }),
    fields: lazy(function() { return formatted.children.filter(Filter.ofType('property')); }),
    methods: lazy(function() { return formatted.children.filter(Filter.ofType('function')); }),
    parent: lazy(function() { return priv.fqnMap.getParentOf(formatted.fqn); }),
    parentElement: lazy(function() { return priv.fqnMap.get(formatted.idTags['parent-element']); }),
  });
}
function lazyBuildObjectTree ( priv , formatted ) { definePropertyGetters ( formatted , { children : lazy ( function ( ) { return priv . fqnMap . getChildrenOf ( formatted . fqn ) ; } ) , fields : lazy ( function ( ) { return formatted . children . filter ( Filter . ofType ( 'property' ) ) ; } ) , methods : lazy ( function ( ) { return formatted . children . filter ( Filter . ofType ( 'function' ) ) ; } ) , parent : lazy ( function ( ) { return priv . fqnMap . getParentOf ( formatted . fqn ) ; } ) , parentElement : lazy ( function ( ) { return priv . fqnMap . get ( formatted . idTags [ 'parent-element' ] ) ; } ) , } ) ; }
sets parent->child relations
sets parent - > child relations