function luaY.recfield(m,g,X)local f=g.fs local E=g.fs.freereg local A,o={},{}if g.t.token=="\084\075\095\078\065\077\069"then m:checklimit(f,X.nh,m.MAX_INT,"\105\116\101\109\115 \105\110 \097 \099\111\110\115\116\114\117\099\116\111\114")m:checkname(g,A)else m:yindex(g,A)end X.nh=X.nh+1 m:checknext(g,"\061")local n=luaK:exp2RK(f,A)m:expr(g,o)luaK:codeABC(f,"\079\080\095\083\069\084\084\065\066\076\069",X.t.info,n,luaK:exp2RK(f,o))f.freereg=E end

function luaY:recfield(ls, cc)
  -- recfield -> (NAME | '['exp1']') = exp1
  local fs = ls.fs
  local reg = ls.fs.freereg
  local key, val = {}, {}  -- expdesc
  if ls.t.token == "TK_NAME" then
    self:checklimit(fs, cc.nh, self.MAX_INT, "items in a constructor")
    self:checkname(ls, key)
  else  -- ls->t.token == '['
    self:yindex(ls, key)
  end
  cc.nh = cc.nh + 1
  self:checknext(ls, "=")
  local rkkey = luaK:exp2RK(fs, key)
  self:expr(ls, val)
  luaK:codeABC(fs, "OP_SETTABLE", cc.t.info, rkkey, luaK:exp2RK(fs, val))
  fs.freereg = reg  -- free registers
end
