Nouveau dans Firefox 36
Il est à noter qu'uniquement dans Firefox 36, toutes les sources évaluées apparaissent dans le Débogueur, même si vous ne les avez pas nommées avec //# sourceURL. Depuis Firefox 37, seules les sources nommées apparaitront
Depuis Firefox 36, il est possible de déboguer du code JavaScript qui à été évalué dynamiquement, soit en étant passé sous forme de chaine de caractère à la fonction eval()
, soit en étant passé sous forme de chaine caractère au constructeur d'une fonction
.
Pour faire cela, il est nécessaire d'utiliser l'instruction //# sourceURL
pour nommer la source :
var button = document.getElementById("clickme"); button.addEventListener("click", evalFoo, false); var script = "function foo() {" + " console.log('foo a été appelée');" + "}" + "foo();//# sourceURL=mon-foo.js"; function evalFoo() { eval(script); }
Cela nome le script "mon-foo.js".
Une fois que la chaine a été évaluée, le script apparaitra dans le Débogueur comme une source séparée et sera entièrement débogable comme toutes les autres sources. Il sera également possible de l'afficher joliment :
Le nom du script apparaitra également dans la pile d'exécution dans la Console Web.