mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 13:57:35 +00:00
LibJS: Implement Sets using Maps
This implements ordered sets using Maps with a sentinel value, and includes some extra set tests. Fixes #11004. Co-Authored-By: davidot <davidot@serenityos.org>
This commit is contained in:
parent
4a73ec07c5
commit
3bfcd7b52d
8 changed files with 133 additions and 21 deletions
|
@ -15,6 +15,7 @@ Set* Set::create(GlobalObject& global_object)
|
|||
|
||||
Set::Set(Object& prototype)
|
||||
: Object(prototype)
|
||||
, m_values(*prototype.global_object().map_prototype())
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -25,8 +26,7 @@ Set::~Set()
|
|||
void Set::visit_edges(Cell::Visitor& visitor)
|
||||
{
|
||||
Base::visit_edges(visitor);
|
||||
for (auto& value : m_values)
|
||||
visitor.visit(value);
|
||||
static_cast<Object&>(m_values).visit_edges(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue