Клуб API Карт

mode=debug и mode=release, в чем отличие?

Пост в архиве.

Прочитав документацию, знаю что релиз - используется для уменьшения траффика и нагрузки, т.к. данные приходят запакованными. Суть вопроса такова, отладил код с модом debug, когда убираю его, консоль выдает ошибку

ReferenceError: e is not defined

 
 YaMaps.prototype.cities = function(class_name)
{
  var self = this;
  $('.'+class_name).click(function(){
    var city = $(this).attr('id').match(/\w+-([\-А-я]+)/)[1];
    self.create_baloon_city(city);
  });
}
//------------------Открываем балун для выбранного города--------------------------------------------------------------------------//
YaMaps.prototype.create_baloon_city = function(city)
{
  var self = this;
  var mark;
  for(var i in this.data.dealers)
  {
    if( this.data.dealers[i].filials && this.data.dealers[i].filials.length )
    {
      for(var j = 0; j < this.data.dealers[i].filials.length; j++)
      {
        if( this.data.dealers[i].filials[j].city.find(city) )
        {
          this.create_content(this.data.dealers[i], j);
          if( !mark )
          {
            for(var k in this.data.markers)
            {
              if( this.data.cluster_markers[k].dealer == i && this.data.cluster_markers[k].filial == j )
              {
                mark = this.data.cluster_markers[k];
                break;
              }
            }
          }
        }
      }
    }
  }
   if(mark)
  {
    this.map.balloon.close();
    var geoObjectState = myCluster.getObjectState(mark);
    if(geoObjectState.isShown)
    {
      this.map.setCenter(mark.geometry._position);
      window.scrollBy(0, -9999);
      if(geoObjectState.isClustered)
      {
        
        geoObjectState.cluster.balloon.open();
      }
      else
      {
        geoObjectState.isShown.obj.balloon.open();
      }
    }
  }
}
 

3 комментария

По ходу дела это происходит в связи с тем что я пытаюсь закрыть на карте balloon, который итак закрыт, вот только ума не приложу почему в debug моде не ругается. Хотя может быть я нерпав, т.к. с JS не сильно знаком. В обещм буду очень признателен, если вы поможете мне красиво обработать данный exception

Попробовал изменить код вот так

 if(this.map.balloon.isOpen())
      this.map.balloon.close()
    var geoObjectState = myCluster.getObjectState(mark);
    if(geoObjectState.isShown)
    {
      this.map.setCenter(mark.geometry._position);
      window.scrollBy(0, -9999);
      if(geoObjectState.isClustered)
      {
        geoObjectState.cluster.balloon.open();
      }
      else
      {
        geoObjectState.isShown.obj.balloon.open();
      }

ошибка осталась, видимо проблема не в закрытии балуна.

Вы используете непубличное поле mark.geometry._position. В режиме debug оно видно, а вот в режиме release оно обфусцируется и меняет название. Отсюда и ошибка.