--- title: Отладка кода внутри eval slug: Tools/Debugger/How_to/Debug_eval_sources tags: - Отладка translation_of: Tools/Debugger/How_to/Debug_eval_sources original_slug: Tools/Debugger/How_to/Отладка_кода_внутри_eval ---
{{ToolsSidebar}}

Доступно, начиная с Firefox 36.

В Firefox версии 36 или старше доступна отладка кода, выполняемого с помощью eval() или конструктора Function.

Чтобы воспользоваться этой возможностью, используйте директиву //# sourceURL 

var button = document.getElementById("clickme");
button.addEventListener("click", evalFoo, false);

var script = "function foo() {" +
             "  console.log('called foo');" +
             "}" +
             "foo();//# sourceURL=my-foo.js";

function evalFoo() {
  eval(script);
}

Такой код присвоит исполняемому скрипту имя "my-foo.js".

Как только скрипт из строки script будет выполнен, он станет доступен в дебаггере как отдельный источник, а также будет доступен к отладке, как код из любого другого источника. Кроме этого, появится возможность, представить код в удобочитаемом виде:

Это имя также будет использоваться в стеке вызовов функций, доступном в веб-консоли.

Начиная с Firefox 40, оператор debugger; также останавливает дебаггер в безымянных источниках выполнения.