1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 15:07:45 +00:00

LibJS: Fix redundancy-detection when printing raw values

Note that this does not change cycle-detection.

This is also was an unnecessary copy, since there is an easier, less
memory-intense way to do cycle detection than copying the entire
visited_set all the time.
This commit is contained in:
Ben Wiederhake 2023-06-06 23:34:59 +02:00 committed by Andreas Kling
parent 72756f09f4
commit a9b3aaa887
2 changed files with 4 additions and 3 deletions

View file

@ -32,7 +32,8 @@ ErrorOr<String> MarkupGenerator::html_from_source(StringView source)
ErrorOr<String> MarkupGenerator::html_from_value(Value value) ErrorOr<String> MarkupGenerator::html_from_value(Value value)
{ {
StringBuilder output_html; StringBuilder output_html;
TRY(value_to_html(value, output_html)); HashTable<Object*> seen_objects;
TRY(value_to_html(value, output_html, seen_objects));
return output_html.to_string(); return output_html.to_string();
} }
@ -43,7 +44,7 @@ ErrorOr<String> MarkupGenerator::html_from_error(Error const& object, bool in_pr
return output_html.to_string(); return output_html.to_string();
} }
ErrorOr<void> MarkupGenerator::value_to_html(Value value, StringBuilder& output_html, HashTable<Object*> seen_objects) ErrorOr<void> MarkupGenerator::value_to_html(Value value, StringBuilder& output_html, HashTable<Object*>& seen_objects)
{ {
if (value.is_empty()) { if (value.is_empty()) {
TRY(output_html.try_append("&lt;empty&gt;"sv)); TRY(output_html.try_append("&lt;empty&gt;"sv));

View file

@ -33,7 +33,7 @@ private:
ObjectType, ObjectType,
}; };
static ErrorOr<void> value_to_html(Value, StringBuilder& output_html, HashTable<Object*> seen_objects = {}); static ErrorOr<void> value_to_html(Value, StringBuilder& output_html, HashTable<Object*>& seen_objects);
static ErrorOr<void> array_to_html(Array const&, StringBuilder& output_html, HashTable<Object*>&); static ErrorOr<void> array_to_html(Array const&, StringBuilder& output_html, HashTable<Object*>&);
static ErrorOr<void> object_to_html(Object const&, StringBuilder& output_html, HashTable<Object*>&); static ErrorOr<void> object_to_html(Object const&, StringBuilder& output_html, HashTable<Object*>&);
static ErrorOr<void> function_to_html(Object const&, StringBuilder& output_html, HashTable<Object*>&); static ErrorOr<void> function_to_html(Object const&, StringBuilder& output_html, HashTable<Object*>&);