Форум → Ошибка в работе менеджера задачь в IE8

В IE8 стабильно возникает ошибка при добавлении новой задачи в менеджере задач. 

 

Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
штамп времени: Thu, 24 Oct 2013 14:17:07 UTC


Сообщение: 'undefined' - есть null или не является объектом
Строка: 246
Символ: 6
Код: 0
URI-код: http://storage/gzip.php?type=sys&version=2b44c5313df6066563f71986feb33b5f&lang=ru&tt=default

Ошибка возникает в файле modules/sys/js/brick.js в этой функции:

isLoadDep: function(){
			var rq = this.component.requires;
			var mods = rq.mod || [];
			for (var i=0;i<mods.length;i++){
				var mod = mods[i];
				var files = mod.files || [];
				for (var ii=0;ii<files.length;ii++){
[ii]) == 'string'){
					var ccName = files[ii].replace(/\.js$/, '');
					if (!Brick.componentExists(mod.name, ccName)){
						// Brick.console('ops: '+this.mName+':'+this.cName+'=>'+mod.name+':'+ ccName);
					}else if (!Brick.componentRegistered(mod.name, ccName)){
						// Brick.console('Нехватает: '+this.mName+':'+this.cName+'=>'+mod.name+':'+ ccName);
						return false;
					}
				}
			}
			return true;
		},

 В массиве 

files
в этот момент находиться 3 элемента:

[0] «lib.js» String

[1] «roles.js» String

length 3 Number

Судя по всему валиться на 3 элементе пытаясь выполнить 

var ccName = files[ii].replace(/\.js$/, ''); с числом.

Я привел код к такому виду:

isLoadDep: function(){
			var rq = this.component.requires;
			var mods = rq.mod || [];
			for (var i=0;i<mods.length;i++){
				var mod = mods[i];
				var files = mod.files || [];
				for (var ii=0;ii<files.length;ii++){
					if (typeof (files[ii]) == 'string'){
					var ccName = files[ii].replace(/\.js$/, '');
					if (!Brick.componentExists(mod.name, ccName)){
						// Brick.console('ops: '+this.mName+':'+this.cName+'=>'+mod.name+':'+ ccName);
					}else if (!Brick.componentRegistered(mod.name, ccName)){
						// Brick.console('Нехватает: '+this.mName+':'+this.cName+'=>'+mod.name+':'+ ccName);
						return false;
					}
					}
				}
			}
			return true;
		},

и всё вроде бы стало работать нормально.

Можно попросить внести это исправление в будущие релизы, или если я исправил не очень грамотно, внести более рациональное исправление? :)

 

Открыто
Martyr
24 Октября 2013, 18:29
255 roosit:

Да, обязательно внесу. 

Спасибо.