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

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

static private HandleSetIndexed ( Vm vm ) : void
vm Vm
Результат void
        static void HandleSetIndexed(Vm vm)
        {
            var start = vm.stack.Count - 3;
            var callSetter = !Prim0.ArrayOrHashSet (vm.api,
                                  ref vm.stack.Storage [start],
                                  ref vm.stack.Storage [start + 1],
                                  ref vm.stack.Storage [start + 2]);

            if (!callSetter)
            {
                vm.stack.PopMany(2);
                vm.programCounter++;
            }
            else
            {
                var obj = vm.stack.Storage[start];
                if (obj.Kind == Value.Kinds.Hash)
                {
                    vm.stack.Push(obj.hashValue.IndirectSet);
                }
                else if (obj.Kind == Value.Kinds.Array)
                {
                    vm.stack.Push(obj.arrayValue.IndirectSet);
                }
                HandleCallImpl(vm, 3, true);
            }
        }
Vm