blob: 5004a7476c2d0beacb84fac4d190605cff73aa4a [file] [log] [blame]
"use strict";
// https://console.spec.whatwg.org/#timing
test(() => {
let timeLabelToStringCalled = false;
console.time({
toString() {
timeLabelToStringCalled = true;
}
});
assert_true(timeLabelToStringCalled, "toString() must be called on time()'s label when label is an object");
}, "console.time()'s label gets converted to string via label.toString() when label is an object");
test(() => {
let timeEndLabelToStringCalled = false;
console.timeEnd({
toString() {
timeEndLabelToStringCalled = true;
}
});
assert_true(timeEndLabelToStringCalled, "toString() must be called on timeEnd()'s label when label is an object");
}, "console.timeEnd()'s label gets converted to string via label.toString() when label is an object");
test(() => {
assert_throws({name: "Error"}, () => {
console.time({
toString() {
throw new Error("conversion error");
}
});
}, "time() must re-throw any exceptions thrown by label.toString() conversion");
}, "console.time() throws exceptions generated by erroneous label.toString() conversion");
test(() => {
assert_throws({name: "Error"}, () => {
console.timeEnd({
toString() {
throw new Error("conversion error");
}
});
}, "timeEnd() must re-throw any exceptions thrown by label.toString() conversion");
}, "console.timeEnd() throws exceptions generated by erroneous label.toString() conversion");