Wenn Performanz für dich so wichtig ist, solltest du im übrigen folgende Schleifennotation verwenden:
for (var i=0,l=foo.length; i<l; i++);
So muss nicht bei jeder Iteration in der Prototypkette von "foo" nach "length" gesucht werden.
Das ist ein cooler Tipp, danke! :)