Просмотр исходного кода

js: Pretty-print custom error types

Idan Horowitz 3 лет назад
Родитель
Сommit
15fafdc645
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      Userland/Utilities/js.cpp

+ 7 - 0
Userland/Utilities/js.cpp

@@ -742,6 +742,13 @@ static void print_value(JS::Value value, HashTable<JS::Object*>& seen_objects)
             return print_date(object, seen_objects);
             return print_date(object, seen_objects);
         if (is<JS::Error>(object))
         if (is<JS::Error>(object))
             return print_error(object, seen_objects);
             return print_error(object, seen_objects);
+
+        auto prototype_or_error = object.internal_get_prototype_of();
+        if (prototype_or_error.has_value() && prototype_or_error.value() == object.global_object().error_prototype())
+            return print_error(object, seen_objects);
+        vm->clear_exception();
+        vm->stop_unwind();
+
         if (is<JS::RegExpObject>(object))
         if (is<JS::RegExpObject>(object))
             return print_regexp_object(object, seen_objects);
             return print_regexp_object(object, seen_objects);
         if (is<JS::Map>(object))
         if (is<JS::Map>(object))