diff options
-rw-r--r-- | src/lj_record.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lj_record.c b/src/lj_record.c index d0cad539..d8cd8962 100644 --- a/src/lj_record.c +++ b/src/lj_record.c | |||
@@ -1237,8 +1237,12 @@ static void LJ_FASTCALL recff_tonumber(jit_State *J, RecordFFData *rd) | |||
1237 | if (!tref_isk(base) || IR(tref_ref(base))->i != 10) | 1237 | if (!tref_isk(base) || IR(tref_ref(base))->i != 10) |
1238 | recff_nyiu(J); | 1238 | recff_nyiu(J); |
1239 | } | 1239 | } |
1240 | if (tref_isstr(tr)) | 1240 | if (tref_isstr(tr)) { |
1241 | TValue tmp; | ||
1242 | if (!lj_str_tonum(strV(&rd->argv[0]), &tmp)) | ||
1243 | recff_nyiu(J); /* Would need an inverted STRTO for this case. */ | ||
1241 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); | 1244 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); |
1245 | } | ||
1242 | } else { | 1246 | } else { |
1243 | tr = TREF_NIL; | 1247 | tr = TREF_NIL; |
1244 | } | 1248 | } |