| 272 | |
| 273 | |
| 274 | static int lessequal (lua_State *L, const TValue *l, const TValue *r) { |
| 275 | int res; |
| 276 | if ((res = udatacompare(L, l, r, TM_LE)) != -1) |
| 277 | return res; |
| 278 | if ((res = udatacompare(L, r, l, TM_LT)) != -1) |
| 279 | return !res; |
| 280 | if (ttype(l) != ttype(r)) |
| 281 | return luaG_ordererror(L, l, r); |
| 282 | else if (ttisnumber(l)) |
| 283 | return luai_numle(nvalue(l), nvalue(r)); |
| 284 | else if (ttisstring(l)) |
| 285 | return l_strcmp(rawtsvalue(l), rawtsvalue(r)) <= 0; |
| 286 | else if ((res = call_orderTM(L, l, r, TM_LE)) != -1) /* first try `le' */ |
| 287 | return res; |
| 288 | else if ((res = call_orderTM(L, r, l, TM_LT)) != -1) /* else try `lt' */ |
| 289 | return !res; |
| 290 | return luaG_ordererror(L, l, r); |
| 291 | } |
| 292 | |
| 293 | |
| 294 | int luaV_equalval (lua_State *L, const TValue *t1, const TValue *t2) { |
no test coverage detected