1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 11:37:44 +00:00

LibJS: Remove unnecessary GlobalObject& member on global environment

We already store the GlobalObject& in a base class, so no need to also
store it in the subclass. :^)
This commit is contained in:
Andreas Kling 2021-06-26 10:34:55 +02:00
parent 6d7d8f3db9
commit 0f9038b732
2 changed files with 3 additions and 6 deletions

View file

@ -14,7 +14,6 @@ namespace JS {
GlobalEnvironmentRecord::GlobalEnvironmentRecord(GlobalObject& global_object) GlobalEnvironmentRecord::GlobalEnvironmentRecord(GlobalObject& global_object)
: EnvironmentRecord(nullptr) : EnvironmentRecord(nullptr)
, m_global_object(global_object)
{ {
m_object_record = global_object.heap().allocate<ObjectEnvironmentRecord>(global_object, global_object, ObjectEnvironmentRecord::IsWithEnvironment::No, nullptr); m_object_record = global_object.heap().allocate<ObjectEnvironmentRecord>(global_object, global_object, ObjectEnvironmentRecord::IsWithEnvironment::No, nullptr);
m_declarative_record = global_object.heap().allocate<DeclarativeEnvironmentRecord>(global_object); m_declarative_record = global_object.heap().allocate<DeclarativeEnvironmentRecord>(global_object);
@ -47,12 +46,12 @@ bool GlobalEnvironmentRecord::delete_from_environment_record(FlyString const& na
Value GlobalEnvironmentRecord::get_this_binding(GlobalObject&) const Value GlobalEnvironmentRecord::get_this_binding(GlobalObject&) const
{ {
return &m_global_object; return &global_object();
} }
Value GlobalEnvironmentRecord::global_this_value() const Value GlobalEnvironmentRecord::global_this_value() const
{ {
return &m_global_object; return &global_object();
} }
// 9.1.1.4.1 HasBinding ( N ), https://tc39.es/ecma262/#sec-global-environment-records-hasbinding-n // 9.1.1.4.1 HasBinding ( N ), https://tc39.es/ecma262/#sec-global-environment-records-hasbinding-n
@ -144,7 +143,7 @@ bool GlobalEnvironmentRecord::has_lexical_declaration(FlyString const& name) con
// 9.1.1.4.14 HasRestrictedGlobalProperty ( N ), https://tc39.es/ecma262/#sec-hasrestrictedglobalproperty // 9.1.1.4.14 HasRestrictedGlobalProperty ( N ), https://tc39.es/ecma262/#sec-hasrestrictedglobalproperty
bool GlobalEnvironmentRecord::has_restricted_global_property(FlyString const& name) const bool GlobalEnvironmentRecord::has_restricted_global_property(FlyString const& name) const
{ {
auto existing_prop = m_global_object.get_own_property_descriptor(name); auto existing_prop = m_object_record->object().get_own_property_descriptor(name);
if (!existing_prop.has_value() || existing_prop.value().value.is_undefined()) if (!existing_prop.has_value() || existing_prop.value().value.is_undefined())
return false; return false;
if (existing_prop.value().attributes.is_configurable()) if (existing_prop.value().attributes.is_configurable())

View file

@ -50,8 +50,6 @@ private:
virtual bool is_global_environment_record() const override { return true; } virtual bool is_global_environment_record() const override { return true; }
virtual void visit_edges(Visitor&) override; virtual void visit_edges(Visitor&) override;
GlobalObject& m_global_object;
ObjectEnvironmentRecord* m_object_record { nullptr }; ObjectEnvironmentRecord* m_object_record { nullptr };
DeclarativeEnvironmentRecord* m_declarative_record { nullptr }; DeclarativeEnvironmentRecord* m_declarative_record { nullptr };