mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 08:37:35 +00:00
LibJS: Remove GlobalObject from VM::this_value()
This is a continuation of the previous six commits. The global object is only needed to return it if the execution context stack is empty, but that doesn't seem like a useful thing to allow in the first place - if you're not currently executing JS, and the execution context stack is empty, there is no this value to retrieve.
This commit is contained in:
parent
f3117d46dc
commit
999da617c5
36 changed files with 208 additions and 206 deletions
|
@ -76,7 +76,7 @@ AK::URL LocationObject::url() const
|
|||
static JS::ThrowCompletionOr<LocationObject*> typed_this_value(JS::GlobalObject& global_object)
|
||||
{
|
||||
auto& vm = global_object.vm();
|
||||
auto this_value = vm.this_value(global_object);
|
||||
auto this_value = vm.this_value();
|
||||
if (!this_value.is_object() || !is<LocationObject>(this_value.as_object()))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "Location");
|
||||
return static_cast<LocationObject*>(&this_value.as_object());
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#pragma once
|
||||
|
||||
#define REPLACEABLE_PROPERTY_SETTER(ObjectType, property) \
|
||||
auto this_value = vm.this_value(global_object); \
|
||||
auto this_value = vm.this_value(); \
|
||||
if (!this_value.is_object() || !is<ObjectType>(this_value.as_object())) \
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, #ObjectType); \
|
||||
TRY(this_value.as_object().internal_define_own_property( \
|
||||
|
|
|
@ -180,7 +180,7 @@ static JS::ThrowCompletionOr<HTML::Window*> impl_from(JS::VM& vm, JS::GlobalObje
|
|||
// this_value to a specific object type in the bindings. But since window is
|
||||
// the global object we make an exception here.
|
||||
// This allows calls like `setTimeout(f, 10)` to work.
|
||||
auto this_value = vm.this_value(global_object);
|
||||
auto this_value = vm.this_value();
|
||||
if (this_value.is_nullish())
|
||||
this_value = &global_object;
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ void WebAssemblyInstancePrototype::initialize(JS::Realm& realm)
|
|||
|
||||
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyInstancePrototype::exports_getter)
|
||||
{
|
||||
auto this_value = vm.this_value(global_object);
|
||||
auto this_value = vm.this_value();
|
||||
auto* this_object = TRY(this_value.to_object(global_object));
|
||||
if (!is<WebAssemblyInstanceObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Instance");
|
||||
|
|
|
@ -20,7 +20,7 @@ void WebAssemblyMemoryPrototype::initialize(JS::Realm& realm)
|
|||
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::grow)
|
||||
{
|
||||
auto page_count = TRY(vm.argument(0).to_u32(global_object));
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyMemoryObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Memory");
|
||||
auto* memory_object = static_cast<WebAssemblyMemoryObject*>(this_object);
|
||||
|
@ -40,7 +40,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyMemoryPrototype::buffer_getter)
|
|||
{
|
||||
auto& realm = *global_object.associated_realm();
|
||||
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyMemoryObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Memory");
|
||||
auto* memory_object = static_cast<WebAssemblyMemoryObject*>(this_object);
|
||||
|
|
|
@ -23,7 +23,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::grow)
|
|||
{
|
||||
auto delta = TRY(vm.argument(0).to_u32(global_object));
|
||||
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyTableObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Table");
|
||||
auto* table_object = static_cast<WebAssemblyTableObject*>(this_object);
|
||||
|
@ -53,7 +53,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::get)
|
|||
{
|
||||
auto index = TRY(vm.argument(0).to_u32(global_object));
|
||||
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyTableObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Table");
|
||||
auto* table_object = static_cast<WebAssemblyTableObject*>(this_object);
|
||||
|
@ -77,7 +77,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::set)
|
|||
{
|
||||
auto index = TRY(vm.argument(0).to_u32(global_object));
|
||||
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyTableObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Table");
|
||||
auto* table_object = static_cast<WebAssemblyTableObject*>(this_object);
|
||||
|
@ -105,7 +105,7 @@ JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::set)
|
|||
|
||||
JS_DEFINE_NATIVE_FUNCTION(WebAssemblyTablePrototype::length_getter)
|
||||
{
|
||||
auto* this_object = TRY(vm.this_value(global_object).to_object(global_object));
|
||||
auto* this_object = TRY(vm.this_value().to_object(global_object));
|
||||
if (!is<WebAssemblyTableObject>(this_object))
|
||||
return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WebAssembly.Table");
|
||||
auto* table_object = static_cast<WebAssemblyTableObject*>(this_object);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue