diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-10-17 10:44:42 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2018-10-17 10:44:42 -0300 |
commit | bd96330d037660d9a1769c6c0d989f017e5f0278 (patch) | |
tree | c3f4580c628a71f512b057b7f52987153cb88d74 /lparser.c | |
parent | 4cd1f4aac01184765818e0cebf02da454ccf6590 (diff) | |
download | lua-bd96330d037660d9a1769c6c0d989f017e5f0278.tar.gz lua-bd96330d037660d9a1769c6c0d989f017e5f0278.tar.bz2 lua-bd96330d037660d9a1769c6c0d989f017e5f0278.zip |
First "complete" implementation of to-be-closed variables
Still missing:
- handling of memory errors when creating upvalue (must run closing
method all the same)
- interaction with coroutines
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1536,9 +1536,9 @@ static void scopedlocalstat (LexState *ls) { | |||
1536 | FuncState *fs = ls->fs; | 1536 | FuncState *fs = ls->fs; |
1537 | new_localvar(ls, str_checkname(ls)); | 1537 | new_localvar(ls, str_checkname(ls)); |
1538 | checknext(ls, '='); | 1538 | checknext(ls, '='); |
1539 | exp1(ls, 0); | ||
1539 | luaK_codeABC(fs, OP_TBC, fs->nactvar, 0, 0); | 1540 | luaK_codeABC(fs, OP_TBC, fs->nactvar, 0, 0); |
1540 | markupval(fs, fs->nactvar); | 1541 | markupval(fs, fs->nactvar); |
1541 | exp1(ls, 0); | ||
1542 | adjustlocalvars(ls, 1); | 1542 | adjustlocalvars(ls, 1); |
1543 | } | 1543 | } |
1544 | 1544 | ||