Let Set.prototype.add() accept multiple args like Array.prototype.push()
If we do this, please let's not reinvent the nasty gotcha with Array.prototype.push() where you get implementation-specific limits on the number of arguments you can push because it transfers everything on the stack.
I think there should be separate
addAll() methods that accept an array or iterable, rather than relying on multiple arguments.
Personally, I'd rather both to exist. Multi-arg
push are useful in their own right (though
add does (un)helpfully return
this - I wish it returned whether the key was already present instead), and can be really fast as they require minimal allocation. Iterable-driven
addAll have their own uses, too, as they efficiently deal with large collections of values without polluting the stack and can be much more straightforwardly translated to
Currently, I exclusively use
.push, but I never use
values is itself a rest parameter or in the fleetingly rare event where it actually provides a noticeable performance boost (which I've encountered maybe once ever).