Laut ECMA-Script-Spezifikation http://www.mozilla.org/js/language/E262-2.pdf (Seite 89) ist beides möglich
Pkt. 15.5.4.9 String.prototype.substring(start)
Pkt. 15.5.4.10 String.prototype.substring(start, end)Hm. Dort finde ich keinen Hinweis zu substr - nur zu substring.
Siehe http://bclary.com/2004/11/07/ecma-262.html#annex-b
B.2 Additional Properties
Some implementations of ECMAScript have included additional properties for some of the standard native objects. This non-normative annex suggests uniform semantics for such properties without making the properties or their semantics part of this standard.
(...)
B.2.3 String.prototype.substr (start, length) [hier nicht als optional gekennzeichnet]
(...)
[aber:] If length is undefined, use +∞ ; otherwise call ToInteger(length).