{
// Plain-old Error object
let error = new Error("foobar" );
let report = createErrorReport(error);
assertEq(report.toStringResult, "Error: foobar" );
assertEq(report.name, "Error" );
assertEq(report.message, "foobar" );
}
{
// Error object with overwritten properties
let error = new Error("foobar" );
error.name = "MyError" ;
error.message = "here" ;
let report = createErrorReport(error);
assertEq(report.toStringResult, "MyError: here" );
assertEq(report.name, "Error" );
assertEq(report.message, "here" );
}
{
// Plain object, which doesn't quack (enough) like an Error
let obj = {name: "foo" , message: "bar" };
let report = createErrorReport(obj);
assertEq(report.toStringResult, "uncaught exception: [object Object]" );
assertEq(report.name, "" );
assertEq(report.message, "uncaught exception: [object Object]" );
}
{
// Duck-typed error object
let obj = {name: "foo" , message: "bar" , fileName: "test" , lineNumber: 0};
let report = createErrorReport(obj);
assertEq(report.toStringResult, "foo: bar" );
assertEq(report.name, "" );
assertEq(report.message, "foo: bar" );
}
{
// toString failure
let obj = {toString() { throw "haha" ; }};
let report = createErrorReport(obj);
assertEq(report.toStringResult, "uncaught exception: unknown (can't convert to string)" );
assertEq(report.name, "" );
assertEq(report.message, "uncaught exception: unknown (can't convert to string)" );
}
Messung V0.5 C=91 H=100 G=95
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland