code: function mergePageWithBasePage( page, basePage ) {
        const extendingAreas = page.definition.areas;
        const mergedPageAreas = deepClone( basePage.definition.areas );
        if( has( basePage.definition, 'layout' ) ) {
           if( has( page.definition, 'layout' ) ) {
              throw formatError( page, `Page overwrites layout set by base page "${basePage.name}"` );
           }
           page.definition.layout = basePage.definition.layout;
        }
  
        Object.keys( extendingAreas ).forEach( areaName => {
           const itemList = extendingAreas[ areaName ];
           if( !( areaName in mergedPageAreas ) ) {
              mergedPageAreas[ areaName ] = itemList;
              return;
           }
  
           mergeItemLists( mergedPageAreas[ areaName ], itemList, page );
        } );
  
        page.definition.areas = mergedPageAreas;
     }
docs: /////////////////////////////////////////////////////////////////////////////////////////////////////////