mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-31 22:56:04 +00:00
LibJS: Prepare ExecutionContext to store the current Realm Record
Also add VM::current_realm() to retrieve it, similar to all the other getters (running_execution_context() et al.).
This commit is contained in:
parent
15c33477e4
commit
332946ab4f
Notes:
sideshowbarker
2024-07-18 04:11:09 +09:00
Author: https://github.com/linusg
Commit: 332946ab4f
Pull-request: https://github.com/SerenityOS/serenity/pull/9980
Reviewed-by: https://github.com/awesomekling ✅
1 changed files with 7 additions and 0 deletions
|
@ -42,6 +42,7 @@ struct ScopeFrame {
|
|||
bool pushed_environment { false };
|
||||
};
|
||||
|
||||
// 9.4 Execution Contexts, https://tc39.es/ecma262/#sec-execution-contexts
|
||||
struct ExecutionContext {
|
||||
explicit ExecutionContext(Heap& heap)
|
||||
: arguments(heap)
|
||||
|
@ -56,6 +57,7 @@ struct ExecutionContext {
|
|||
Object* arguments_object { nullptr };
|
||||
Environment* lexical_environment { nullptr };
|
||||
Environment* variable_environment { nullptr };
|
||||
Realm* realm { nullptr };
|
||||
bool is_strict_mode { false };
|
||||
};
|
||||
|
||||
|
@ -146,6 +148,11 @@ public:
|
|||
Environment const* variable_environment() const { return running_execution_context().variable_environment; }
|
||||
Environment* variable_environment() { return running_execution_context().variable_environment; }
|
||||
|
||||
// https://tc39.es/ecma262/#current-realm
|
||||
// The value of the Realm component of the running execution context is also called the current Realm Record.
|
||||
Realm const* current_realm() const { return running_execution_context().realm; }
|
||||
Realm* current_realm() { return running_execution_context().realm; }
|
||||
|
||||
bool in_strict_mode() const;
|
||||
|
||||
template<typename Callback>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue