aboutsummaryrefslogtreecommitdiff
path: root/testes/code.lua
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-06-13 14:14:50 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2025-06-13 14:14:50 -0300
commit0cecf1ab6d76e6a7d200fb01bdd999b61835fe21 (patch)
treefbd3d4b2928d50bc2e8ef7712920f6a572eaadfd /testes/code.lua
parente657a48ea5698bbd9982d878eb65e6615ec94f7e (diff)
downloadlua-0cecf1ab6d76e6a7d200fb01bdd999b61835fe21.tar.gz
lua-0cecf1ab6d76e6a7d200fb01bdd999b61835fe21.tar.bz2
lua-0cecf1ab6d76e6a7d200fb01bdd999b61835fe21.zip
Dump uses varints also for integer constants
Unlike sizes, these constants can be negative, so it encodes those integers into unsigned integers in a way that keeps small numbers small.
Diffstat (limited to '')
-rw-r--r--testes/code.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/testes/code.lua b/testes/code.lua
index 633f4896..380ff70c 100644
--- a/testes/code.lua
+++ b/testes/code.lua
@@ -482,5 +482,23 @@ do -- basic check for SETLIST
482 assert(count == 1) 482 assert(count == 1)
483end 483end
484 484
485
486do print("testing code for integer limits")
487 local function checkints (n)
488 local source = string.format(
489 "local a = {[true] = 0X%x}; return a[true]", n)
490 local f = assert(load(source))
491 checkKlist(f, {n})
492 assert(f() == n)
493 f = load(string.dump(f))
494 assert(f() == n)
495 end
496
497 checkints(math.maxinteger)
498 checkints(math.mininteger)
499 checkints(-1)
500
501end
502
485print 'OK' 503print 'OK'
486 504