push
github
Restore state when recording __concat metamethod throws an error. Thanks to Sergey Kaplun. (cherry picked from commit 7421a1b33) Since neither `rec_cat()` nor `lj_record_ret()` restore the Lua stack, if the error is raised, it leads either to a crash in `BC_RET` or to the "unbalanced stack" assertion failure. This patch protects the `rec_mm_arith()`, which can raise an error. Its caller returns the negated error code to be rethrown in case of the caught error. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#10199
5687 of 6029 branches covered (94.33%)
Branch coverage included in aggregate %.
15 of 16 new or added lines in 1 file covered. (93.75%)
5 existing lines in 2 files now uncovered.21687 of 23445 relevant lines covered (92.5%)
2931044.14 hits per line