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