diff --git a/Userland/Utilities/js.cpp b/Userland/Utilities/js.cpp index afa44cdfbe..f4a4e04ed2 100644 --- a/Userland/Utilities/js.cpp +++ b/Userland/Utilities/js.cpp @@ -73,6 +73,7 @@ #include #include #include +#include #include #include #include @@ -429,6 +430,13 @@ static void print_weak_set(JS::WeakSet const& weak_set, HashTable&) // Note: We could tell you what's actually inside, but not in insertion order. } +static void print_weak_ref(JS::WeakRef const& weak_ref, HashTable& seen_objects) +{ + print_type("WeakRef"); + js_out(" "); + print_value(weak_ref.value().visit([](Empty) -> JS::Value { return JS::js_undefined(); }, [](auto* value) -> JS::Value { return value; }), seen_objects); +} + static void print_promise(JS::Promise const& promise, HashTable& seen_objects) { print_type("Promise"); @@ -1002,6 +1010,8 @@ static void print_value(JS::Value value, HashTable& seen_objects) return print_weak_map(static_cast(object), seen_objects); if (is(object)) return print_weak_set(static_cast(object), seen_objects); + if (is(object)) + return print_weak_ref(static_cast(object), seen_objects); if (is(object)) return print_data_view(static_cast(object), seen_objects); if (is(object))