// YAML error class. stackoverflow.com/questions/8458984 // 'use strict';

function YAMLException(reason, mark) {

// Super constructor
Error.call(this);

this.name = 'YAMLException';
this.reason = reason;
this.mark = mark;
this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');

// Include stack trace in error object
if (Error.captureStackTrace) {
  // Chrome and NodeJS
  Error.captureStackTrace(this, this.constructor);
} else {
  // FF, IE 10+ and Safari 6+. Fallback for others
  this.stack = (new Error()).stack || '';
}

}

// Inherit from Error YAMLException.prototype = Object.create(Error.prototype); YAMLException.prototype.constructor = YAMLException;

YAMLException.prototype.toString = function toString(compact) {

var result = this.name + ': ';

result += this.reason || '(unknown reason)';

if (!compact && this.mark) {
  result += ' ' + this.mark.toString();
}

return result;

};

module.exports = YAMLException;