среда, 5 сентября 2018 г.
Stacktrace function - Custom stack trace in JavaScript
function stacktrace () {
var stacktraceData = getStacktraceData(arguments.callee.caller);
function getStacktraceData (functionThatCalledThisStacktraceFunction) {
if (functionThatCalledThisStacktraceFunction) {
return (
getStacktraceData(functionThatCalledThisStacktraceFunction.caller)
+ functionThatCalledThisStacktraceFunction.toString().split('(')[0].substring(9) // Function name
+ '('
+ Array.prototype.slice.call(functionThatCalledThisStacktraceFunction.arguments).join(', ') // Function arguments
+ ')'
+ '\n'
);
} else {
return '';
}
}
return stacktraceData;
}
main();
function main () {
var x = execute();
var y = add(2, 3);
}
function execute () {
calc();
}
function calc () {
return add(8, 11) + add(9, 14);
}
function add (x, y) {
console.log(stacktrace());
return x + y;
}
Подписаться на:
Сообщения (Atom)