luar.go
func (v *visitor) push(val reflect.Value) bool {
	ptr := val.Pointer()
	v.L.RawGeti(lua.LUA_REGISTRYINDEX, v.index)
	v.L.RawGeti(-1, int(ptr))
	if v.L.IsNil(-1) {
		// Not visited.
		v.L.Pop(2)
		return false
	}
	v.L.Replace(-2)
	return true
}
func (v *visitor) push(val reflect.Value) bool {
	ptr := val.Pointer()
	v.L.RawGeti(lua.LUA_REGISTRYINDEX, v.index)
	v.L.RawGeti(-1, int(ptr))
	if v.L.IsNil(-1) {
		// Not visited.
		v.L.Pop(2)
		return false
	}
	v.L.Replace(-2)
	return true
}
func ( v * visitor ) push ( val reflect . Value ) bool { ptr := val . Pointer ( ) v . L . RawGeti ( lua . LUA_REGISTRYINDEX , v . index ) v . L . RawGeti ( - 1 , int ( ptr ) ) if v . L . IsNil ( - 1 ) { // Not visited. v . L . Pop ( 2 ) return false } v . L . Replace ( - 2 ) return true }
// Push visited value on top of the stack.
// If the value was not visited, return false and push nothing.
Push visited value on top of the stack . If the value was not visited return false and push nothing .