Auto merge of #24345 - saschanaz:remove-constructor, r=jdm

Migrate to new constructor operation syntax

<!-- Please describe your changes on the following line: -->

Marking everything as `[Throws]` for simplicity sake (and this matches the previous codegen behavior), but we'll want to unmark some of them as not everything throws.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24157

<!-- Either: -->
- [x] There are tests for these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24345)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-10-02 19:55:43 -04:00 committed by GitHub
commit f54c15bc48
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
103 changed files with 659 additions and 413 deletions

View file

@ -13,9 +13,9 @@ dictionary AnalyserOptions : AudioNodeOptions {
double smoothingTimeConstant = 0.8;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional AnalyserOptions options = {})]
[Exposed=Window]
interface AnalyserNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional AnalyserOptions options = {});
void getFloatFrequencyData (Float32Array array);
void getByteFrequencyData (Uint8Array array);
void getFloatTimeDomainData (Float32Array array);

View file

@ -12,9 +12,9 @@ dictionary AudioBufferOptions {
required float sampleRate;
};
[Exposed=Window,
Constructor (AudioBufferOptions options)]
[Exposed=Window]
interface AudioBuffer {
[Throws] constructor(AudioBufferOptions options);
readonly attribute float sampleRate;
readonly attribute unsigned long length;
readonly attribute double duration;

View file

@ -15,9 +15,9 @@ dictionary AudioBufferSourceOptions {
float playbackRate = 1;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional AudioBufferSourceOptions options = {})]
[Exposed=Window]
interface AudioBufferSourceNode : AudioScheduledSourceNode {
[Throws] constructor(BaseAudioContext context, optional AudioBufferSourceOptions options = {});
[Throws] attribute AudioBuffer? buffer;
readonly attribute AudioParam playbackRate;
readonly attribute AudioParam detune;

View file

@ -22,9 +22,9 @@ dictionary AudioTimestamp {
DOMHighResTimeStamp performanceTime;
};
[Exposed=Window,
Constructor(optional AudioContextOptions contextOptions = {})]
[Exposed=Window]
interface AudioContext : BaseAudioContext {
[Throws] constructor(optional AudioContextOptions contextOptions = {});
readonly attribute double baseLatency;
readonly attribute double outputLatency;

View file

@ -25,9 +25,9 @@ dictionary BiquadFilterOptions : AudioNodeOptions {
float gain = 0;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional BiquadFilterOptions options = {})]
[Exposed=Window]
interface BiquadFilterNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional BiquadFilterOptions options = {});
attribute BiquadFilterType type;
readonly attribute AudioParam frequency;
readonly attribute AudioParam detune;

View file

