[WebIDL] On overloaded operations in an effective overload set


I have a question about the overloaded operations in an effective
overload set in Web IDL.  In the example of 'Interface A' in 3.3.3.
Operation, the Draft 19 December 2008 says,

    "There are thus no overloaded operation resolution ambiguities for
the interface",

but the following three pairs seem to be not distinguishable to me,

 * <f2, (DOMString, DOMString)> and <f3, (long, DOMString)>
 * <f2, (DOMString, DOMString, float)> and <f3, (long, DOMString, DOMString)>
 * <f2, (DOMString, DOMString, float, float)> and <f3, (long,
DOMString, DOMString, float)>

based on the definition of 'distinguishable':

    "Two types, t and u, are distinguishable if both are objects
implementing an interface (where two different interfaces are
identified) or if one is an object implementing an interface and the
other is a primitive type."

Since 'DOMString', 'long', and 'float' are primitive types, there is
no index i such that the types at index i are distinguishable in the
above pairs.

We are currently developing a Web IDL based RPC system for Native
Client (*) to facilitate defining interfaces between JavaScript and
Native Client based safe x86 modules, and a little clarification about
this section will help us with our Web IDL compiler development.

(*) http://code.google.com/p/nativeclient/

Also I found two typos in the draft:

3.8.13. [Variadic]
interface IntegerSet {
 readonly unsigned long cardinality; # 'attribute' is missing after 'readonly'

 void union([Variadic] in long ints);
 void intersection([Variadic] in long ints);

4.2.5. [Replaceable]
interface Counter {
 [Replaceable] readonly attribute unsigned value;  # 'long' or 'short'
is missing after 'unsigned'
 void increment();


Shiki Okasaka

Received on Wednesday, 25 February 2009 16:26:55 UTC