1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:57:44 +00:00

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
parent 844efde54b
commit 63a1275378

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) {