do --- alias_alloc
do
local t = {1}
local x
for i=1,100 do
local v = {i}
t[1] = v[1]
x = v[1]
end
assert(x == 100 and t[1] == 100)
end
do
local t = {1}
local x,y
for i=1,100 do
local v = {i}
local w = {i+1}
x = v[1]
y = w[1]
end
assert(x == 100 and y == 101)
end
do
local mt = {}
local t = setmetatable({}, mt)
local x
for i=1,100 do
local v = {}
setmetatable(v, getmetatable(t))
assert(getmetatable(v) == mt)
end
end
-- See also sink_alloc.lua
do
local x,k={1,2},{3,4}
for i=1,100 do x = {x[1]+k[1], x[2]+k[2]} end
assert(x[1] == 301)
assert(x[2] == 402)
end
-- FLOAD for tab.asize/tab.array crossing NEWREF.
do
local t = {1}
for i=1,100 do
local v = {}
local w = {}
v[1] = t[1]
w[1] = t[1]
end
end
end