diff options
Diffstat (limited to '')
-rw-r--r-- | testes/goto.lua | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/testes/goto.lua b/testes/goto.lua index 85038d02..92f048fb 100644 --- a/testes/goto.lua +++ b/testes/goto.lua | |||
@@ -249,6 +249,22 @@ assert(testG(2) == "2") | |||
249 | assert(testG(3) == "3") | 249 | assert(testG(3) == "3") |
250 | assert(testG(4) == 5) | 250 | assert(testG(4) == 5) |
251 | assert(testG(5) == 10) | 251 | assert(testG(5) == 10) |
252 | |||
253 | do | ||
254 | -- if x back goto out of scope of upvalue | ||
255 | local X | ||
256 | goto L1 | ||
257 | |||
258 | ::L2:: goto L3 | ||
259 | |||
260 | ::L1:: do | ||
261 | local scoped a = function () X = true end | ||
262 | assert(X == nil) | ||
263 | if a then goto L2 end -- jumping back out of scope of 'a' | ||
264 | end | ||
265 | |||
266 | ::L3:: assert(X == true) -- checks that 'a' was correctly closed | ||
267 | end | ||
252 | -------------------------------------------------------------------------------- | 268 | -------------------------------------------------------------------------------- |
253 | 269 | ||
254 | 270 | ||