diff options
Diffstat (limited to 'src/njs_async.c')
-rw-r--r-- | src/njs_async.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/njs_async.c b/src/njs_async.c index e018bd8b..380c44b7 100644 --- a/src/njs_async.c +++ b/src/njs_async.c @@ -67,9 +67,6 @@ njs_await_fulfilled(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, ctx = vm->top_frame->function->context; value = njs_arg(args, nargs, 1); - if (njs_is_error(value)) { - goto failed; - } async_frame = ctx->await; async = &async_frame->native; @@ -143,6 +140,7 @@ njs_await_rejected(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, value = njs_arg(args, nargs, 1); if (ctx->await->native.pc == ctx->pc) { + /* No catch block was set before await. */ (void) njs_function_call(vm, njs_function(&ctx->capability->reject), &njs_value_undefined, value, 1, &vm->retval); @@ -151,6 +149,8 @@ njs_await_rejected(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, return NJS_ERROR; } + /* ctx->await->native.pc points to a catch block here. */ + ctx->pc = ctx->await->native.pc; return njs_await_fulfilled(vm, args, nargs, unused); |