LibJS: Add Object::has_property()

Like Object::has_own_property() but going down the prototype chain.
This commit is contained in:
Linus Groh 2020-04-30 20:03:40 +01:00 committed by Andreas Kling
parent 4cdd802927
commit 62671bea68
Notes: sideshowbarker 2024-07-19 07:08:29 +09:00
2 changed files with 13 additions and 0 deletions

View file

@ -381,6 +381,17 @@ void Object::visit_children(Cell::Visitor& visitor)
visitor.visit(value);
}
bool Object::has_property(const FlyString& property_name) const
{
const Object* object = this;
while (object) {
if (object->has_own_property(property_name))
return true;
object = object->prototype();
}
return false;
}
bool Object::has_own_property(const FlyString& property_name) const
{
bool ok;

View file

@ -96,7 +96,9 @@ public:
void set_prototype(Object*);
bool has_prototype(const Object* prototype) const;
bool has_property(const FlyString& property_name) const;
bool has_own_property(const FlyString& property_name) const;
enum class PreferredType {
Default,
String,