ssize_t Globals::iter_rewind(ssize_t prev) const { if (prev < -1) { ArrayData *arr = Array::get(); ASSERT(arr); ssize_t next = arr->iter_rewind(wrapIter(prev)); if (next == ArrayData::invalid_index) { if (staticSize() > 0) { return staticSize() - 1; } return ArrayData::invalid_index; } else { return wrapIter(next); } } ssize_t next = prev - 1; if (next < 0) return ArrayData::invalid_index; return next; }