code: def fillna(self, value):
          
          if utils.is_dict_like(value):
              value_keys = getattr(value, 'data_vars', value).keys()
              if not set(value_keys) <= set(self.data_vars.keys()):
                  raise ValueError('all variables in the argument to `fillna` '
                                   'must be contained in the original dataset')
          out = ops.fillna(self, value)
          return out
docs: Fill missing values in this object.
  
          This operation follows the normal broadcasting and alignment rules that
          xarray uses for binary arithmetic, except the result is aligned to this
          object (``join='left'``) instead of aligned to the intersection of
          index coordinates (``join='inner'``).
  
          Parameters
          ----------
          value : scalar, ndarray, DataArray, dict or Dataset
              Used to fill all matching missing values in this dataset's data
              variables. Scalars, ndarrays or DataArrays arguments are used to
              fill all data with aligned coordinates (for DataArrays).
              Dictionaries or datasets match data variables and then align
              coordinates if necessary.
  
          Returns
          -------
          Dataset