JS Stack Trace
JavaScript
var trace = (function(){
function load() {
var prevTrace = window.localStorage.getItem('stackTrace');
if (!prevTrace) {
console.log("No previous trace recorded");
return;
}
}
function trace() {
var now = (new Date()).toUTCString(),
stack = [],
cur = trace;
for (var key in cur.caller) {
console.log(key);
if (cur.caller.hasOwnProperty(key))
console.log(key, cur.caller[key]);
}
while(cur = cur.caller) {
stack.push(cur.name + '()');
}
stack.reverse();
var stackTrace = stack.join(' > ');
console.log(stackTrace);
}
window.addEventListener("load", load, false);
return {
'trace': trace
};
})();
function hi() {
(function bad(){trace.trace();})();
}
hi();