summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2021-10-29 01:04:26 +0300
committerIdan Horowitz <idan.horowitz@gmail.com>2021-10-29 21:29:24 +0300
commit84681788c4b70527a2dfc75cbd11a72b2fe1cacb (patch)
treeef9009dd2ee6c66f50a9e9fed510c9ac16f6dcb3 /Userland/Libraries/LibJS
parent909e13c5e61b2cad1147dc3b737a7b14005f3c48 (diff)
downloadserenity-84681788c4b70527a2dfc75cbd11a72b2fe1cacb.zip
LibJS: Convert FinalizationRegistryPrototype funcs to ThrowCompletionOr
Diffstat (limited to 'Userland/Libraries/LibJS')
-rw-r--r--Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp48
-rw-r--r--Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.h6
2 files changed, 22 insertions, 32 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
index 4937e297bd..2a610d5c9e 100644
--- a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.cpp
@@ -20,9 +20,9 @@ void FinalizationRegistryPrototype::initialize(GlobalObject& global_object)
Object::initialize(global_object);
u8 attr = Attribute::Writable | Attribute::Configurable;
- define_old_native_function(vm.names.cleanupSome, cleanup_some, 0, attr);
- define_old_native_function(vm.names.register_, register_, 2, attr);
- define_old_native_function(vm.names.unregister, unregister, 1, attr);
+ define_native_function(vm.names.cleanupSome, cleanup_some, 0, attr);
+ define_native_function(vm.names.register_, register_, 2, attr);
+ define_native_function(vm.names.unregister, unregister, 1, attr);
// 26.2.3.4 FinalizationRegistry.prototype [ @@toStringTag ], https://tc39.es/ecma262/#sec-finalization-registry.prototype-@@tostringtag
define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(global_object.heap(), vm.names.FinalizationRegistry.as_string()), Attribute::Configurable);
@@ -33,15 +33,13 @@ FinalizationRegistryPrototype::~FinalizationRegistryPrototype()
}
// @STAGE 2@ FinalizationRegistry.prototype.cleanupSome ( [ callback ] ), https://github.com/tc39/proposal-cleanup-some/blob/master/spec/finalization-registry.html
-JS_DEFINE_OLD_NATIVE_FUNCTION(FinalizationRegistryPrototype::cleanup_some)
+JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::cleanup_some)
{
- auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
+ auto* finalization_registry = TRY(typed_this_object(global_object));
auto callback = vm.argument(0);
- if (vm.argument_count() > 0 && !callback.is_function()) {
- vm.throw_exception<TypeError>(global_object, ErrorType::NotAFunction, callback.to_string_without_side_effects());
- return {};
- }
+ if (vm.argument_count() > 0 && !callback.is_function())
+ return vm.throw_completion<TypeError>(global_object, ErrorType::NotAFunction, callback.to_string_without_side_effects());
finalization_registry->cleanup(callback.is_undefined() ? nullptr : &callback.as_function());
@@ -49,27 +47,21 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(FinalizationRegistryPrototype::cleanup_some)
}
// 26.2.3.2 FinalizationRegistry.prototype.register ( target, heldValue [ , unregisterToken ] ), https://tc39.es/ecma262/#sec-finalization-registry.prototype.register
-JS_DEFINE_OLD_NATIVE_FUNCTION(FinalizationRegistryPrototype::register_)
+JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::register_)
{
- auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
+ auto* finalization_registry = TRY(typed_this_object(global_object));
auto target = vm.argument(0);
- if (!target.is_object()) {
- vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObject, target.to_string_without_side_effects());
- return {};
- }
+ if (!target.is_object())
+ return vm.throw_completion<TypeError>(global_object, ErrorType::NotAnObject, target.to_string_without_side_effects());
auto held_value = vm.argument(1);
- if (same_value(target, held_value)) {
- vm.throw_exception<TypeError>(global_object, ErrorType::FinalizationRegistrySameTargetAndValue);
- return {};
- }
+ if (same_value(target, held_value))
+ return vm.throw_completion<TypeError>(global_object, ErrorType::FinalizationRegistrySameTargetAndValue);
auto unregister_token = vm.argument(2);
- if (!unregister_token.is_object() && !unregister_token.is_undefined()) {
- vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObject, unregister_token.to_string_without_side_effects());
- return {};
- }
+ if (!unregister_token.is_object() && !unregister_token.is_undefined())
+ return vm.throw_completion<TypeError>(global_object, ErrorType::NotAnObject, unregister_token.to_string_without_side_effects());
finalization_registry->add_finalization_record(target.as_cell(), held_value, unregister_token.is_undefined() ? nullptr : &unregister_token.as_object());
@@ -77,15 +69,13 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(FinalizationRegistryPrototype::register_)
}
// 26.2.3.3 FinalizationRegistry.prototype.unregister ( unregisterToken ), https://tc39.es/ecma262/#sec-finalization-registry.prototype.unregister
-JS_DEFINE_OLD_NATIVE_FUNCTION(FinalizationRegistryPrototype::unregister)
+JS_DEFINE_NATIVE_FUNCTION(FinalizationRegistryPrototype::unregister)
{
- auto* finalization_registry = TRY_OR_DISCARD(typed_this_object(global_object));
+ auto* finalization_registry = TRY(typed_this_object(global_object));
auto unregister_token = vm.argument(0);
- if (!unregister_token.is_object()) {
- vm.throw_exception<TypeError>(global_object, ErrorType::NotAnObject, unregister_token.to_string_without_side_effects());
- return {};
- }
+ if (!unregister_token.is_object())
+ return vm.throw_completion<TypeError>(global_object, ErrorType::NotAnObject, unregister_token.to_string_without_side_effects());
return Value(finalization_registry->remove_by_token(unregister_token.as_object()));
}
diff --git a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.h b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.h
index 5bd31a0aed..f78f782645 100644
--- a/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.h
+++ b/Userland/Libraries/LibJS/Runtime/FinalizationRegistryPrototype.h
@@ -20,9 +20,9 @@ public:
virtual ~FinalizationRegistryPrototype() override;
private:
- JS_DECLARE_OLD_NATIVE_FUNCTION(cleanup_some);
- JS_DECLARE_OLD_NATIVE_FUNCTION(register_);
- JS_DECLARE_OLD_NATIVE_FUNCTION(unregister);
+ JS_DECLARE_NATIVE_FUNCTION(cleanup_some);
+ JS_DECLARE_NATIVE_FUNCTION(register_);
+ JS_DECLARE_NATIVE_FUNCTION(unregister);
};
}