diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-08-17 12:37:04 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2024-08-17 12:47:28 -0300 |
commit | 8b752ddf14c1987411906d07a8c68f72f168b9b7 (patch) | |
tree | 6fe4b16cae918d5531697ea2a10e60dea982f5bc /testes | |
parent | 1bf4b80f1ace8384eb9dd6f7f8b67256b3944a7a (diff) | |
download | lua-8b752ddf14c1987411906d07a8c68f72f168b9b7.tar.gz lua-8b752ddf14c1987411906d07a8c68f72f168b9b7.tar.bz2 lua-8b752ddf14c1987411906d07a8c68f72f168b9b7.zip |
Bug: wrong code gen. for indices with comparisons
In function 'luaK_exp2val', used to generate code for indices: Macro
'hasjumps' does not consider the case when the whole expression is a
"jump" (a test). In all other of its uses, the surrounding code ensures
that the expression cannot be VJMP.
Diffstat (limited to 'testes')
-rw-r--r-- | testes/closure.lua | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/testes/closure.lua b/testes/closure.lua index de1b54ec..07149ef3 100644 --- a/testes/closure.lua +++ b/testes/closure.lua | |||
@@ -3,6 +3,14 @@ | |||
3 | 3 | ||
4 | print "testing closures" | 4 | print "testing closures" |
5 | 5 | ||
6 | do -- bug in 5.4.7 | ||
7 | _ENV[true] = 10 | ||
8 | local function aux () return _ENV[1 < 2] end | ||
9 | assert(aux() == 10) | ||
10 | _ENV[true] = nil | ||
11 | end | ||
12 | |||
13 | |||
6 | local A,B = 0,{g=10} | 14 | local A,B = 0,{g=10} |
7 | local function f(x) | 15 | local function f(x) |
8 | local a = {} | 16 | local a = {} |