code: func ProxyIpairs(L *lua.State) int {
  	// See Lua >=5.2 source code.
  	if L.GetMetaField(1, "__ipairs") {
  		L.PushValue(1)
  		L.Call(1, 3)
  		return 3
  	}
  
  	L.CheckType(1, lua.LUA_TTABLE)
  	L.PushGoFunction(ipairsAux)
  	L.PushValue(1)
  	L.PushInteger(0)
  	return 3
  }
docs: // ProxyIpairs implements Lua 5.2 'ipairs' functions.
  // It respects the __ipairs metamethod.
  //
  // It is only useful for compatibility with Lua 5.1.
  //
  // Because it cannot call 'ipairs' for it might recurse infinitely, ProxyIpairs
  // reimplements `ipairsAux` in Go which can be a performance issue in tight
  // loops.
  //
  // You should call 'RegProxyIpairs' instead.