1
Fork 0
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:
Ali Mohammad Pur 2022-02-09 18:34:16 +03:30 committed by Linus Groh
parent 4a73ec07c5
commit 3bfcd7b52d
8 changed files with 133 additions and 21 deletions

View file

@ -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);
}
}