Because `hasNext` only checks `context.data`, which hasn't been updaterd yet, since `setDone` affects only the temporary `contextDataToUpdate`