mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 06:17:35 +00:00
LibJS: Call [[Reject]] in PromiseResolveThenableJob after abrupt then()
This commit is contained in:
parent
194d90dc72
commit
878668efc9
1 changed files with 3 additions and 4 deletions
|
@ -138,16 +138,15 @@ ThrowCompletionOr<Value> PromiseResolveThenableJob::call()
|
||||||
|
|
||||||
// c. If thenCallResult is an abrupt completion, then
|
// c. If thenCallResult is an abrupt completion, then
|
||||||
if (then_call_result.is_error()) {
|
if (then_call_result.is_error()) {
|
||||||
auto error = then_call_result.throw_completion().value();
|
|
||||||
vm.clear_exception();
|
vm.clear_exception();
|
||||||
vm.stop_unwind();
|
vm.stop_unwind();
|
||||||
|
|
||||||
// i. Let status be Call(resolvingFunctions.[[Reject]], undefined, « thenCallResult.[[Value]] »).
|
// i. Let status be Call(resolvingFunctions.[[Reject]], undefined, « thenCallResult.[[Value]] »).
|
||||||
// FIXME: Actually do this... not sure why we don't? :yakfused:
|
dbgln_if(PROMISE_DEBUG, "[PromiseResolveThenableJob @ {}]: then_call_result is an abrupt completion, calling reject function with value {}", this, then_call_result.throw_completion().value());
|
||||||
|
auto status = JS::call(global_object, &reject_function, js_undefined(), then_call_result.throw_completion().value());
|
||||||
|
|
||||||
// ii. Return Completion(status).
|
// ii. Return Completion(status).
|
||||||
dbgln_if(PROMISE_DEBUG, "[PromiseResolveThenableJob @ {}]: An exception was thrown, returning error {}", this, error);
|
return status;
|
||||||
return error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// d. Return Completion(thenCallResult).
|
// d. Return Completion(thenCallResult).
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue