Nightly で Function.toString() の挙動が変わった
いつから変わっていたか、分からないけど...。
function sum(){ // 引数を全部足すよ return Array.reduce(arguments, function (result, current) { return result + current; }); } sum(1,2,3,4,5); sum.toString();
下記画像は上記コードを書いた結果である。
旧来(Firefox 10 ESR)では、整形された結果を返してくれていた。
ところが、Nightly では、入力コードそのままを出力しているように見える。コメントや改行位置、インデントまで反映された結果となっている。
別に、どちらが良いというわけではないが、アドオンなどで、Firefox内部の関数を上書きするために、
eval('obj.to.func = ' + obj.to.func.toString().replace(....., "..."));
みたいなことをしている人には注意が必要かも。
個人的には、インデントはともかく、改行位置が反映されているのは歓迎している。デバッグ出力した時、無駄に長く一行に整形されて返ってくることがなくなったから。