public static StackValue GetNextKey(StackValue key, Core core) { if (StackUtils.IsNull(key) || key.optype != AddressType.ArrayKey || key.opdata < 0 || key.metaData.type < 0) { return(StackUtils.BuildNull()); } int ptr = key.metaData.type; int index = (int)key.opdata; HeapElement he = core.Heap.Heaplist[ptr]; if ((he.VisibleSize > index + 1) || (he.Dict != null && he.Dict.Count + he.VisibleSize > index + 1)) { StackValue newKey = key; newKey.opdata = newKey.opdata + 1; return(newKey); } return(StackUtils.BuildNull()); }