@ -4,10 +4,10 @@
// https://w3c.github.io/FileAPI/#blob
[Constructor(optional sequence<BlobPart> blobParts,
optional BlobPropertyBag options = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Blob {
[Throws] constructor(optional sequence<BlobPart> blobParts,
optional BlobPropertyBag options = {});
readonly attribute unsigned long long size;
readonly attribute DOMString type;

View file

@ -10,8 +10,9 @@
interface BluetoothServiceDataMap {
readonly maplike<UUID, DataView>;
};*/
[Pref="dom.bluetooth.enabled", Constructor(DOMString type, BluetoothAdvertisingEventInit init)]
[Pref="dom.bluetooth.enabled"]
interface BluetoothAdvertisingEvent : Event {
[Throws] constructor(DOMString type, BluetoothAdvertisingEventInit init);
[SameObject]
readonly attribute BluetoothDevice device;
// readonly attribute FrozenArray<UUID> uuids;

View file

@ -10,7 +10,7 @@ dictionary ChannelMergerOptions : AudioNodeOptions {
unsigned long numberOfInputs = 6;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional ChannelMergerOptions options = {})]
[Exposed=Window]
interface ChannelMergerNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional ChannelMergerOptions options = {});
};

View file

@ -10,7 +10,7 @@ dictionary ChannelSplitterOptions : AudioNodeOptions {
unsigned long numberOfOutputs = 6;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional ChannelSplitterOptions options = {})]
[Exposed=Window]
interface ChannelSplitterNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional ChannelSplitterOptions options = {});
};

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
//https://html.spec.whatwg.org/multipage/#the-closeevent-interfaces
[Constructor(DOMString type, optional CloseEventInit eventInitDict = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface CloseEvent : Event {
[Throws] constructor(DOMString type, optional CloseEventInit eventInitDict = {});
readonly attribute boolean wasClean;
readonly attribute unsigned short code;
readonly attribute DOMString reason;

View file

@ -9,6 +9,6 @@
* liability, trademark and document use rules apply.
*/
[Constructor(optional DOMString data = "")]
interface Comment : CharacterData {
[Throws] constructor(optional DOMString data = "");
};

View file

@ -8,8 +8,9 @@
*/
// https://w3c.github.io/uievents/#idl-compositionevent
[Pref="dom.compositionevent.enabled", Constructor(DOMString type, optional CompositionEventInit eventInitDict = {})]
[Pref="dom.compositionevent.enabled"]
interface CompositionEvent : UIEvent {
[Throws] constructor(DOMString type, optional CompositionEventInit eventInitDict = {});
readonly attribute DOMString data;
};

View file

@ -10,8 +10,8 @@ dictionary ConstantSourceOptions: AudioNodeOptions {
float offset = 1;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional ConstantSourceOptions options = {})]
[Exposed=Window]
interface ConstantSourceNode : AudioScheduledSourceNode {
[Throws] constructor(BaseAudioContext context, optional ConstantSourceOptions options = {});
readonly attribute AudioParam offset;
};

View file

@ -13,9 +13,9 @@
* http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0.
*/
[Constructor(DOMString type, optional CustomEventInit eventInitDict = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface CustomEvent : Event {
[Throws] constructor(DOMString type, optional CustomEventInit eventInitDict = {});
readonly attribute any detail;
void initCustomEvent(DOMString type, boolean bubbles, boolean cancelable, any detail);

View file

@ -9,10 +9,10 @@
[
ExceptionClass,
Exposed=(Window,Worker,Worklet,DissimilarOriginWindow),
Constructor(optional DOMString message="", optional DOMString name="Error")
Exposed=(Window,Worker,Worklet,DissimilarOriginWindow)
]
interface DOMException {
[Throws] constructor(optional DOMString message="", optional DOMString name="Error");
const unsigned short INDEX_SIZE_ERR = 1;
const unsigned short DOMSTRING_SIZE_ERR = 2; // historical
const unsigned short HIERARCHY_REQUEST_ERR = 3;

View file

@ -10,9 +10,9 @@
* related or neighboring rights to this work.
*/
[Constructor(optional (DOMString or sequence<unrestricted double>) init),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface DOMMatrix : DOMMatrixReadOnly {
[Throws] constructor(optional (DOMString or sequence<unrestricted double>) init);
[NewObject, Throws] static DOMMatrix fromMatrix(optional DOMMatrixInit other = {});
[NewObject, Throws] static DOMMatrix fromFloat32Array(Float32Array array32);

View file

@ -10,9 +10,9 @@
* related or neighboring rights to this work.
*/
[Constructor(optional (DOMString or sequence<unrestricted double>) init),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface DOMMatrixReadOnly {
[Throws] constructor(optional (DOMString or sequence<unrestricted double>) init);
[NewObject, Throws] static DOMMatrixReadOnly fromMatrix(optional DOMMatrixInit other = {});
[NewObject, Throws] static DOMMatrixReadOnly fromFloat32Array(Float32Array array32);

View file

@ -14,8 +14,8 @@ enum SupportedType {
"image/svg+xml"*/
};
[Constructor]
interface DOMParser {
[Throws] constructor();
[Throws]
Document parseFromString(DOMString str, SupportedType type);
};

View file

@ -10,10 +10,10 @@
*/
// http://dev.w3.org/fxtf/geometry/Overview.html#dompoint
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface DOMPoint : DOMPointReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1);
[NewObject] static DOMPoint fromPoint(optional DOMPointInit other = {});
inherit attribute unrestricted double x;

View file

@ -10,10 +10,10 @@
*/
// http://dev.w3.org/fxtf/geometry/Overview.html#dompointreadonly
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface DOMPointReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double z = 0, optional unrestricted double w = 1);
[NewObject] static DOMPointReadOnly fromPoint(optional DOMPointInit other = {});
readonly attribute unrestricted double x;

View file

@ -10,10 +10,10 @@
* related or neighboring rights to this work.
*/
[Constructor(optional DOMPointInit p1 = {}, optional DOMPointInit p2 = {},
optional DOMPointInit p3 = {}, optional DOMPointInit p4 = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface DOMQuad {
[Throws] constructor(optional DOMPointInit p1 = {}, optional DOMPointInit p2 = {},
optional DOMPointInit p3 = {}, optional DOMPointInit p4 = {});
[NewObject] static DOMQuad fromRect(optional DOMRectInit other = {});
[NewObject] static DOMQuad fromQuad(optional DOMQuadInit other = {});

View file

@ -2,11 +2,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double width = 0, optional unrestricted double height = 0),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
// https://drafts.fxtf.org/geometry/#domrect
interface DOMRect : DOMRectReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double width = 0, optional unrestricted double height = 0);
inherit attribute unrestricted double x;
inherit attribute unrestricted double y;
inherit attribute unrestricted double width;

View file

@ -2,11 +2,11 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
[Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double width = 0, optional unrestricted double height = 0),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
// https://drafts.fxtf.org/geometry/#domrect
interface DOMRectReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double width = 0, optional unrestricted double height = 0);
// [NewObject] static DOMRectReadOnly fromRect(optional DOMRectInit other);
readonly attribute unrestricted double x;

View file

@ -8,8 +8,8 @@
*/
// https://dom.spec.whatwg.org/#interface-document
[Constructor]
interface Document : Node {
[Throws] constructor();
[SameObject]
readonly attribute DOMImplementation implementation;
[Constant]

View file

@ -3,8 +3,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://dom.spec.whatwg.org/#interface-documentfragment
[Constructor]
interface DocumentFragment : Node {
[Throws] constructor();
};
DocumentFragment includes NonElementParentNode;

View file

@ -4,8 +4,9 @@
// https://html.spec.whatwg.org/multipage/#the-errorevent-interface
[Constructor(DOMString type, optional ErrorEventInit eventInitDict = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface ErrorEvent : Event {
[Throws] constructor(DOMString type, optional ErrorEventInit eventInitDict = {});
readonly attribute DOMString message;
readonly attribute DOMString filename;
readonly attribute unsigned long lineno;

View file

@ -6,8 +6,9 @@
* https://dom.spec.whatwg.org/#event
*/
[Constructor(DOMString type, optional EventInit eventInitDict = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Event {
[Throws] constructor(DOMString type, optional EventInit eventInitDict = {});
[Pure]
readonly attribute DOMString type;
readonly attribute EventTarget? target;

View file

@ -6,9 +6,9 @@
* https://html.spec.whatwg.org/multipage/#eventsource
*/
[Constructor(DOMString url, optional EventSourceInit eventSourceInitDict = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface EventSource : EventTarget {
[Throws] constructor(DOMString url, optional EventSourceInit eventSourceInitDict = {});
readonly attribute DOMString url;
readonly attribute boolean withCredentials;

View file

@ -5,8 +5,9 @@
* https://dom.spec.whatwg.org/#interface-eventtarget
*/
[Constructor, Exposed=(Window,Worker,Worklet,DissimilarOriginWindow)]
[Exposed=(Window,Worker,Worklet,DissimilarOriginWindow)]
interface EventTarget {
[Throws] constructor();
void addEventListener(
DOMString type,
EventListener? callback,

View file

@ -4,11 +4,11 @@
// https://w3c.github.io/ServiceWorker/#extendable-event
[Constructor(DOMString type,
optional ExtendableEventInit eventInitDict = {}),
Exposed=ServiceWorker,
[Exposed=ServiceWorker,
Pref="dom.serviceworker.enabled"]
interface ExtendableEvent : Event {
[Throws] constructor(DOMString type,
optional ExtendableEventInit eventInitDict = {});
[Throws] void waitUntil(/*Promise<*/any/*>*/ f);
};

View file

@ -4,10 +4,10 @@
// https://w3c.github.io/ServiceWorker/#extendablemessage-event-section
[Constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict = {}),
Exposed=ServiceWorker,
[Exposed=ServiceWorker,
Pref="dom.serviceworker.enabled"]
interface ExtendableMessageEvent : ExtendableEvent {
[Throws] constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict = {});
readonly attribute any data;
readonly attribute DOMString origin;
readonly attribute DOMString lastEventId;

View file

@ -4,11 +4,11 @@
// https://w3c.github.io/FileAPI/#file
[Constructor(sequence<BlobPart> fileBits,
DOMString fileName,
optional FilePropertyBag options = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface File : Blob {
[Throws] constructor(sequence<BlobPart> fileBits,
DOMString fileName,
optional FilePropertyBag options = {});
readonly attribute DOMString name;
readonly attribute long long lastModified;
};

View file

@ -5,8 +5,9 @@
// http://dev.w3.org/2006/webapi/FileAPI/#APIASynch
typedef (DOMString or object) FileReaderResult;
[Constructor, Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface FileReader: EventTarget {
[Throws] constructor();
// async read methods
[Throws]

View file

@ -4,8 +4,9 @@
// https://w3c.github.io/FileAPI/#FileReaderSync
[Constructor, Exposed=Worker]
[Exposed=Worker]
interface FileReaderSync {
[Throws] constructor();
// Synchronously return strings
[Throws]

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/uievents/#interface-FocusEvent
[Constructor(DOMString typeArg, optional FocusEventInit focusEventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface FocusEvent : UIEvent {
[Throws] constructor(DOMString typeArg, optional FocusEventInit focusEventInitDict = {});
readonly attribute EventTarget? relatedTarget;
};

View file

@ -8,9 +8,9 @@
typedef (File or USVString) FormDataEntryValue;
[Constructor(optional HTMLFormElement form),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface FormData {
[Throws] constructor(optional HTMLFormElement form);
void append(USVString name, USVString value);
void append(USVString name, Blob value, optional USVString filename);
void delete(USVString name);

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#the-formdataevent-interface
[Exposed=Window,
Constructor(DOMString type, optional FormDataEventInit eventInitDict = {})]
[Exposed=Window]
interface FormDataEvent : Event {
[Throws] constructor(DOMString type, optional FormDataEventInit eventInitDict = {});
readonly attribute FormData formData;
};

View file

@ -10,8 +10,8 @@ dictionary GainOptions : AudioNodeOptions {
float gain = 1.0;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional GainOptions options = {})]
[Exposed=Window]
interface GainNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional GainOptions options = {});
readonly attribute AudioParam gain;
};

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/gamepad/#gamepadevent-interface
[Pref="dom.gamepad.enabled", Constructor(DOMString type, GamepadEventInit eventInitDict)]
[Pref="dom.gamepad.enabled"]
interface GamepadEvent : Event {
[Throws] constructor(DOMString type, GamepadEventInit eventInitDict);
readonly attribute Gamepad gamepad;
};

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#hashchangeevent
[Constructor(DOMString type, optional HashChangeEventInit eventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface HashChangeEvent : Event {
[Throws] constructor(DOMString type, optional HashChangeEventInit eventInitDict = {});
readonly attribute USVString oldURL;
readonly attribute USVString newURL;
};

View file

@ -6,9 +6,9 @@
typedef (Headers or sequence<sequence<ByteString>> or record<DOMString, ByteString>) HeadersInit;
[Constructor(optional HeadersInit init),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Headers {
[Throws] constructor(optional HeadersInit init);
[Throws]
void append(ByteString name, ByteString value);
[Throws]

View file

@ -9,10 +9,10 @@
* You are granted a license to use, reproduce and create derivative works of this document.
*/
[Constructor(unsigned long sw, unsigned long sh),
Constructor(/* Uint8ClampedArray */ object data, unsigned long sw, optional unsigned long sh),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface ImageData {
[Throws] constructor(unsigned long sw, unsigned long sh);
[Throws] constructor(/* Uint8ClampedArray */ object data, unsigned long sw, optional unsigned long sh);
//[Constant]
readonly attribute unsigned long width;
//[Constant]

View file

@ -8,8 +8,8 @@
*/
// https://w3c.github.io/uievents/#idl-inputevent
[Constructor(DOMString type, optional InputEventInit eventInitDict = {})]
interface InputEvent : UIEvent {
[Throws] constructor(DOMString type, optional InputEventInit eventInitDict = {});
readonly attribute DOMString? data;
readonly attribute boolean isComposing;
};

View file

@ -7,8 +7,8 @@
*
*/
[Constructor(DOMString typeArg, optional KeyboardEventInit keyboardEventInitDict = {})]
interface KeyboardEvent : UIEvent {
[Throws] constructor(DOMString typeArg, optional KeyboardEventInit keyboardEventInitDict = {});
// KeyLocationCode
const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
const unsigned long DOM_KEY_LOCATION_LEFT = 0x01;

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://drafts.csswg.org/cssom-view/#dom-mediaquerylistevent-mediaquerylistevent
[Constructor(DOMString type, optional MediaQueryListEventInit eventInitDict = {}), Exposed=(Window)]
[Exposed=(Window)]
interface MediaQueryListEvent : Event {
[Throws] constructor(DOMString type, optional MediaQueryListEventInit eventInitDict = {});
readonly attribute DOMString media;
readonly attribute boolean matches;
};

View file

@ -5,11 +5,11 @@
// https://w3c.github.io/mediacapture-main/#dom-mediastream
[Exposed=Window,
Constructor,
Constructor(MediaStream stream),
Constructor(sequence<MediaStreamTrack> tracks),
Pref="dom.webrtc.enabled"]
Pref="dom.webrtc.enabled"]
interface MediaStream : EventTarget {
[Throws] constructor();
[Throws] constructor(MediaStream stream);
[Throws] constructor(sequence<MediaStreamTrack> tracks);
// readonly attribute DOMString id;
sequence<MediaStreamTrack> getAudioTracks();
sequence<MediaStreamTrack> getVideoTracks();

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#messageevent
[Constructor(DOMString type, optional MessageEventInit eventInitDict = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface MessageEvent : Event {
[Throws] constructor(DOMString type, optional MessageEventInit eventInitDict = {});
readonly attribute any data;
readonly attribute DOMString origin;
readonly attribute DOMString lastEventId;

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/uievents/#interface-mouseevent
[Constructor(DOMString typeArg, optional MouseEventInit mouseEventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface MouseEvent : UIEvent {
[Throws] constructor(DOMString typeArg, optional MouseEventInit mouseEventInitDict = {});
readonly attribute long screenX;
readonly attribute long screenY;
readonly attribute long clientX;

View file

@ -7,8 +7,9 @@
*/
// https://dom.spec.whatwg.org/#mutationobserver
[Pref="dom.mutation_observer.enabled", Constructor(MutationCallback callback)]
[Pref="dom.mutation_observer.enabled"]
interface MutationObserver {
[Throws] constructor(MutationCallback callback);
[Throws]
void observe(Node target, optional MutationObserverInit options = {});
void disconnect();

View file

@ -10,8 +10,8 @@ dictionary OfflineAudioCompletionEventInit : EventInit {
required AudioBuffer renderedBuffer;
};
[Exposed=Window,
Constructor(DOMString type, OfflineAudioCompletionEventInit eventInitDict)]
[Exposed=Window]
interface OfflineAudioCompletionEvent : Event {
[Throws] constructor(DOMString type, OfflineAudioCompletionEventInit eventInitDict);
readonly attribute AudioBuffer renderedBuffer;
};

View file

@ -12,10 +12,10 @@ dictionary OfflineAudioContextOptions {
required float sampleRate;
};
[Exposed=Window,
Constructor (OfflineAudioContextOptions contextOptions),
Constructor (unsigned long numberOfChannels, unsigned long length, float sampleRate)]
[Exposed=Window]
interface OfflineAudioContext : BaseAudioContext {
[Throws] constructor(OfflineAudioContextOptions contextOptions);
[Throws] constructor(unsigned long numberOfChannels, unsigned long length, float sampleRate);
readonly attribute unsigned long length;
attribute EventHandler oncomplete;

View file

@ -13,9 +13,9 @@ dictionary ImageEncodeOptions {
//enum OffscreenRenderingContextId { "2d", "webgl", "webgl2" };
[Constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height),
Exposed=(Window,Worker)/*, Transferable*/, Pref="dom.offscreen_canvas.enabled"]
[Exposed=(Window,Worker)/*, Transferable*/, Pref="dom.offscreen_canvas.enabled"]
interface OffscreenCanvas : EventTarget {
[Throws] constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height);
attribute /*[EnforceRange]*/ unsigned long long width;
attribute /*[EnforceRange]*/ unsigned long long height;

View file

@ -21,9 +21,9 @@ dictionary OscillatorOptions : AudioNodeOptions {
// PeriodicWave periodicWave;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional OscillatorOptions options = {})]
[Exposed=Window]
interface OscillatorNode : AudioScheduledSourceNode {
[Throws] constructor(BaseAudioContext context, optional OscillatorOptions options = {});
[SetterThrows]
attribute OscillatorType type;

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#the-pagetransitionevent-interface
[Constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface PageTransitionEvent : Event {
[Throws] constructor(DOMString type, optional PageTransitionEventInit eventInitDict = {});
readonly attribute boolean persisted;
};

View file

@ -34,9 +34,9 @@ enum PanningModelType {
"HRTF"
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional PannerOptions options = {})]
[Exposed=Window]
interface PannerNode : AudioNode {
[Throws] constructor(BaseAudioContext context, optional PannerOptions options = {});
attribute PanningModelType panningModel;
readonly attribute AudioParam positionX;
readonly attribute AudioParam positionY;

View file

@ -13,9 +13,9 @@ dictionary PerformanceObserverInit {
callback PerformanceObserverCallback = void (PerformanceObserverEntryList entries, PerformanceObserver observer);
[Constructor(PerformanceObserverCallback callback),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface PerformanceObserver {
[Throws] constructor(PerformanceObserverCallback callback);
[Throws]
void observe(PerformanceObserverInit options);
void disconnect();

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://html.spec.whatwg.org/multipage/#the-popstateevent-interface
[Constructor(DOMString type, optional PopStateEventInit eventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface PopStateEvent : Event {
[Throws] constructor(DOMString type, optional PopStateEventInit eventInitDict = {});
readonly attribute any state;
};

View file

@ -12,9 +12,9 @@
* http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0.
*/
[Constructor(DOMString type, optional ProgressEventInit eventInitDict = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface ProgressEvent : Event {
[Throws] constructor(DOMString type, optional ProgressEventInit eventInitDict = {});
readonly attribute boolean lengthComputable;
readonly attribute unsigned long long loaded;
readonly attribute unsigned long long total;

View file

@ -4,8 +4,9 @@
// https://html.spec.whatwg.org/multipage/#the-promiserejectionevent-interface
[Constructor(DOMString type, optional PromiseRejectionEventInit eventInitDict = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface PromiseRejectionEvent : Event {
[Throws] constructor(DOMString type, optional PromiseRejectionEventInit eventInitDict = {});
readonly attribute Promise<any> promise;
readonly attribute any reason;
};

View file

@ -5,9 +5,9 @@
// https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface
[Constructor(optional RTCIceCandidateInit candidateInitDict = {}),
Exposed=Window, Pref="dom.webrtc.enabled"]
[Exposed=Window, Pref="dom.webrtc.enabled"]
interface RTCIceCandidate {
[Throws] constructor(optional RTCIceCandidateInit candidateInitDict = {});
readonly attribute DOMString candidate;
readonly attribute DOMString? sdpMid;
readonly attribute unsigned short? sdpMLineIndex;

View file

@ -4,9 +4,9 @@
// https://w3c.github.io/webrtc-pc/#interface-definition
[Constructor(optional RTCConfiguration configuration = {}),
Exposed=Window, Pref="dom.webrtc.enabled"]
[Exposed=Window, Pref="dom.webrtc.enabled"]
interface RTCPeerConnection : EventTarget {
[Throws] constructor(optional RTCConfiguration configuration = {});
Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options = {});
Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options = {});
Promise<void> setLocalDescription(RTCSessionDescriptionInit description);

View file

@ -4,9 +4,9 @@
// https://w3c.github.io/webrtc-pc/#rtcpeerconnectioniceevent
[Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict = {}),
Exposed=Window, Pref="dom.webrtc.enabled"]
[Exposed=Window, Pref="dom.webrtc.enabled"]
interface RTCPeerConnectionIceEvent : Event {
[Throws] constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict = {});
readonly attribute RTCIceCandidate? candidate;
readonly attribute DOMString? url;
};

View file

@ -4,9 +4,9 @@
// https://w3c.github.io/webrtc-pc/#rtcsessiondescription-class
[Constructor(RTCSessionDescriptionInit descriptionInitDict),
Exposed=Window, Pref="dom.webrtc.enabled"]
[Exposed=Window, Pref="dom.webrtc.enabled"]
interface RTCSessionDescription {
[Throws] constructor(RTCSessionDescriptionInit descriptionInitDict);
readonly attribute RTCSdpType type;
readonly attribute DOMString sdp;
[Default] object toJSON();

View file

@ -4,9 +4,9 @@
// https://w3c.github.io/webrtc-pc/#dom-rtctrackevent
[Constructor(DOMString type, RTCTrackEventInit eventInitDict),
Exposed=Window, Pref="dom.webrtc.enabled"]
[Exposed=Window, Pref="dom.webrtc.enabled"]
interface RTCTrackEvent : Event {
[Throws] constructor(DOMString type, RTCTrackEventInit eventInitDict);
// readonly attribute RTCRtpReceiver receiver;
readonly attribute MediaStreamTrack track;
// [SameObject]

View file

@ -8,8 +8,8 @@
* http://dvcs.w3.org/hg/csswg/raw-file/tip/cssom-view/Overview.html#extensions-to-the-range-interface
*/
[Constructor]
interface Range {
[Throws] constructor();
[Pure]
readonly attribute Node startContainer;
[Pure]

View file

@ -6,10 +6,9 @@
typedef (Request or USVString) RequestInfo;
[Constructor(RequestInfo input, optional RequestInit init = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Request {
[Throws] constructor(RequestInfo input, optional RequestInit init = {});
readonly attribute ByteString method;
readonly attribute USVString url;
[SameObject] readonly attribute Headers headers;

View file

@ -4,9 +4,9 @@
// https://fetch.spec.whatwg.org/#response-class
[Constructor(optional BodyInit? body = null, optional ResponseInit init = {}),
Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Response {
[Throws] constructor(optional BodyInit? body = null, optional ResponseInit init = {});
[NewObject] static Response error();
[NewObject, Throws] static Response redirect(USVString url, optional unsigned short status = 302);

View file

@ -10,8 +10,8 @@ dictionary StereoPannerOptions: AudioNodeOptions {
float pan = 0;
};
[Exposed=Window,
Constructor (BaseAudioContext context, optional StereoPannerOptions options = {})]
[Exposed=Window]
interface StereoPannerNode : AudioScheduledSourceNode {
[Throws] constructor(BaseAudioContext context, optional StereoPannerOptions options = {});
readonly attribute AudioParam pan;
};

View file

@ -9,8 +9,9 @@
* Event sent to a window when a storage area changes.
*/
[Constructor(DOMString type, optional StorageEventInit eventInitDict = {}), Exposed=Window]
[Exposed=Window]
interface StorageEvent : Event {
[Throws] constructor(DOMString type, optional StorageEventInit eventInitDict = {});
readonly attribute DOMString? key;
readonly attribute DOMString? oldValue;
readonly attribute DOMString? newValue;

View file

@ -86,13 +86,13 @@ dictionary TestDictionaryDefaults {
object? nullableObjectValue = null;
};
[Constructor,
Constructor(sequence<unrestricted double> numberSequence),
Constructor(unrestricted double num),
Pref="dom.testbinding.enabled",
[Pref="dom.testbinding.enabled",
Exposed=(Window,Worker)
]
interface TestBinding {
[Throws] constructor();
[Throws] constructor(sequence<unrestricted double> numberSequence);
[Throws] constructor(unrestricted double num);
attribute boolean booleanAttribute;
attribute byte byteAttribute;
attribute octet octetAttribute;

View file

@ -5,8 +5,9 @@
// This interface is entirely internal to Servo, and should not be accessible to
// web pages.
[Pref="dom.testbinding.enabled", Exposed=(Window,Worker), Constructor]
[Pref="dom.testbinding.enabled", Exposed=(Window,Worker)]
interface TestBindingIterable {
[Throws] constructor();
void add(DOMString arg);
readonly attribute unsigned long length;
getter DOMString getItem(unsigned long index);

View file

@ -5,8 +5,9 @@
// This interface is entirely internal to Servo, and should not be accessible to
// web pages.
[Pref="dom.testbinding.enabled", Exposed=(Window,Worker), Constructor]
[Pref="dom.testbinding.enabled", Exposed=(Window,Worker)]
interface TestBindingPairIterable {
[Throws] constructor();
void add(DOMString key, unsigned long value);
iterable<DOMString, unsigned long>;
};

View file

@ -5,8 +5,9 @@
// This interface is entirely internal to Servo, and should not be accessible to
// web pages.
[Pref="dom.worklet.testing.enabled", Exposed=(Window), Constructor]
[Pref="dom.worklet.testing.enabled", Exposed=(Window)]
interface TestWorklet {
[Throws] constructor();
[NewObject] Promise<void> addModule(USVString moduleURL, optional WorkletOptions options = {});
DOMString? lookup(DOMString key);
};

View file

@ -10,8 +10,8 @@
*/
// https://dom.spec.whatwg.org/#text
[Constructor(optional DOMString data = "")]
interface Text : CharacterData {
[Throws] constructor(optional DOMString data = "");
[NewObject, Throws]
Text splitText(unsigned long offset);
[Pure]

View file

@ -12,8 +12,9 @@ dictionary TextDecodeOptions {
boolean stream = false;
};
[Constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface TextDecoder {
[Throws] constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {});
readonly attribute DOMString encoding;
readonly attribute boolean fatal;
readonly attribute boolean ignoreBOM;

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
/* https://encoding.spec.whatwg.org/#interface-textencoder */
[Constructor, Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface TextEncoder {
[Throws] constructor();
readonly attribute DOMString encoding;
[NewObject]
Uint8Array encode(optional USVString input = "");

View file

@ -4,9 +4,9 @@
// https://html.spec.whatwg.org/multipage/#the-trackevent-interface
[Exposed=Window,
Constructor(DOMString type, optional TrackEventInit eventInitDict = {})]
[Exposed=Window]
interface TrackEvent : Event {
[Throws] constructor(DOMString type, optional TrackEventInit eventInitDict = {});
readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
};

View file

@ -6,9 +6,9 @@
* https://dom.spec.whatwg.org/#event
*/
[Constructor(DOMString type, optional TransitionEventInit transitionEventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface TransitionEvent : Event {
[Throws] constructor(DOMString type, optional TransitionEventInit transitionEventInitDict = {});
readonly attribute DOMString propertyName;
readonly attribute float elapsedTime;
readonly attribute DOMString pseudoElement;

View file

@ -3,8 +3,8 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/uievents/#interface-uievent
[Constructor(DOMString type, optional UIEventInit eventInitDict = {})]
interface UIEvent : Event {
[Throws] constructor(DOMString type, optional UIEventInit eventInitDict = {});
// readonly attribute WindowProxy? view;
readonly attribute Window? view;
readonly attribute long detail;

View file

@ -3,8 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://url.spec.whatwg.org/#url
[Constructor(USVString url, optional USVString base), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface URL {
[Throws] constructor(USVString url, optional USVString base);
[SetterThrows]
/*stringifier*/ attribute USVString href;
readonly attribute USVString origin;

View file

@ -6,10 +6,10 @@
* https://url.spec.whatwg.org/#interface-urlsearchparams
*/
[Constructor(
optional (sequence<sequence<USVString>> or record<USVString, USVString> or USVString) init/* = ""*/
), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface URLSearchParams {
[Throws] constructor(
optional (sequence<sequence<USVString>> or record<USVString, USVString> or USVString) init);
void append(USVString name, USVString value);
void delete(USVString name);
USVString? get(USVString name);

View file

@ -11,8 +11,9 @@ enum VRDisplayEventReason {
"requested"
};
[Pref="dom.webvr.enabled", Constructor(DOMString type, VRDisplayEventInit eventInitDict)]
[Pref="dom.webvr.enabled"]
interface VRDisplayEvent : Event {
[Throws] constructor(DOMString type, VRDisplayEventInit eventInitDict);
readonly attribute VRDisplay display;
readonly attribute VRDisplayEventReason? reason;
};

View file

@ -4,8 +4,9 @@
// https://w3c.github.io/webvr/#interface-vrframedata
[Pref="dom.webvr.enabled", Constructor]
[Pref="dom.webvr.enabled"]
interface VRFrameData {
[Throws] constructor();
readonly attribute DOMHighResTimeStamp timestamp;
readonly attribute Float32Array leftProjectionMatrix;
readonly attribute Float32Array leftViewMatrix;

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
[Constructor(DOMString type, optional WebGLContextEventInit eventInit = {}),
Exposed=Window]
[Exposed=Window]
interface WebGLContextEvent : Event {
[Throws] constructor(DOMString type, optional WebGLContextEventInit eventInit = {});
readonly attribute DOMString statusMessage;
};

View file

@ -6,8 +6,9 @@
enum BinaryType { "blob", "arraybuffer" };
[Constructor(DOMString url, optional (DOMString or sequence<DOMString>) protocols), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface WebSocket : EventTarget {
[Throws] constructor(DOMString url, optional (DOMString or sequence<DOMString>) protocols);
readonly attribute DOMString url;
//ready state
const unsigned short CONNECTING = 0;

View file

@ -3,9 +3,9 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/uievents/#interface-wheelevent
[Constructor(DOMString typeArg, optional WheelEventInit wheelEventInitDict = {}),
Exposed=Window]
[Exposed=Window]
interface WheelEvent : MouseEvent {
[Throws] constructor(DOMString typeArg, optional WheelEventInit wheelEventInitDict = {});
const unsigned long DOM_DELTA_PIXEL = 0x00;
const unsigned long DOM_DELTA_LINE = 0x01;
const unsigned long DOM_DELTA_PAGE = 0x02;

View file

@ -9,8 +9,9 @@ interface mixin AbstractWorker {
};
// https://html.spec.whatwg.org/multipage/#worker
[Constructor(USVString scriptURL, optional WorkerOptions options = {}), Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface Worker : EventTarget {
[Throws] constructor(USVString scriptURL, optional WorkerOptions options = {});
void terminate();
[Throws] void postMessage(any message/*, sequence<object> transfer*/);

View file

@ -24,8 +24,9 @@ enum XMLHttpRequestResponseType {
"text"
};
[Constructor, Exposed=(Window,Worker)]
[Exposed=(Window,Worker)]
interface XMLHttpRequest : XMLHttpRequestEventTarget {
[Throws] constructor();
// event handler
attribute EventHandler onreadystatechange;

View file

@ -6,8 +6,8 @@
* https://w3c.github.io/DOM-Parsing/#the-domparser-interface
*/
[Constructor]
interface XMLSerializer {
[Throws] constructor();
[Throws]
DOMString serializeToString(Node root);
};

View file

@ -4,9 +4,9 @@
// https://immersive-web.github.io/webxr/#xrrigidtransform-interface
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled",
Constructor(optional DOMPointInit position = {}, optional DOMPointInit orientation = {})]
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
interface XRRigidTransform {
[Throws] constructor(optional DOMPointInit position = {}, optional DOMPointInit orientation = {});
readonly attribute DOMPointReadOnly position;
readonly attribute DOMPointReadOnly orientation;
readonly attribute Float32Array matrix;

View file

@ -4,9 +4,9 @@
// https://immersive-web.github.io/webxr/#xrsessionevent-interface
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled", Constructor
(DOMString type, XRSessionEventInit eventInitDict)]
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
interface XRSessionEvent : Event {
[Throws] constructor(DOMString type, XRSessionEventInit eventInitDict);
[SameObject] readonly attribute XRSession session;
};

View file

@ -17,11 +17,11 @@ dictionary XRWebGLLayerInit {
// double framebufferScaleFactor = 1.0;
};
[SecureContext, Exposed=Window, Constructor(XRSession session,
XRWebGLRenderingContext context,
optional XRWebGLLayerInit layerInit = {}),
Pref="dom.webxr.enabled"]
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
interface XRWebGLLayer {
[Throws] constructor(XRSession session,
XRWebGLRenderingContext context,
optional XRWebGLLayerInit layerInit = {});
// // Attributes
readonly attribute XRWebGLRenderingContext context;