LibJS/Tests: Improve valueToString() output

This regressed recently and would only output a bunch of '[object Foo]',
the reason being that String(value) failed in some cases - which is
easily fixed by trying that first and using Object.prototype.toString()
as a fallback in the case of an exception :^)
This commit is contained in:
Linus Groh 2021-06-27 22:17:05 +01:00
commit 63a1275378
Notes: sideshowbarker 2024-07-18 11:25:57 +09:00

View file

@ -51,7 +51,14 @@ class ExpectationError extends Error {
return true;
};
const valueToString = value => Object.prototype.toString.call(value);
const valueToString = value => {
try {
return String(value);
} catch {
// e.g for objects without a prototype, the above throws.
return Object.prototype.toString.call(value);
}
};
class Expector {
constructor(target, inverted) {