Устранение неполадок при отладке скриптов содержимого в расширении chrome с использованием require.js

Для загрузки модулей в скриптах содержимого я использую следующий код (источникhttp://prezi.com/rodnyr5awftr/requirejs-in-chrome-extensions/):

require.load = function (context, moduleName, url) {
    var xhr;
    xhr = new XMLHttpRequest();
    xhr.open("GET", chrome.extension.getURL(url) + '?r=' + new Date().getTime(), true);
    xhr.onreadystatechange = function (e) {
        if (xhr.readyState === 4 && xhr.status === 200) {
            eval(xhr.responseText);
            context.completeLoad(moduleName)
        }
    };
    xhr.send(null);
};

Проблема возникает при отладке через консоль Chrome. Всякий раз, когда возникает ошибка в одном из моих модулей, он просто сообщает об ошибке, произошедшей в анонимной функции, но не сообщает мне, в каком модуле require.js или строке в этом модуле произошла ошибка, но вместо этого всегда указывает на строку eval в вышеуказанный скрипт.

Так как многие люди используют различные варианты приведенного выше кода при использовании require.js с расширениями chrome, должен быть простой способ получить больше информации в консоли отладки, я просто не знаю, что это такое :).

Спасибо за вашу помощь!!

ОБНОВЛЕНИЕ 4/1: Изменение оператора eval (), приведенного выше, на использование Function (), похоже, решило проблему, заключающуюся в том, что консоль chrome добавляет информацию о дополнении. (кредит на эту работу идет к этомувопрос).

Я понимаю, что две функции не являются полностью взаимозаменяемыми (см.этот вопрос). Если кто-нибудь знает о каких-либо подводных камнях при использовании Function () вместо eval () в приведенном выше коде, пожалуйста, дайте мне знать !!

Ответы на вопрос(1)

Ваш ответ на вопрос