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);
}
}