aboutsummaryrefslogtreecommitdiff
path: root/src/lj_ffrecord.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_ffrecord.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_ffrecord.c')
-rw-r--r--src/lj_ffrecord.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c
index c258aee1..99d54233 100644
--- a/src/lj_ffrecord.c
+++ b/src/lj_ffrecord.c
@@ -539,10 +539,8 @@ static void LJ_FASTCALL recff_math_degrad(jit_State *J, RecordFFData *rd)
539 539
540static void LJ_FASTCALL recff_math_pow(jit_State *J, RecordFFData *rd) 540static void LJ_FASTCALL recff_math_pow(jit_State *J, RecordFFData *rd)
541{ 541{
542 TRef tr = lj_ir_tonum(J, J->base[0]); 542 J->base[0] = lj_opt_narrow_pow(J, J->base[0], J->base[1],
543 if (!tref_isnumber_str(J->base[1])) 543 &rd->argv[0], &rd->argv[1]);
544 lj_trace_err(J, LJ_TRERR_BADTYPE);
545 J->base[0] = lj_opt_narrow_pow(J, tr, J->base[1], &rd->argv[1]);
546 UNUSED(rd); 544 UNUSED(rd);
547} 545}
548 546