njs_vmcode_try_break(njs_vm_t *vm, njs_value_t *exit_value,
njs_value_t *offset)
{
- exit_value->data.u.number = 1;
+ /* exit_value can contain valid value set by vmcode_try_return. */
+ if (!njs_is_valid(exit_value)) {
+ exit_value->data.u.number = 1;
+ }
return (njs_ret_t) offset;
}
"})(function () {throw 'a'}, 'v')"),
nxt_string("v") },
+ { nxt_string("(function() { try { return ['a'];} finally {} } )()"),
+ nxt_string("a") },
+
{ nxt_string("var o = { valueOf: function() { return '3' } }; --o"),
nxt_string("2") },