Closed Bug 820665 Opened 7 years ago Closed 7 years ago

Update WebIDL bindings to spec changes in what objects can be used as dictionaries/callbacks/callback-interfaces

Categories

(Core :: DOM: Core & HTML, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla20

People

(Reporter: bzbarsky, Assigned: bzbarsky)

Details

Attachments

(4 files, 1 obsolete file)

Specifically, we have the following changes:

1) All non-Date and non-RegExp objects can be used as dictionaries.
2) All callables can be used as callback functions (that's what we did already,
   mostly).
3) Callback interfaces can be implemented by all non-platform objects, except for
   non-single-operation interfaces the object must also not be a Date or a RegExp.
4) Overload resolution and union conversions have similar restrictions (though the
   spec is not quite there yet; I sent some mail to Cameron).
1) A union that includes a dictionary and is the last non-optional
   argument must actually be marked optional, just like a dictionary
   argument.
2) Disallow a union from containing both a nullable type and a dictionary.
3) Now all non-Date and non-RegExp objects can be used as dictionaries,
   including from overload resolution and union conversion.

We don't support dictionaries inside unions yet, or unions as
distinguishing args, so the spec changes to do with converting null to
dictionaries inside a union or picking the union overload if there is
a union containing a dictionary and null is the distinguishing arg
value are not relevant to us so far.
Attachment #692169 - Flags: review?(khuey)
There have been more changes since comment 0, especially for callback interfaces.  Patches still coming up.
Attachment #692169 - Attachment is obsolete: true
Attachment #692169 - Flags: review?(khuey)
in overload resolution and union conversions.  We already did this for
normal callback arguments, but not the overload/union case.
Attachment #692177 - Flags: review?(khuey)
Whiteboard: [need review]
Whiteboard: [need review]
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.