48     private $versionStorage;
    66         \Psr\Log\LoggerInterface 
$logger,
    70         \
Magento\Framework\
App\View\Deployment\Version\StorageInterface $versionStorage = 
null    74         $this->assetRepo = $assetRepo;
    76             \
Magento\Framework\
App\View\Deployment\Version\StorageInterface::class
    80             throw new \InvalidArgumentException(
'At least one asset has to be passed for merging.');
    85                 throw new \InvalidArgumentException(
    86                     'Asset has to implement \Magento\Framework\View\Asset\MergeableInterface.'    89             if (!$this->contentType) {
    90                 $this->contentType = $asset->getContentType();
    92                 throw new \InvalidArgumentException(
    93                     "Content type '{$asset->getContentType()}' cannot be merged with '{$this->contentType}'."   107         if (!$this->isInitialized) {
   108             $this->isInitialized = 
true;
   110                 $mergedAsset = $this->createMergedAsset($this->assets);
   111                 $this->mergeStrategy->merge($this->assets, $mergedAsset);
   112                 $this->assets = [$mergedAsset];
   113             } 
catch (\Exception $e) {
   114                 $this->logger->critical($e);
   125     private function createMergedAsset(array 
$assets)
   130             $paths[] = $asset->getPath();
   134         $version = $this->versionStorage->load();
   140         return $this->assetRepo->createArbitrary($filePath, self::getRelativeDir());
   160         return key($this->assets);
   178         reset($this->assets);
   187         return (
bool)
current($this->assets);
   197         return self::CACHE_VIEW_REL . 
'/merged';
 
elseif(isset( $params[ 'redirect_parent']))
 
__construct( $fileName, $sourcePath=null, $area=null, $theme=null, $locale=null, $module=null)