function Miss () { return new Error("My stack trace is wrong"); } function Hit () { var err = new Error("My stack trace is right"); Error.captureStackTrace(err, Hit); return err; } function errDeeply (Err) { (function fn1 () { (function fn2 () { (function fn3 () { console.log(new Err().stack) })() })() }()) } errDeeply(Miss): errDeeply(Hit);