The following code has a new callstack when the debugger fires in d (jsfiddle here)
function c() {
setTimeout( d, 1000 );
}
function d() {
debugger;
}
c();
If we modify the code to use setTimeout( d(), 1000 );
which has brackets (parenthesis:)
function c() {
setTimeout( d(), 1000 );
}
function d() {
debugger;
}
c();
then the callstack has both c() and d() (jsfiddle here). Why?