mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 08:57:47 +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
|
||||
if (then_call_result.is_error()) {
|
||||
auto error = then_call_result.throw_completion().value();
|
||||
vm.clear_exception();
|
||||
vm.stop_unwind();
|
||||
|
||||
// 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).
|
||||
dbgln_if(PROMISE_DEBUG, "[PromiseResolveThenableJob @ {}]: An exception was thrown, returning error {}", this, error);
|
||||
return error;
|
||||
return status;
|
||||
}
|
||||
|
||||
// d. Return Completion(thenCallResult).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue