diff --git a/lib/assert.js b/lib/assert.js index a2afdcfb0..078efe39c 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -38,16 +38,14 @@ var assert = module.exports = ok; // expected: expected }) assert.AssertionError = function AssertionError(options) { - this.name = 'AssertionError'; this.message = options.message; this.actual = options.actual; this.expected = options.expected; this.operator = options.operator; var stackStartFunction = options.stackStartFunction || fail; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, stackStartFunction); - } + this.name = getName(this, options.message); + Error.captureStackTrace(this, stackStartFunction); }; // assert.AssertionError instanceof Error @@ -74,18 +72,16 @@ function truncate(s, n) { } } -assert.AssertionError.prototype.toString = function() { - if (this.message) { - return [this.name + ':', this.message].join(' '); +function getName(self, message) { + if (message) { + return 'AssertionError: ' + message; } else { - return [ - this.name + ':', - truncate(JSON.stringify(this.actual, replacer), 128), - this.operator, - truncate(JSON.stringify(this.expected, replacer), 128) - ].join(' '); + return 'AssertionError: ' + + truncate(JSON.stringify(self.actual, replacer), 128) + ' ' + + self.operator + ' ' + + truncate(JSON.stringify(self.expected, replacer), 128); } -}; +} // At present only the three keys mentioned above are used and // understood by the spec. Implementations or sub modules can pass