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

LibJS: Convert the PromiseResolve AO to ThrowCompletionOr

This commit is contained in:
Idan Horowitz 2021-10-23 03:44:07 +03:00 committed by Andreas Kling
parent 0d602c5ec5
commit 81bdb20c61
4 changed files with 8 additions and 12 deletions

View file

@ -19,16 +19,16 @@
namespace JS {
// 27.2.4.7.1 PromiseResolve ( C, x ), https://tc39.es/ecma262/#sec-promise-resolve
Object* promise_resolve(GlobalObject& global_object, Object& constructor, Value value)
ThrowCompletionOr<Object*> promise_resolve(GlobalObject& global_object, Object& constructor, Value value)
{
auto& vm = global_object.vm();
if (value.is_object() && is<Promise>(value.as_object())) {
auto value_constructor = TRY_OR_DISCARD(value.as_object().get(vm.names.constructor));
auto value_constructor = TRY(value.as_object().get(vm.names.constructor));
if (same_value(value_constructor, &constructor))
return &static_cast<Promise&>(value.as_object());
}
auto promise_capability = TRY_OR_DISCARD(new_promise_capability(global_object, &constructor));
[[maybe_unused]] auto result = TRY_OR_DISCARD(vm.call(*promise_capability.resolve, js_undefined(), value));
auto promise_capability = TRY(new_promise_capability(global_object, &constructor));
(void)TRY(vm.call(*promise_capability.resolve, js_undefined(), value));
return promise_capability.promise;
}