var fun1=function(){console.log('hello');}
var fun2=fun1
console.log(fun2);
Приведенный выше код работает в Firefox отпечатков fun2
. В Chrome он печатает тело функции, в Node.js он печатает Function
.Как распечатать функции в Node.js так же, как Firefox печатает функции (а именно, дать имя)?
Почему это различие?
Как я могу получить поведение Firefox в Node.js?
Почему я спрашиваю об этом?
Я спрашиваю об этом, потому что хотел бы отладить JS-код, сгенерированный из Idris, где время выполнения JS использует стек вызовов explicit, и я хотел бы напечатать контент-столбец значимым образом, и Firefox делает это лучше, но я хочу для отладки кода на Node.js, поэтому я хотел бы получить Node.js для печати функций как Firefox, как я могу это сделать?
EDIT:
Типичная скомпилирован функция выглядит следующим образом:
var _idris__123_io_95_bind2_125_ = function(oldbase){
var myoldbase = new i$POINTER();
i$valstack_top += 1;
i$ret = new i$CON(65646,[i$valstack[i$valstack_base],i$valstack[i$valstack_base + 1],i$valstack[i$valstack_base + 2],i$valstack[i$valstack_base + 3],i$valstack[i$valstack_base + 4],i$valstack[i$valstack_base + 5]],_idris__123_APPLY0_125_$65646,null);
i$valstack_top = i$valstack_base;
i$valstack_base = oldbase.addr;
}
Так вот полезная информация является имя переменной _idris__123_io_95_bind2_125_
сам, и это то, что печатается Firefox
, но не node.js
, и в этом проблема, Firfox печатает полезную информацию, node.js
нет.
Вопрос в том, как я могу сделать node.js
для печати _idris__123_io_95_bind2_125_
для вышеуказанной функции?
EDIT 2:
Попытка некоторые предложения не работают, к сожалению:
>cat deb.js
var fun1=function(){console.log('hello');}
var fun2=fun1
console.log(fun2);
console.log(fun2.name);
console.log(fun2.toString());
console.log(fun2+'');
>node deb.js
[Function]
function(){console.log('hello');}
function(){console.log('hello');}
>
Попробуйте 'console.log (fun2 + '');' –