-
Notifications
You must be signed in to change notification settings - Fork 164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Legacy callback interface objects are badly defined #78
Labels
Comments
tobie
added
enhancement
⌛⌛ duration:medium
Shouldn't be too long to fix
☕☕ difficulty:medium
Hard to fix
labels
Jun 19, 2016
tobie
added a commit
to tobie/webidl
that referenced
this issue
Jan 24, 2017
* Extract legacy callback interface objects out of interface objects. Closes whatwg#78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes whatwg#279. Closes whatwg#83. * Require new for Named Constructors. Closes whatwg#275. * Rely on ES abstract operations for defining, named constructors, interface objects, and legacy callback interface objects. * Disallow using the [NoInterfaceObject] on callback interfaces with constants.
tobie
added a commit
to tobie/webidl
that referenced
this issue
Jan 24, 2017
* Extract legacy callback interface objects out of interface objects. Closes whatwg#78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes whatwg#279. Closes whatwg#83. * Require new for Named Constructors. Closes whatwg#275. * Rely on ES abstract operations for defining, named constructors, interface objects, and legacy callback interface objects. * Disallow using the [NoInterfaceObject] on callback interfaces with constants.
tobie
added a commit
to tobie/webidl
that referenced
this issue
Feb 14, 2017
* Extract legacy callback interface objects out of interface objects. Closes whatwg#78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes whatwg#279. Closes whatwg#83. * Require new for Named Constructors. Closes whatwg#275. * Rely on ES abstract operations for defining, named constructors, interface objects, and legacy callback interface objects. * Disallow using the [NoInterfaceObject] on callback interfaces with constants.
tobie
added a commit
to tobie/webidl
that referenced
this issue
Feb 20, 2017
* Extract legacy callback interface objects out of interface objects. Closes whatwg#78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes whatwg#279. Closes whatwg#83. * Require new for Named Constructors. Closes whatwg#275. * Rely on ES abstract operations for defining, named constructors, interface objects, and legacy callback interface objects. * Disallow using the [NoInterfaceObject] on callback interfaces with constants.
tobie
added a commit
to tobie/webidl
that referenced
this issue
Feb 20, 2017
* Extract legacy callback interface objects out of interface objects. Closes whatwg#78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes whatwg#279. Closes whatwg#83. * Require new for Named Constructors. Closes whatwg#275. * Rely on ES abstract operations for defining, named constructors, interface objects, and legacy callback interface objects. * Disallow using the [NoInterfaceObject] on callback interfaces with constants.
tobie
added a commit
that referenced
this issue
Feb 20, 2017
* Extract legacy callback interface objects out of interface objects. Closes #78. * Clarify that legacy callback interfaces are function objects. * Give them a length property. Closes #279. Closes #83. * Require new for Named Constructors. Closes #275. * Rely on ES abstract operations for defining named constructors, interface objects, and legacy callback interface objects. * Disallow using [NoInterfaceObject] on callback interfaces with constants. * Don't require an interface prototype object for constants. Callback interfaces do not have an interface prototype object. Their constants sit on the legacy callback interface object itself. Closes #281. Closes #283.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Currently, interfaces which are not non-callback interfaces but still have an interface object because they have constants don't have their own name. @bzbarsky suggested during a Mozlando meeting to call them "legacy callback interface objects". The "legacy" part comes from the fact that such interfaces should be avoided anyway.
We should decide whether such legacy callback interface objects (i.e. NodeFilter, the only one such interface like that in the wild) should have a
[[HasInstance]]
method, and the one for noncallback interface objects can be simplified: steps 2 and 3 are useless for the latter because their "prototype" property is non-configurable, and thus always an object.Cc @heycam
The text was updated successfully, but these errors were encountered: