25 lines
673 B
JavaScript
25 lines
673 B
JavaScript
var inherits = require('util').inherits;
|
|
|
|
function trimStack(stack, num) {
|
|
return stack && stack.split('\n').slice(num).join('\n');
|
|
}
|
|
|
|
function IllegalOperationError(msg, stack) {
|
|
var tmp = new Error();
|
|
this.message = msg;
|
|
this.stack = this.toString() + '\n' + trimStack(tmp.stack, 2);
|
|
this.stackAtStateChange = stack;
|
|
}
|
|
inherits(IllegalOperationError, Error);
|
|
|
|
IllegalOperationError.prototype.name = 'IllegalOperationError';
|
|
|
|
function stackCapture(reason) {
|
|
var e = new Error();
|
|
return 'Stack capture: ' + reason + '\n' +
|
|
trimStack(e.stack, 2);
|
|
}
|
|
|
|
module.exports.IllegalOperationError = IllegalOperationError;
|
|
module.exports.stackCapture = stackCapture;
|