Because The string representing the stack trace is lazily generated when the error.stack property is accessed
A small illustration:
function newError() {
var error = new Error('ohhh')
// See the contents of a _stack variable using the Inspector
var _stack = '' + error.stack
}
newError()