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
5690 of 6029 branches covered (94.38%)
Branch coverage included in aggregate %.
15 of 16 new or added lines in 1 file covered. (93.75%)
4 existing lines in 3 files now uncovered.21703 of 23445 relevant lines covered (92.57%)
2944774.53 hits per line