code: public function getBlockNames(array $context = null, array $blocks = array())
      {
          if (null === $context) {
              @trigger_error('The '.__METHOD__.' method is internal and should never be called; calling it directly is deprecated since version 1.28 and won\'t be possible anymore in 2.0.', E_USER_DEPRECATED);
  
              return array_keys($this->blocks);
          }
  
          $names = array_merge(array_keys($blocks), array_keys($this->blocks));
  
          if (false !== $parent = $this->getParent($context)) {
              $names = array_merge($names, $parent->getBlockNames($context));
          }
  
          return array_unique($names);
      }
docs: Returns all block names in the current context of the template.
  
  This method checks blocks defined in the current template
  or defined in "used" traits or defined in parent templates.
  
  @param array $context The context
  @param array $blocks  The current set of blocks
  
  @return array An array of block names
  
  @internal