| "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"); |