console = external;
- if (is_handled && console->rejected_promises != NULL) {
- rejected_promise = console->rejected_promises->start;
- length = console->rejected_promises->items;
+ if (is_handled) {
+ if (console->rejected_promises != NULL) {
+ rejected_promise = console->rejected_promises->start;
+ length = console->rejected_promises->items;
- promise_obj = njs_value_ptr(promise);
+ promise_obj = njs_value_ptr(promise);
- for (i = 0; i < length; i++) {
- if (njs_value_ptr(njs_value_arg(&rejected_promise[i].u.njs.promise))
- == promise_obj)
- {
- njs_arr_remove(console->rejected_promises,
- &rejected_promise[i]);
+ for (i = 0; i < length; i++) {
+ if (njs_value_ptr(njs_value_arg(
+ &rejected_promise[i].u.njs.promise))
+ == promise_obj)
+ {
+ njs_arr_remove(console->rejected_promises,
+ &rejected_promise[i]);
- break;
+ break;
+ }
}
}
console = opaque;
- if (is_handled && console->rejected_promises != NULL) {
- rejected_promise = console->rejected_promises->start;
- length = console->rejected_promises->items;
+ if (is_handled) {
+ if (console->rejected_promises != NULL) {
+ rejected_promise = console->rejected_promises->start;
+ length = console->rejected_promises->items;
- promise_obj = JS_VALUE_GET_PTR(promise);
+ promise_obj = JS_VALUE_GET_PTR(promise);
- for (i = 0; i < length; i++) {
- if (JS_VALUE_GET_PTR(rejected_promise[i].u.qjs.promise)
- == promise_obj)
- {
- JS_FreeValue(ctx, rejected_promise[i].u.qjs.promise);
- JS_FreeValue(ctx, rejected_promise[i].u.qjs.message);
- njs_arr_remove(console->rejected_promises,
- &rejected_promise[i]);
+ for (i = 0; i < length; i++) {
+ if (JS_VALUE_GET_PTR(rejected_promise[i].u.qjs.promise)
+ == promise_obj)
+ {
+ JS_FreeValue(ctx, rejected_promise[i].u.qjs.promise);
+ JS_FreeValue(ctx, rejected_promise[i].u.qjs.message);
+ njs_arr_remove(console->rejected_promises,
+ &rejected_promise[i]);
- break;
+ break;
+ }
}
}
ctx = opaque;
- if (is_handled && ctx->rejected_promises != NULL) {
- rejected_promise = ctx->rejected_promises->start;
- length = ctx->rejected_promises->items;
-
- promise_obj = JS_VALUE_GET_PTR(promise);
-
- for (i = 0; i < length; i++) {
- if (JS_VALUE_GET_PTR(ngx_qjs_arg(rejected_promise[i].promise))
- == promise_obj)
- {
- JS_FreeValue(cx, ngx_qjs_arg(rejected_promise[i].promise));
- JS_FreeValue(cx, ngx_qjs_arg(rejected_promise[i].message));
- njs_arr_remove(ctx->rejected_promises, &rejected_promise[i]);
-
- break;
+ if (is_handled) {
+ if (ctx->rejected_promises != NULL) {
+ rejected_promise = ctx->rejected_promises->start;
+ length = ctx->rejected_promises->items;
+
+ promise_obj = JS_VALUE_GET_PTR(promise);
+
+ for (i = 0; i < length; i++) {
+ if (JS_VALUE_GET_PTR(ngx_qjs_arg(rejected_promise[i].promise))
+ == promise_obj)
+ {
+ JS_FreeValue(cx, ngx_qjs_arg(rejected_promise[i].promise));
+ JS_FreeValue(cx, ngx_qjs_arg(rejected_promise[i].message));
+ njs_arr_remove(ctx->rejected_promises,
+ &rejected_promise[i]);
+
+ break;
+ }
}
}
ctx = ngx_external_ctx(vm, njs_vm_external_ptr(vm));
- if (is_handled && ctx->rejected_promises != NULL) {
- rejected_promise = ctx->rejected_promises->start;
- length = ctx->rejected_promises->items;
+ if (is_handled) {
+ if (ctx->rejected_promises != NULL) {
+ rejected_promise = ctx->rejected_promises->start;
+ length = ctx->rejected_promises->items;
- promise_obj = njs_value_ptr(promise);
+ promise_obj = njs_value_ptr(promise);
- for (i = 0; i < length; i++) {
- if (njs_value_ptr(njs_value_arg(&rejected_promise[i].promise))
- == promise_obj)
- {
- njs_arr_remove(ctx->rejected_promises, &rejected_promise[i]);
+ for (i = 0; i < length; i++) {
+ if (njs_value_ptr(njs_value_arg(&rejected_promise[i].promise))
+ == promise_obj)
+ {
+ njs_arr_remove(ctx->rejected_promises,
+ &rejected_promise[i]);
- break;
+ break;
+ }
}
}
set pair [lindex $body $i]
send [lindex $pair 0]
expect [lindex $pair 1]
+ if {[llength $pair] > 2
+ && [regexp [lindex $pair 2] $expect_out(buffer)]} {
+ return -code error "unexpected output: $expect_out(buffer)"
+ }
}
send "\n"
"42\r\n"}
}
+njs_test {
+ {"var rejected = Promise.reject('handled later')\r\n"
+ "unhandled promise rejection: handled later\r\n*>> "}
+ {"rejected.catch(() => {})\r\n"
+ ">> " "unhandled promise rejection"}
+}
+
# CLI OPTIONS
# help