diff --git a/lib/validations.js b/lib/validations.js index a12a8127..aba9c276 100644 --- a/lib/validations.js +++ b/lib/validations.js @@ -703,11 +703,21 @@ function ValidationError(obj) { messages: obj.errors }; - Error.captureStackTrace(this, this.constructor); + if (Error.captureStackTrace) { + // V8 (Chrome, Opera, Node) + Error.captureStackTrace(this, this.constructor); + } else if (errorHasStackProperty) { + // Firefox + this.stack = (new Error).stack; + } + // Safari and PhantomJS initializes `error.stack` on throw + // Internet Explorer does not support `error.stack` } util.inherits(ValidationError, Error); +var errorHasStackProperty = !!(new Error).stack; + function formatErrors(errors) { var DELIM = '; '; errors = errors || {};