Если ошибка находится в этой строке:
messageObject[tag] = tag_str;
Тогда я знаю только два способа, которые могут вызвать ошибку:
messageObject
isне объект, для которого вы можете установить свойства (null
или undefined
- наиболее вероятные варианты) tag
равен нулю или не определен
Поскольку яОбратите внимание, что ваш код вызывает эту функцию сотни раз, так что вы не можете просто использовать ее, я бы посоветовал вам применить некоторый защитный код для проверки этих условий и вывести что-то на консоль отладки, чтобы определить, в каком состоянии это происходит, когдапроблема возникает.Вы даже можете вызвать условную точку останова с помощью кода, подобного следующему:
if (!messageObject || !tag) {
debugger;
}
В самых сложных случаях вы можете поместить обработчик исключения вокруг него и прерывать при возникновении исключения:
try {
messageObject[tag] = tag_str;
} catch(e) {
debugger;
}
Оба из них позволят вам записать условие в отладчике и проверить все ваши параметры во время ошибки.