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

LibJS: Convert to_object() to ThrowCompletionOr

This commit is contained in:
Linus Groh 2021-10-12 19:24:57 +01:00
parent 9eb065a1f6
commit 52976bfac6
45 changed files with 239 additions and 490 deletions

View file

@ -277,9 +277,7 @@ Value PromiseConstructor::construct(FunctionObject& new_target)
// 27.2.4.1 Promise.all ( iterable ), https://tc39.es/ecma262/#sec-promise.all
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::all)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto promise_capability = new_promise_capability(global_object, constructor);
if (vm.exception())
@ -308,9 +306,7 @@ JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::all)
// 27.2.4.2 Promise.allSettled ( iterable ), https://tc39.es/ecma262/#sec-promise.allsettled
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::all_settled)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto promise_capability = new_promise_capability(global_object, constructor);
if (vm.exception())
@ -339,9 +335,7 @@ JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::all_settled)
// 27.2.4.3 Promise.any ( iterable ), https://tc39.es/ecma262/#sec-promise.any
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::any)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto promise_capability = new_promise_capability(global_object, constructor);
if (vm.exception())
@ -370,9 +364,7 @@ JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::any)
// 27.2.4.5 Promise.race ( iterable ), https://tc39.es/ecma262/#sec-promise.race
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::race)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto promise_capability = new_promise_capability(global_object, constructor);
if (vm.exception())
@ -401,9 +393,7 @@ JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::race)
// 27.2.4.6 Promise.reject ( r ), https://tc39.es/ecma262/#sec-promise.reject
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::reject)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto promise_capability = new_promise_capability(global_object, constructor);
if (vm.exception())
return {};
@ -415,9 +405,7 @@ JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::reject)
// 27.2.4.7 Promise.resolve ( x ), https://tc39.es/ecma262/#sec-promise.resolve
JS_DEFINE_NATIVE_FUNCTION(PromiseConstructor::resolve)
{
auto* constructor = vm.this_value(global_object).to_object(global_object);
if (!constructor)
return {};
auto* constructor = TRY_OR_DISCARD(vm.this_value(global_object).to_object(global_object));
auto value = vm.argument(0);
return promise_resolve(global_object, *constructor, value);
}