diff options
author | Linus Groh <mail@linusgroh.de> | 2022-08-16 20:33:17 +0100 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-08-23 13:58:30 +0100 |
commit | f3117d46dc872a2d0f57273293b5691777b06279 (patch) | |
tree | d16e8d78bfc9c94e3e6d4188f8a853a148b2b5c8 /Tests/LibJS/test-js.cpp | |
parent | 5398dcc55e1b8279f6b3edf62ad249a27b4f2f64 (diff) | |
download | serenity-f3117d46dc872a2d0f57273293b5691777b06279.zip |
LibJS: Remove GlobalObject from VM::throw_completion()
This is a continuation of the previous five commits.
A first big step into the direction of no longer having to pass a realm
(or currently, a global object) trough layers upon layers of AOs!
Unlike the create() APIs we can safely assume that this is only ever
called when a running execution context and therefore current realm
exists. If not, you can always manually allocate the Error and put it in
a Completion :^)
In the spec, throw exceptions implicitly use the current realm's
intrinsics as well: https://tc39.es/ecma262/#sec-throw-an-exception
Diffstat (limited to 'Tests/LibJS/test-js.cpp')
-rw-r--r-- | Tests/LibJS/test-js.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Tests/LibJS/test-js.cpp b/Tests/LibJS/test-js.cpp index 9dd5ee00b0..ae22bddaf8 100644 --- a/Tests/LibJS/test-js.cpp +++ b/Tests/LibJS/test-js.cpp @@ -35,7 +35,7 @@ TESTJS_GLOBAL_FUNCTION(get_weak_set_size, getWeakSetSize) { auto* object = TRY(vm.argument(0).to_object(global_object)); if (!is<JS::WeakSet>(object)) - return vm.throw_completion<JS::TypeError>(global_object, JS::ErrorType::NotAnObjectOfType, "WeakSet"); + return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WeakSet"); auto* weak_set = static_cast<JS::WeakSet*>(object); return JS::Value(weak_set->values().size()); } @@ -44,7 +44,7 @@ TESTJS_GLOBAL_FUNCTION(get_weak_map_size, getWeakMapSize) { auto* object = TRY(vm.argument(0).to_object(global_object)); if (!is<JS::WeakMap>(object)) - return vm.throw_completion<JS::TypeError>(global_object, JS::ErrorType::NotAnObjectOfType, "WeakMap"); + return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "WeakMap"); auto* weak_map = static_cast<JS::WeakMap*>(object); return JS::Value(weak_map->values().size()); } @@ -53,7 +53,7 @@ TESTJS_GLOBAL_FUNCTION(mark_as_garbage, markAsGarbage) { auto argument = vm.argument(0); if (!argument.is_string()) - return vm.throw_completion<JS::TypeError>(global_object, JS::ErrorType::NotAString, argument.to_string_without_side_effects()); + return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAString, argument.to_string_without_side_effects()); auto& variable_name = argument.as_string(); @@ -62,14 +62,14 @@ TESTJS_GLOBAL_FUNCTION(mark_as_garbage, markAsGarbage) return execution_context->lexical_environment != nullptr; }); if (!outer_environment.has_value()) - return vm.throw_completion<JS::ReferenceError>(global_object, JS::ErrorType::UnknownIdentifier, variable_name.string()); + return vm.throw_completion<JS::ReferenceError>(JS::ErrorType::UnknownIdentifier, variable_name.string()); auto reference = TRY(vm.resolve_binding(variable_name.string(), outer_environment.value()->lexical_environment)); auto value = TRY(reference.get_value(global_object)); if (!can_be_held_weakly(value)) - return vm.throw_completion<JS::TypeError>(global_object, JS::ErrorType::CannotBeHeldWeakly, String::formatted("Variable with name {}", variable_name.string())); + return vm.throw_completion<JS::TypeError>(JS::ErrorType::CannotBeHeldWeakly, String::formatted("Variable with name {}", variable_name.string())); vm.heap().uproot_cell(&value.as_cell()); TRY(reference.delete_(global_object)); @@ -81,7 +81,7 @@ TESTJS_GLOBAL_FUNCTION(detach_array_buffer, detachArrayBuffer) { auto array_buffer = vm.argument(0); if (!array_buffer.is_object() || !is<JS::ArrayBuffer>(array_buffer.as_object())) - return vm.throw_completion<JS::TypeError>(global_object, JS::ErrorType::NotAnObjectOfType, "ArrayBuffer"); + return vm.throw_completion<JS::TypeError>(JS::ErrorType::NotAnObjectOfType, "ArrayBuffer"); auto& array_buffer_object = static_cast<JS::ArrayBuffer&>(array_buffer.as_object()); TRY(JS::detach_array_buffer(global_object, array_buffer_object, vm.argument(1))); |