diff options
author | Mike Pall <mike> | 2012-09-24 17:33:32 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-09-24 17:33:32 +0200 |
commit | ca0bb4881f17838c9d84f0df310aa1d44da9298d (patch) | |
tree | 6429dabaa8674839701050ab7655833675a54b0d /src/lib_base.c | |
parent | 4c7c2c831992c836cbdfd0bbad1dcc26fbd007cc (diff) | |
download | luajit-ca0bb4881f17838c9d84f0df310aa1d44da9298d.tar.gz luajit-ca0bb4881f17838c9d84f0df310aa1d44da9298d.tar.bz2 luajit-ca0bb4881f17838c9d84f0df310aa1d44da9298d.zip |
From Lua 5.2: Add rawlen(). Needs -DLUAJIT_ENABLE_LUA52COMPAT.
Diffstat (limited to 'src/lib_base.c')
-rw-r--r-- | src/lib_base.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib_base.c b/src/lib_base.c index d63c9803..6f664eb6 100644 --- a/src/lib_base.c +++ b/src/lib_base.c | |||
@@ -199,6 +199,20 @@ LJLIB_CF(rawequal) LJLIB_REC(.) | |||
199 | return 1; | 199 | return 1; |
200 | } | 200 | } |
201 | 201 | ||
202 | #if LJ_52 | ||
203 | LJLIB_CF(rawlen) LJLIB_REC(.) | ||
204 | { | ||
205 | cTValue *o = L->base; | ||
206 | int32_t len; | ||
207 | if (L->top > o && tvisstr(o)) | ||
208 | len = (int32_t)strV(o)->len; | ||
209 | else | ||
210 | len = (int32_t)lj_tab_len(lj_lib_checktab(L, 1)); | ||
211 | setintV(L->top-1, len); | ||
212 | return 1; | ||
213 | } | ||
214 | #endif | ||
215 | |||
202 | LJLIB_CF(unpack) | 216 | LJLIB_CF(unpack) |
203 | { | 217 | { |
204 | GCtab *t = lj_lib_checktab(L, 1); | 218 | GCtab *t = lj_lib_checktab(L, 1); |