From 80170887dba94d3c5d1299c192727ee47fe78170 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 2 Jul 2021 00:14:38 +0200 Subject: [PATCH] LibJS: Make Environment::put_into_environment() return a success bool This code is non-conforming and will eventually get cleaned out once we implement proper variable bindings. However, this will aid us in improving other parts of the code right now. --- Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp | 3 ++- Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h | 2 +- Userland/Libraries/LibJS/Runtime/Environment.h | 2 +- Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp | 4 ++-- Userland/Libraries/LibJS/Runtime/GlobalEnvironment.h | 2 +- Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp | 4 ++-- Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp index b200e775be..e192b56713 100644 --- a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp @@ -47,9 +47,10 @@ Optional DeclarativeEnvironment::get_from_environment(FlyString const& return m_variables.get(name); } -void DeclarativeEnvironment::put_into_environment(FlyString const& name, Variable variable) +bool DeclarativeEnvironment::put_into_environment(FlyString const& name, Variable variable) { m_variables.set(name, variable); + return true; } bool DeclarativeEnvironment::delete_from_environment(FlyString const& name) diff --git a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h index e4434346e7..ebd1ad1252 100644 --- a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h @@ -24,7 +24,7 @@ public: // ^Environment virtual Optional get_from_environment(FlyString const&) const override; - virtual void put_into_environment(FlyString const&, Variable) override; + virtual bool put_into_environment(FlyString const&, Variable) override; virtual bool delete_from_environment(FlyString const&) override; HashMap const& variables() const { return m_variables; } diff --git a/Userland/Libraries/LibJS/Runtime/Environment.h b/Userland/Libraries/LibJS/Runtime/Environment.h index 0ed71f8965..265d54fc6b 100644 --- a/Userland/Libraries/LibJS/Runtime/Environment.h +++ b/Userland/Libraries/LibJS/Runtime/Environment.h @@ -28,7 +28,7 @@ public: virtual void initialize(GlobalObject&) override; virtual Optional get_from_environment(FlyString const&) const = 0; - virtual void put_into_environment(FlyString const&, Variable) = 0; + virtual bool put_into_environment(FlyString const&, Variable) = 0; virtual bool delete_from_environment(FlyString const&) = 0; virtual bool has_this_binding() const { return false; } diff --git a/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp index 4cc7577557..2e4a5c5393 100644 --- a/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.cpp @@ -32,10 +32,10 @@ Optional GlobalEnvironment::get_from_environment(FlyString const& name return m_object_record->get_from_environment(name); } -void GlobalEnvironment::put_into_environment(FlyString const& name, Variable variable) +bool GlobalEnvironment::put_into_environment(FlyString const& name, Variable variable) { // FIXME: This should be a "composite" of the object record and the declarative record. - m_object_record->put_into_environment(name, variable); + return m_object_record->put_into_environment(name, variable); } bool GlobalEnvironment::delete_from_environment(FlyString const& name) diff --git a/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.h b/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.h index 6876d811d1..1b3d983a07 100644 --- a/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/GlobalEnvironment.h @@ -17,7 +17,7 @@ public: explicit GlobalEnvironment(GlobalObject&); virtual Optional get_from_environment(FlyString const&) const override; - virtual void put_into_environment(FlyString const&, Variable) override; + virtual bool put_into_environment(FlyString const&, Variable) override; virtual bool delete_from_environment(FlyString const&) override; virtual bool has_this_binding() const final { return true; } virtual Value get_this_binding(GlobalObject&) const final; diff --git a/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp index a2006cb190..7e02959898 100644 --- a/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.cpp @@ -31,9 +31,9 @@ Optional ObjectEnvironment::get_from_environment(FlyString const& name return Variable { value, DeclarationKind::Var }; } -void ObjectEnvironment::put_into_environment(FlyString const& name, Variable variable) +bool ObjectEnvironment::put_into_environment(FlyString const& name, Variable variable) { - m_binding_object.put(name, variable.value); + return m_binding_object.put(name, variable.value); } bool ObjectEnvironment::delete_from_environment(FlyString const& name) diff --git a/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h b/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h index 46d4aa2dcf..e1cebee4c0 100644 --- a/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/ObjectEnvironment.h @@ -21,7 +21,7 @@ public: ObjectEnvironment(Object& binding_object, IsWithEnvironment, Environment* outer_environment); virtual Optional get_from_environment(FlyString const&) const override; - virtual void put_into_environment(FlyString const&, Variable) override; + virtual bool put_into_environment(FlyString const&, Variable) override; virtual bool delete_from_environment(FlyString const&) override; virtual bool has_binding(FlyString const& name) const override;