blob: 7b722561a00c5669d282fc4a5dec702efbea6ae7 [file] [log] [blame] [edit]
//@ requireOptions("--useExplicitResourceManagement=1")
function shouldBe(a, b) {
if (a !== b)
throw new Error(`Expected ${b} but got ${a}`);
}
shouldBe(SuppressedError.prototype.constructor, SuppressedError);
shouldBe(SuppressedError.prototype.message, "");
shouldBe(SuppressedError.prototype.name, "SuppressedError");
{
class OurSuppressedError extends SuppressedError {
constructor(...args) {
super(...args);
}
}
const e1 = new OurSuppressedError();
shouldBe(e1 instanceof Error, true);
shouldBe(e1 instanceof SuppressedError, true);
}
{
let toStringCallCount = 0;
const obj = {
toString() {
toStringCallCount++;
return "this is error message";
}
};
const e1 = new SuppressedError(undefined, undefined, obj);
shouldBe(toStringCallCount, 1);
shouldBe(e1.message, "this is error message");
const e2 = SuppressedError(undefined, undefined, obj);
shouldBe(toStringCallCount, 2);
shouldBe(e2.message, "this is error message");
}
{
const error = {};
const suppressed = {};
const message = "message";
const e1 = new SuppressedError(error, suppressed, message);
shouldBe(e1.error, error);
shouldBe(e1.suppressed, suppressed);
shouldBe(e1.message, message);
const e2 = SuppressedError(error, suppressed, message);
shouldBe(e2.error, error);
shouldBe(e2.suppressed, suppressed);
shouldBe(e2.message, message);
}