--- 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 ---
Доступно, начиная с 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;
также останавливает дебаггер в безымянных источниках выполнения.