diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-03-07 12:55:38 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-03-07 12:55:38 -0300 |
| commit | 4a1612ff9b968fe446bc4dd20460bfaccabeb3b3 (patch) | |
| tree | aef8f8c476e0814c357ead6248a614fb0ca07eac /lvm.c | |
| parent | 464658b16a1a539fd590e1696bfcfb572a77fe13 (diff) | |
| download | lua-4a1612ff9b968fe446bc4dd20460bfaccabeb3b3.tar.gz lua-4a1612ff9b968fe446bc4dd20460bfaccabeb3b3.tar.bz2 lua-4a1612ff9b968fe446bc4dd20460bfaccabeb3b3.zip | |
new experimental syntax using reserved word 'undef'
Diffstat (limited to 'lvm.c')
| -rw-r--r-- | lvm.c | 14 |
1 files changed, 13 insertions, 1 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lvm.c,v 2.348 2018/02/26 14:16:05 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 2.349 2018/03/02 18:59:19 roberto Exp roberto $ |
| 3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -1552,6 +1552,18 @@ void luaV_execute (lua_State *L, CallInfo *ci) { | |||
| 1552 | } | 1552 | } |
| 1553 | vmbreak; | 1553 | vmbreak; |
| 1554 | } | 1554 | } |
| 1555 | vmcase(OP_UNDEF) { | ||
| 1556 | TValue *rb = vRB(i); | ||
| 1557 | luaT_keydef(L, vra, rb, 1); | ||
| 1558 | vmbreak; | ||
| 1559 | } | ||
| 1560 | vmcase(OP_ISDEF) { | ||
| 1561 | TValue *rb = vRB(i); | ||
| 1562 | TValue *rc = vRC(i); | ||
| 1563 | int res = luaT_keydef(L, rb, rc, 0); | ||
| 1564 | setbvalue(vra, res == GETARG_k(i)); | ||
| 1565 | vmbreak; | ||
| 1566 | } | ||
| 1555 | vmcase(OP_CALL) { | 1567 | vmcase(OP_CALL) { |
| 1556 | int b = GETARG_B(i); | 1568 | int b = GETARG_B(i); |
| 1557 | int nresults = GETARG_C(i) - 1; | 1569 | int nresults = GETARG_C(i) - 1; |
