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

LibJS: Convert PromiseResolvingElementFunction to ThrowCompletionOr

This commit is contained in:
Linus Groh 2022-01-04 22:04:22 +01:00
parent b4208c8ea1
commit 245d486ba4
2 changed files with 13 additions and 13 deletions

View file

@ -58,7 +58,7 @@ PromiseAllResolveElementFunction::PromiseAllResolveElementFunction(size_t index,
{ {
} }
Value PromiseAllResolveElementFunction::resolve_element() ThrowCompletionOr<Value> PromiseAllResolveElementFunction::resolve_element()
{ {
auto& vm = this->vm(); auto& vm = this->vm();
auto& global_object = this->global_object(); auto& global_object = this->global_object();
@ -73,7 +73,7 @@ Value PromiseAllResolveElementFunction::resolve_element()
auto* values_array = Array::create_from(global_object, m_values.values()); auto* values_array = Array::create_from(global_object, m_values.values());
// b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »). // b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »).
return TRY_OR_DISCARD(vm.call(*m_capability.resolve, js_undefined(), values_array)); return vm.call(*m_capability.resolve, js_undefined(), values_array);
} }
// 11. Return undefined. // 11. Return undefined.
@ -90,7 +90,7 @@ PromiseAllSettledResolveElementFunction::PromiseAllSettledResolveElementFunction
{ {
} }
Value PromiseAllSettledResolveElementFunction::resolve_element() ThrowCompletionOr<Value> PromiseAllSettledResolveElementFunction::resolve_element()
{ {
auto& vm = this->vm(); auto& vm = this->vm();
auto& global_object = this->global_object(); auto& global_object = this->global_object();
@ -114,7 +114,7 @@ Value PromiseAllSettledResolveElementFunction::resolve_element()
auto* values_array = Array::create_from(global_object, m_values.values()); auto* values_array = Array::create_from(global_object, m_values.values());
// b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »). // b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »).
return TRY_OR_DISCARD(vm.call(*m_capability.resolve, js_undefined(), values_array)); return vm.call(*m_capability.resolve, js_undefined(), values_array);
} }
// 15. Return undefined. // 15. Return undefined.
@ -131,7 +131,7 @@ PromiseAllSettledRejectElementFunction::PromiseAllSettledRejectElementFunction(s
{ {
} }
Value PromiseAllSettledRejectElementFunction::resolve_element() ThrowCompletionOr<Value> PromiseAllSettledRejectElementFunction::resolve_element()
{ {
auto& vm = this->vm(); auto& vm = this->vm();
auto& global_object = this->global_object(); auto& global_object = this->global_object();
@ -155,7 +155,7 @@ Value PromiseAllSettledRejectElementFunction::resolve_element()
auto values_array = Array::create_from(global_object, m_values.values()); auto values_array = Array::create_from(global_object, m_values.values());
// b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »). // b. Return ? Call(promiseCapability.[[Resolve]], undefined, « valuesArray »).
return TRY_OR_DISCARD(vm.call(*m_capability.resolve, js_undefined(), values_array)); return vm.call(*m_capability.resolve, js_undefined(), values_array);
} }
// 15. Return undefined. // 15. Return undefined.
@ -172,7 +172,7 @@ PromiseAnyRejectElementFunction::PromiseAnyRejectElementFunction(size_t index, P
{ {
} }
Value PromiseAnyRejectElementFunction::resolve_element() ThrowCompletionOr<Value> PromiseAnyRejectElementFunction::resolve_element()
{ {
auto& vm = this->vm(); auto& vm = this->vm();
auto& global_object = this->global_object(); auto& global_object = this->global_object();
@ -191,7 +191,7 @@ Value PromiseAnyRejectElementFunction::resolve_element()
MUST(error->define_property_or_throw(vm.names.errors, { .value = errors_array, .writable = true, .enumerable = false, .configurable = true })); MUST(error->define_property_or_throw(vm.names.errors, { .value = errors_array, .writable = true, .enumerable = false, .configurable = true }));
// c. Return ? Call(promiseCapability.[[Reject]], undefined, « error »). // c. Return ? Call(promiseCapability.[[Reject]], undefined, « error »).
return TRY_OR_DISCARD(vm.call(*m_capability.reject, js_undefined(), error)); return vm.call(*m_capability.reject, js_undefined(), error);
} }
return js_undefined(); return js_undefined();

View file

@ -51,7 +51,7 @@ public:
protected: protected:
explicit PromiseResolvingElementFunction(size_t, PromiseValueList&, PromiseCapability, RemainingElements&, Object& prototype); explicit PromiseResolvingElementFunction(size_t, PromiseValueList&, PromiseCapability, RemainingElements&, Object& prototype);
virtual Value resolve_element() = 0; virtual ThrowCompletionOr<Value> resolve_element() = 0;
size_t m_index { 0 }; size_t m_index { 0 };
PromiseValueList& m_values; PromiseValueList& m_values;
@ -75,7 +75,7 @@ public:
virtual ~PromiseAllResolveElementFunction() override = default; virtual ~PromiseAllResolveElementFunction() override = default;
private: private:
virtual Value resolve_element() override; virtual ThrowCompletionOr<Value> resolve_element() override;
}; };
// 27.2.4.2.2 Promise.allSettled Resolve Element Functions, https://tc39.es/ecma262/#sec-promise.allsettled-resolve-element-functions // 27.2.4.2.2 Promise.allSettled Resolve Element Functions, https://tc39.es/ecma262/#sec-promise.allsettled-resolve-element-functions
@ -89,7 +89,7 @@ public:
virtual ~PromiseAllSettledResolveElementFunction() override = default; virtual ~PromiseAllSettledResolveElementFunction() override = default;
private: private:
virtual Value resolve_element() override; virtual ThrowCompletionOr<Value> resolve_element() override;
}; };
// 27.2.4.2.3 Promise.allSettled Reject Element Functions, https://tc39.es/ecma262/#sec-promise.allsettled-reject-element-functions // 27.2.4.2.3 Promise.allSettled Reject Element Functions, https://tc39.es/ecma262/#sec-promise.allsettled-reject-element-functions
@ -103,7 +103,7 @@ public:
virtual ~PromiseAllSettledRejectElementFunction() override = default; virtual ~PromiseAllSettledRejectElementFunction() override = default;
private: private:
virtual Value resolve_element() override; virtual ThrowCompletionOr<Value> resolve_element() override;
}; };
// 27.2.4.3.2 Promise.any Reject Element Functions, https://tc39.es/ecma262/#sec-promise.any-reject-element-functions // 27.2.4.3.2 Promise.any Reject Element Functions, https://tc39.es/ecma262/#sec-promise.any-reject-element-functions
@ -117,7 +117,7 @@ public:
virtual ~PromiseAnyRejectElementFunction() override = default; virtual ~PromiseAnyRejectElementFunction() override = default;
private: private:
virtual Value resolve_element() override; virtual ThrowCompletionOr<Value> resolve_element() override;
}; };
} }