Hi
I was playing with environements and i dont understand this behavior.
local env1 = {print=print, a=1}
local env2 = {print=print, a=2}
local component = load([[
  item = {
    func = function()
      print(a)
    end,
    subItem = {
      func = function()
        print(a)
      end,
    }
  }
  ]])
component()
debug.setupvalue(item.func, 1, env1)
debug.setupvalue(item.subItem.func, 1, env2)
item.func()
item.subItem.func()
This print:
2
2
I was hoping it printed:
1
2
It would be great if someone could explain to me how env is propagated.
Thanks