Generate CustomElementConstructor from WebIDL callback definition
Categories
(Core :: DOM: Bindings (WebIDL), task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: karlt, Assigned: karlt)
References
Details
Attachments
(6 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
CustomElementDefinition performs a copy conversion from a Function IDL callback to CustomElementConstructor to bypass class access protection on CallbackObject::CallSetup, to call JS::Construct(), and to provide non-void return values from the callback.
Let's instead generate CustomElementConstructor from WebIDL so that the interface definition can be more accurate, and so that other code involving constructor callbacks doesn't need to be separately hand-crafted.
https://github.com/heycam/webidl/issues/701 proposes a way that would indicate whether a callback is a construct or not, and so we can know whether a callback requires either Call() or Construct() methods.
Assignee | ||
Comment 1•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
Assignee | ||
Comment 3•6 years ago
|
||
TreatNonObjectAsNull is rejected in the parser because / so that there is no
need to implement the equivalent of CallCallback.getCallGuard().
Depends on D26864
Assignee | ||
Comment 4•6 years ago
|
||
Depends on D26865
Assignee | ||
Comment 5•6 years ago
|
||
Depends on D26866
Assignee | ||
Comment 6•6 years ago
|
||
Depends on D26867
Assignee | ||
Comment 7•6 years ago
|
||
Depends on D26868
Assignee | ||
Comment 8•6 years ago
|
||
Updated•6 years ago
|
Updated•6 years ago
|
Comment 10•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7f7069a44442
https://hg.mozilla.org/mozilla-central/rev/9c837ead0cab
https://hg.mozilla.org/mozilla-central/rev/87dfe897f8aa
https://hg.mozilla.org/mozilla-central/rev/a3305716fa2e
https://hg.mozilla.org/mozilla-central/rev/60e641a02435
https://hg.mozilla.org/mozilla-central/rev/6d1c102cccd2
Description
•