This repeated `arguments.length` pattern in constructor functions is ugly boilerplate that may affect performance (accessing the `arguments` object can prevent optimizations). It's not clear why it's necessary. If these constructors expect arguments, they should always expect arguments. If the arguments are optional, document them as optional and check for their presence without hitting `arguments` if possible.