avoid repeated NodeList.length calculation [refs #694]

Calculating outside the loop saves me about 50% calls to `lengthFromProperties`.  It still might be worth looking at ways of avoiding _update for calls like `get length()` which do not mutate the list.