1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

LibJS: Add [[GlobalThisValue]] internal slot to GlobalEnvironment

Instead of hardcoding the environment's global object as the return
value of GlobalEnvironment::global_this_value(), it now stores an Object
reference which is passed to the constructor for this purpose.

From the spec (https://tc39.es/ecma262/#sec-global-environment-records):

[[GlobalThisValue]] | Object | The value returned by this in global
scope. Hosts may provide any ECMAScript Object value.
This commit is contained in:
Linus Groh 2021-09-11 19:58:27 +01:00
parent 2b8d5696ab
commit 1e79934acf
4 changed files with 13 additions and 18 deletions

View file

@ -129,7 +129,7 @@ void GlobalObject::initialize_global_object()
m_object_prototype = heap().allocate_without_global_object<ObjectPrototype>(*this);
m_function_prototype = heap().allocate_without_global_object<FunctionPrototype>(*this);
m_environment = heap().allocate<GlobalEnvironment>(*this, *this);
m_environment = heap().allocate<GlobalEnvironment>(*this, *this, *this);
m_new_object_shape = vm.heap().allocate_without_global_object<Shape>(*this);
m_new_object_shape->set_prototype_without_transition(m_object_prototype);