JSFiddle - React, Tailwind, and code Playground

JavaScript

var oldTimeout = window.setTimeout;
window.setTimeout = function(callback, delay){
    if(callback.name == 'Trace'){
        oldTimeout.apply(this,[function(){
            try{
                callback.apply(this,arguments);
            }
            catch(e){                
                e.message += ' ('+e.stack.split('\n').map(function(e){return '['+e.replace(location.href,'plain_script').replace('@',' in ')+']'}).join(' < ')+')';
                throw e;
            }
        }].concat(Array.prototype.slice.call(arguments,1,arguments.length)));
    }
    else{oldTimeout.apply(this,arguments)};
}

function foo(x) { 
    /* some statements */ 
    bar(); 
} 

function bar() { throw new Error("oooh damn!"); }

setTimeout(function() { foo(); }, 20);
setTimeout(function Trace() { foo(); }, 10);