If `item.__time` is falsey then the condition evaluates to false. This means that the item will never be removed from the cache. I'm suggest you change this to `!item.__time || item.__time + ttl < now`.