diff options
author | Luke Wilde <lukew@serenityos.org> | 2022-12-11 18:16:15 +0000 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-12-12 13:58:32 +0000 |
commit | 40cc38869e713513a4391b74e02b7318eb584baa (patch) | |
tree | d9e846a1703df0bd491da3433f4819ce1db1fc7c /Userland/Libraries/LibJS/Runtime | |
parent | 4311c2164e60e2765e1f50e065c627d678635f3d (diff) | |
download | serenity-40cc38869e713513a4391b74e02b7318eb584baa.zip |
LibJS: Move ExecutionContext function implementations out of line
Diffstat (limited to 'Userland/Libraries/LibJS/Runtime')
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/ExecutionContext.cpp | 41 | ||||
-rw-r--r-- | Userland/Libraries/LibJS/Runtime/ExecutionContext.h | 29 |
2 files changed, 45 insertions, 25 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/ExecutionContext.cpp b/Userland/Libraries/LibJS/Runtime/ExecutionContext.cpp new file mode 100644 index 0000000000..51a3ff21df --- /dev/null +++ b/Userland/Libraries/LibJS/Runtime/ExecutionContext.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org> + * Copyright (c) 2020-2021, Linus Groh <linusg@serenityos.org> + * Copyright (c) 2022, Luke Wilde <lukew@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include <LibJS/Runtime/ExecutionContext.h> + +namespace JS { + +ExecutionContext::ExecutionContext(Heap& heap) + : arguments(heap) +{ +} + +ExecutionContext::ExecutionContext(MarkedVector<Value> existing_arguments) + : arguments(move(existing_arguments)) +{ +} + +ExecutionContext ExecutionContext::copy() const +{ + ExecutionContext copy { arguments }; + + copy.function = function; + copy.realm = realm; + copy.script_or_module = script_or_module; + copy.lexical_environment = lexical_environment; + copy.variable_environment = variable_environment; + copy.private_environment = private_environment; + copy.current_node = current_node; + copy.function_name = function_name; + copy.this_value = this_value; + copy.is_strict_mode = is_strict_mode; + + return copy; +} + +} diff --git a/Userland/Libraries/LibJS/Runtime/ExecutionContext.h b/Userland/Libraries/LibJS/Runtime/ExecutionContext.h index cae575bdd1..3ac2f88521 100644 --- a/Userland/Libraries/LibJS/Runtime/ExecutionContext.h +++ b/Userland/Libraries/LibJS/Runtime/ExecutionContext.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2020-2021, Andreas Kling <kling@serenityos.org> * Copyright (c) 2020-2021, Linus Groh <linusg@serenityos.org> + * Copyright (c) 2022, Luke Wilde <lukew@serenityos.org> * * SPDX-License-Identifier: BSD-2-Clause */ @@ -21,34 +22,12 @@ using ScriptOrModule = Variant<Empty, NonnullGCPtr<Script>, NonnullGCPtr<Module> // 9.4 Execution Contexts, https://tc39.es/ecma262/#sec-execution-contexts struct ExecutionContext { - explicit ExecutionContext(Heap& heap) - : arguments(heap) - { - } + explicit ExecutionContext(Heap& heap); - [[nodiscard]] ExecutionContext copy() const - { - ExecutionContext copy { arguments }; - - copy.function = function; - copy.realm = realm; - copy.script_or_module = script_or_module; - copy.lexical_environment = lexical_environment; - copy.variable_environment = variable_environment; - copy.private_environment = private_environment; - copy.current_node = current_node; - copy.function_name = function_name; - copy.this_value = this_value; - copy.is_strict_mode = is_strict_mode; - - return copy; - } + [[nodiscard]] ExecutionContext copy() const; private: - explicit ExecutionContext(MarkedVector<Value> existing_arguments) - : arguments(move(existing_arguments)) - { - } + explicit ExecutionContext(MarkedVector<Value> existing_arguments); public: FunctionObject* function { nullptr }; // [[Function]] |