Shovel.Vm.Vm.HandleGref C# (CSharp) Метод

HandleGref() статический приватный Метод

static private HandleGref ( Vm vm ) : void
vm Vm
Результат void
        static void HandleGref(Vm vm)
        {
            var start = vm.stack.Count - 2;
            var callGetter = !Prim0.ArrayOrHashGet (vm.api, ref vm.stack.Storage [start], ref vm.stack.Storage [start + 1]);
            if (callGetter)
            {
                var obj = vm.stack.Storage[start];
                if (obj.Kind == Value.Kinds.Hash)
                {
                    vm.stack.Push(obj.hashValue.IndirectGet);
                }
                else if (obj.Kind == Value.Kinds.Array)
                {
                    vm.stack.Push(obj.arrayValue.IndirectGet);
                }
                HandleCallImpl(vm, 2, true);
            }
            else
            {
                vm.stack.Pop();
                vm.programCounter++;
            }
        }
Vm