JSFiddle - React, Tailwind, and code Playground
JavaScript
var createCustomError = (function() {
var testStack = '';
try {
throw new Error();
} catch (e) {
testStack = e.stack;
}
var chrome_re = /^Error\n/;
if (chrome_re.test(testStack)) {
return function(constructor) {
var NewError = function NewError() {
NewError.origCtor.apply(this, arguments);
try {
throw new Error();
} catch (e) {
var stacktrace = e.stack.split('\n');
stacktrace.splice(1, 1);
this.stack = stacktrace.join('\n');
}
};
NewError.origCtor = constructor;
NewError.prototype = new Error();
NewError.prototype.constructor = constructor;
return NewError;
};
}
var firefox_re = /^\(\)@/;
if (firefox_re.test(testStack)) {
return function(constructor) {
var NewError = function NewError() {
NewError.origCtor.apply(this, arguments);
try {
throw new Error();
} catch (e) {
var stacktrace = e.stack.split('\n');
stacktrace.shift();
this.stack = stacktrace.join('\n');
}
};
NewError.origCtor = constructor;
NewError.prototype = new Error();
NewError.prototype.constructor = constructor;
return NewError;
};
}
var NewError = function(constructor) {
var NewError = function NewError() {
NewError.origCtor.apply(this, arguments);
try {
throw new Error();
} catch (e) {
this.stack = e.stack;
}
};
};
NewError.origCtor = constructor;
NewError.prototype = new Error();
NewError.prototype.constructor = constructor;
return NewError;
})();
var CustomError =...