push
github
Fix recording of __concat metamethod. Thanks to Sergey Kaplun. (cherry picked from commit bcc5125a9) `lj_record_ret()` uses `J->L->base` as a base for recording concatenation with remaining operands, even if there is a vararg frame or pcall frame (so it uses the wrong Lua stack slots from a frame above). This leads to the corresponding assertion failure in the `lj_record_mm_lookup()`. This patch adds the calculation of the base adjusment necessary for correct frame usage. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#9595 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Reviewed-by: Maxim Kokryashkin <m.kokryashkin@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org>
5661 of 6017 branches covered (94.08%)
Branch coverage included in aggregate %.
5 of 5 new or added lines in 1 file covered. (100.0%)
20 existing lines in 4 files now uncovered.21610 of 23414 relevant lines covered (92.3%)
2821718.01 hits per line