Forráskód Böngészése

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 :^)
Linus Groh 4 éve
szülő
commit
63a1275378
1 módosított fájl, 8 hozzáadás és 1 törlés
  1. 8 1
      Userland/Libraries/LibJS/Tests/test-common.js

+ 8 - 1
Userland/Libraries/LibJS/Tests/test-common.js

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