ret = njs_value_property(vm, value, njs_value_arg(&string_constructor),
dst);
- if (njs_slow_path(ret != NJS_OK)) {
+ if (njs_slow_path(ret == NJS_ERROR)) {
return ret;
}
ret = njs_value_property(vm, promise_ctor, njs_value_arg(&string_resolve),
&resolve);
- if (njs_slow_path(ret != NJS_OK)) {
+ if (njs_slow_path(ret == NJS_ERROR)) {
return ret;
}
ret = njs_value_property(vm, promise_ctor, njs_value_arg(&string_resolve),
&resolve);
- if (njs_slow_path(ret != NJS_OK)) {
+ if (njs_slow_path(ret == NJS_ERROR)) {
return ret;
}
{ njs_str("$r.retval(Promise.all([async () => [await x('X')]]))"),
njs_str("[object Promise]") },
+ { njs_str("var r = [1].map(v => {"
+ " function C(a) {"
+ " a(a, parseInt);"
+ " };"
+ ""
+ " Promise.all.apply(C);"
+ "});"
+ "r[0]"),
+ /* TODO: RejectAbrupt() exception should not percolate */
+ njs_str("TypeError: resolve is not callable") },
+
+ { njs_str("var r = [1].map(v => {"
+ " function C(a) {"
+ " a(a, parseInt);"
+ " };"
+ ""
+ " Promise.race.apply(C);"
+ "});"
+ "r[0]"),
+ /* TODO: RejectAbrupt() exception should not percolate */
+ njs_str("TypeError: resolve is not callable") },
+
{ njs_str("let obj = { a: 1, b: 2};"
"function cb(r) { r.retval(obj.a); }"
"$r.subrequest($r)"