summaryrefslogtreecommitdiff
path: root/src/lj_record.c
diff options
context:
space:
mode:
authorMike Pall <mike>2016-04-21 17:00:58 +0200
committerMike Pall <mike>2016-04-21 17:00:58 +0200
commit2f0001fad05731ea3787b27cf9b19e5293c358b8 (patch)
treecbfbb921518399867b24b0d82bf2ccc7fc111bf7 /src/lj_record.c
parentcc4f5d056ab93521451631f28501015f054d8976 (diff)
downloadluajit-2f0001fad05731ea3787b27cf9b19e5293c358b8.tar.gz
luajit-2f0001fad05731ea3787b27cf9b19e5293c358b8.tar.bz2
luajit-2f0001fad05731ea3787b27cf9b19e5293c358b8.zip
Fix handling of non-numeric strings in arithmetic coercions.
Thanks to Vyacheslav Egorov.
Diffstat (limited to 'src/lj_record.c')
-rw-r--r--src/lj_record.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_record.c b/src/lj_record.c
index 9b51c51f..ff7825ee 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1884,14 +1884,14 @@ void lj_record_ins(jit_State *J)
1884 case BC_MODVN: case BC_MODVV: 1884 case BC_MODVN: case BC_MODVV:
1885 recmod: 1885 recmod:
1886 if (tref_isnumber_str(rb) && tref_isnumber_str(rc)) 1886 if (tref_isnumber_str(rb) && tref_isnumber_str(rc))
1887 rc = lj_opt_narrow_mod(J, rb, rc, rcv); 1887 rc = lj_opt_narrow_mod(J, rb, rc, rbv, rcv);
1888 else 1888 else
1889 rc = rec_mm_arith(J, &ix, MM_mod); 1889 rc = rec_mm_arith(J, &ix, MM_mod);
1890 break; 1890 break;
1891 1891
1892 case BC_POW: 1892 case BC_POW:
1893 if (tref_isnumber_str(rb) && tref_isnumber_str(rc)) 1893 if (tref_isnumber_str(rb) && tref_isnumber_str(rc))
1894 rc = lj_opt_narrow_pow(J, lj_ir_tonum(J, rb), rc, rcv); 1894 rc = lj_opt_narrow_pow(J, rb, rc, rbv, rcv);
1895 else 1895 else
1896 rc = rec_mm_arith(J, &ix, MM_pow); 1896 rc = rec_mm_arith(J, &ix, MM_pow);
1897 break; 1897 break;