aboutsummaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
Diffstat (limited to 'testes')
-rw-r--r--testes/code.lua19
-rw-r--r--testes/goto.lua3
2 files changed, 8 insertions, 14 deletions
diff --git a/testes/code.lua b/testes/code.lua
index ad484485..9b3f2b68 100644
--- a/testes/code.lua
+++ b/testes/code.lua
@@ -297,7 +297,7 @@ check(function ()
297 b[a], a = c, b 297 b[a], a = c, b
298 a, b = c, a 298 a, b = c, a
299 a = a 299 a = a
300end, 300end,
301 'LOADNIL', 301 'LOADNIL',
302 'MOVE', 'MOVE', 'SETTABLE', 302 'MOVE', 'MOVE', 'SETTABLE',
303 'MOVE', 'MOVE', 'MOVE', 'SETTABLE', 303 'MOVE', 'MOVE', 'MOVE', 'SETTABLE',
@@ -329,18 +329,13 @@ checkequal(function (l) local a; return 0 <= a and a <= l end,
329 function (l) local a; return not (not(a >= 0) or not(a <= l)) end) 329 function (l) local a; return not (not(a >= 0) or not(a <= l)) end)
330 330
331 331
332-- if-goto optimizations 332-- if-break optimizations
333check(function (a, b, c, d, e) 333check(function (a, b)
334 if a == b then goto l1; 334 while a do
335 elseif a == c then goto l2; 335 if b then break else a = a + 1 end
336 elseif a == d then goto l2;
337 else if a == e then goto l3;
338 else goto l3
339 end
340 end 336 end
341 ::l1:: ::l2:: ::l3:: ::l4:: 337 end,
342end, 'EQ', 'JMP', 'EQ', 'JMP', 'EQ', 'JMP', 'EQ', 'JMP', 'JMP', 338'TEST', 'JMP', 'TEST', 'JMP', 'ADDI', 'JMP', 'RETURN0')
343'CLOSE', 'CLOSE', 'CLOSE', 'CLOSE', 'RETURN0')
344 339
345checkequal( 340checkequal(
346function (a) while a < 10 do a = a + 1 end end, 341function (a) while a < 10 do a = a + 1 end end,
diff --git a/testes/goto.lua b/testes/goto.lua
index 238bc04a..85038d02 100644
--- a/testes/goto.lua
+++ b/testes/goto.lua
@@ -14,6 +14,7 @@ errmsg([[ do ::l1:: end goto l1; ]], "label 'l1'")
14 14
15-- repeated label 15-- repeated label
16errmsg([[ ::l1:: ::l1:: ]], "label 'l1'") 16errmsg([[ ::l1:: ::l1:: ]], "label 'l1'")
17errmsg([[ ::l1:: do ::l1:: end]], "label 'l1'")
17 18
18 19
19-- undefined label 20-- undefined label
@@ -67,8 +68,6 @@ do
67 assert(assert(load(prog))() == 31) 68 assert(assert(load(prog))() == 31)
68end 69end
69 70
70-- goto to correct label when nested
71do goto l3; ::l3:: end -- does not loop jumping to previous label 'l3'
72 71
73-- ok to jump over local dec. to end of block 72-- ok to jump over local dec. to end of block
74do 73do