diff options
Diffstat (limited to 'src/lj_ir.c')
-rw-r--r-- | src/lj_ir.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lj_ir.c b/src/lj_ir.c index 64467758..94fe44b1 100644 --- a/src/lj_ir.c +++ b/src/lj_ir.c | |||
@@ -401,6 +401,18 @@ void lj_ir_kvalue(lua_State *L, TValue *tv, const IRIns *ir) | |||
401 | 401 | ||
402 | /* -- Convert IR operand types -------------------------------------------- */ | 402 | /* -- Convert IR operand types -------------------------------------------- */ |
403 | 403 | ||
404 | /* Convert from string to number. */ | ||
405 | TRef LJ_FASTCALL lj_ir_tonumber(jit_State *J, TRef tr) | ||
406 | { | ||
407 | if (!tref_isnumber(tr)) { | ||
408 | if (tref_isstr(tr)) | ||
409 | tr = emitir(IRTG(IR_STRTO, IRT_NUM), tr, 0); | ||
410 | else | ||
411 | lj_trace_err(J, LJ_TRERR_BADTYPE); | ||
412 | } | ||
413 | return tr; | ||
414 | } | ||
415 | |||
404 | /* Convert from integer or string to number. */ | 416 | /* Convert from integer or string to number. */ |
405 | TRef LJ_FASTCALL lj_ir_tonum(jit_State *J, TRef tr) | 417 | TRef LJ_FASTCALL lj_ir_tonum(jit_State *J, TRef tr) |
406 | { | 418 | { |