diff --git a/src/lib_base.c b/src/lib_base.c index 162bbbb2..98ed3d60 100644 --- a/src/lib_base.c +++ b/src/lib_base.c @@ -504,7 +504,8 @@ LJLIB_CF(print) lua_gettable(L, LUA_GLOBALSINDEX); tv = L->top-1; } - shortcut = (tvisfunc(tv) && funcV(tv)->c.ffid == FF_tostring); + shortcut = (tvisfunc(tv) && funcV(tv)->c.ffid == FF_tostring) + && !gcrefu(basemt_it(G(L), LJ_TNUMX)); for (i = 0; i < nargs; i++) { const char *str; size_t size;