aboutsummaryrefslogtreecommitdiff
path: root/testes/code.lua
diff options
context:
space:
mode:
Diffstat (limited to 'testes/code.lua')
-rw-r--r--testes/code.lua15
1 files changed, 15 insertions, 0 deletions
diff --git a/testes/code.lua b/testes/code.lua
index bd4b10d0..329619f1 100644
--- a/testes/code.lua
+++ b/testes/code.lua
@@ -445,5 +445,20 @@ do -- string constants
445 assert(T.listk(f2)[1] == nil) 445 assert(T.listk(f2)[1] == nil)
446end 446end
447 447
448
449do -- check number of available registers
450 -- 1 register for local + 1 for function + 252 arguments
451 local source = "local a; return a(" .. string.rep("a, ", 252) .. "a)"
452 local prog = T.listcode(assert(load(source)))
453 -- maximum valid register is 254
454 for i = 1, 254 do
455 assert(string.find(prog[2 + i], "MOVE%s*" .. i))
456 end
457 -- one more argument would need register #255 (but that is reserved)
458 source = "local a; return a(" .. string.rep("a, ", 253) .. "a)"
459 local _, msg = load(source)
460 assert(string.find(msg, "too many registers"))
461end
462
448print 'OK' 463print 'OK'
449 464