This logic doesn't work. It doesn't cache the object at all. It just caches the looping over the object -- ie nothing. (I just got bitten by this bug in some code I wrote, so I'm on the lookout for it.)