original_string: public function joinExtensionSequence($extensions)
      {
          if (!is_array($extensions)) {
              $extensions = iterator_to_array($extensions);
          }
  
          $atoms = $this->nameAtoms();
          if (array('', '') === $atoms) {
              array_pop($atoms);
          }
  
          return $this->replaceName(
              implode(
                  static::EXTENSION_SEPARATOR,
                  array_merge($atoms, $extensions)
              )
          );
      }
code: public function joinExtensionSequence($extensions)
      {
          if (!is_array($extensions)) {
              $extensions = iterator_to_array($extensions);
          }
  
          $atoms = $this->nameAtoms();
          if (array('', '') === $atoms) {
              array_pop($atoms);
          }
  
          return $this->replaceName(
              implode(
                  static::EXTENSION_SEPARATOR,
                  array_merge($atoms, $extensions)
              )
          );
      }
code_tokens: public function joinExtensionSequence ( $ extensions ) { if ( ! is_array ( $ extensions ) ) { $ extensions = iterator_to_array ( $ extensions ) ; } $ atoms = $ this -> nameAtoms ( ) ; if ( array ( '' , '' ) === $ atoms ) { array_pop ( $ atoms ) ; } return $ this -> replaceName ( implode ( static :: EXTENSION_SEPARATOR , array_merge ( $ atoms , $ extensions ) ) ) ; }
docstring: Joins a sequence of extensions to this path.
  
  @param mixed<string> $extensions The extensions to append.
  
  @return PathInterface                               A new path instance with the supplied extensions suffixed to this path.
  @throws Exception\InvalidPathAtomExceptionInterface If the suffixed extensions cause the atom to be invalid.
docstring_tokens: Joins a sequence of extensions to this path .