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> (cherry picked from commit 4a20956f8)
5659 of 6017 branches covered (94.05%)
Branch coverage included in aggregate %.
5 of 5 new or added lines in 1 file covered. (100.0%)
19 existing lines in 5 files now uncovered.21599 of 23414 relevant lines covered (92.25%)
2832261.98 hits per line