- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 11 Nov 2013 14:37:55 -0500
- To: "public-script-coord@w3.org" <public-script-coord@w3.org>
Dear all,
One take-away I have from the current attempts to make undefined be
treated as missing is that we should avoid creating APIs that have
arguments of the form "optional boolean arg = true".
The reason for that is that I think the behavior of such an argument
when combined with the conventions for undefined is very surprising.
Consider a function declared as:
void foo(optional boolean arg = foo);
and these two patterns of calling it:
if (myValue) {
foo(true);
} else {
foo(false);
}
and
foo(myValue);
These two patterns have different behavior, which seems very unintuitive
to me and to everyone else I've pointed this out to...
This does mean that we can't have "foo()" with no arguments default to
true, so we should probably design APIs such that "false" gives the sane
default behavior if there's an optional boolean argument at all.
Thoughts?
-Boris
Received on Monday, 11 November 2013 19:38:29 UTC