Carduelis
@Carduelis
Web-developer, front-end, js, less

Illegal invocation вылезает у некоторых пользователей стабильно, как дебажить?

Ошибка IllegalInvocation вылезает на 371 строке Backbone.js при попытке сделать reset() коллекции.
Самое смешное, что проблема вылезает на 2-3 компьютерах. Там стоит такой же хром, все нормально (подключался по TeamViewer), а ошибка есть.
Ошибка вылезает на методе call() или apply() вот здесь: backbonejs.org/docs/backbone.html#section-48
case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;

Поймать ошибку у себя мы не можем.
Вопроса два:
1. Как вообще такое может быть, когда у кого-то работает, а у кого-то нет при том, что версия Хрома у них последняя, да и пробовали они разные браузеры.
2. Как дебажить такое? И как ловить, тем более, когда проблема в итоге в библиотеке?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Как вообще такое может быть, когда у кого-то работает, а у кого-то нет
Помимо кода есть ещё данные, которые у всех разные и браузерные расширения, которые вообще адский ад. Один и тот же код может прекрасно работать с одними данными и падать на других. Простой пример - функция деления двух чисел, в которую в качестве делителя передали 0.

Как дебажить такое?
Дебагером.

И как ловить
Ответ на этот вопрос зависит от того, что вы узнаете в процессе отладки. От причины ошибки, проще говоря.

проблема в итоге в библиотеке?
Библиотеку вызывает ваш код и с вероятностью 99% проблема именно в нём. То, что "ошибка вылезает" на уровне Backbone, вовсе не значит, что она там же и зарождается. Этой библиотеке много лет, она используется на тысячах проектов и если бы там был какой-то серьёзный баг, его бы уже, скорее всего, отловили.
The First Rule of Programming: It's Always Your Fault
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы