webidl 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 142902bff409ee76e33c35f7259aa5a9ab22a1f6
4
- data.tar.gz: 05258c4d9be4aa0b1a5fd9d73ec98c0b982f64b6
3
+ metadata.gz: f14ae8f706ecedd826e99ad6714b987cb3b15370
4
+ data.tar.gz: fc61dac4ccd45fc210cc4bc5d5148a1210c54f40
5
5
  SHA512:
6
- metadata.gz: e432757b5cb73096b113b2e3cf1cb868c3632c85fc113e15ca2c0016998379c18cca390efbb9f5bb453457d02a68e7abe40724b9ce33d167b436fa80835f3244
7
- data.tar.gz: b807888599c3318830b0da27d88c195d0aa70ea747862be0d6973fff33391be5c0ff6401d130bb1f4692e2d5ce6e1b27ef261d3450136e8da3ff3168c9e45b27
6
+ metadata.gz: c57a418abd44297d88c45b029ff010ebea9f94dcae657a04baa52d79262a083ddc529ce317e8849ae84382d86f76188b8b3b416996450c8a90a4578c584f1eb1
7
+ data.tar.gz: 94f9fcec25a2b4c314ee0c06db001904fe7ead3111da6a6a45e42517d364836c7982360275633d764a1874f6c25fbc01fa9a0c7cb6b6a1f1e6687a5a5c1aea38
data/Rakefile CHANGED
@@ -24,7 +24,7 @@ end
24
24
 
25
25
  namespace :webidl do
26
26
  WEBIDL_URL = "http://dev.w3.org/2006/webapi/WebIDL/"
27
- HTML5_URL = "http://www.whatwg.org/specs/web-apps/current-work/"
27
+ HTML5_URL = "https://www.whatwg.org/specs/web-apps/current-work/"
28
28
 
29
29
  desc "Download the webidl spec to support/"
30
30
  task :download do
@@ -53,6 +53,7 @@ require "webidl/ast/exception"
53
53
  require "webidl/ast/attribute"
54
54
  require "webidl/ast/field"
55
55
  require "webidl/ast/implements_statement"
56
+ require "webidl/ast/promise_type"
56
57
 
57
58
  require "webidl/parser/debug_helper"
58
59
  require "webidl/parser/idl"
@@ -0,0 +1,13 @@
1
+ module WebIDL
2
+ module Ast
3
+ class PromiseType < Node
4
+
5
+ attr_reader :return_type
6
+
7
+ def initialize(return_type)
8
+ @return_type = return_type
9
+ end
10
+
11
+ end # PromiseType
12
+ end # Ast
13
+ end # WebIDL
@@ -37,5 +37,11 @@ module WebIDL
37
37
  end
38
38
  end
39
39
 
40
+ class ExtendedAttributeIdentList < Treetop::Runtime::SyntaxNode
41
+ def build(parent)
42
+ [key.text_value, list.text_value.split(",").map(&:strip)]
43
+ end
44
+ end
45
+
40
46
  end # ParseTree
41
47
  end # WebIDL
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  module WebIDL
2
3
  module Parser
3
4
 
@@ -18,11 +19,11 @@ module WebIDL
18
19
  / TypeDef
19
20
  / ImplementsStatement
20
21
  end
21
-
22
+
22
23
  rule CallbackOrInterface
23
- "callback" ws obj:CallbackRestOrInterface { def build(parent) obj.build(parent) end }
24
+ "callback" ws obj:CallbackRestOrInterface { def build(parent) obj.build(parent) end }
24
25
  end
25
-
26
+
26
27
  rule CallbackRestOrInterface
27
28
  CallbackRest / Interface
28
29
  end
@@ -93,7 +94,7 @@ module WebIDL
93
94
  rule ExceptionMembers
94
95
  (eal:ExtendedAttributeList ws member:ExceptionMember ws members:ExceptionMembers ws <ParseTree::InterfaceMembers>)?
95
96
  end
96
-
97
+
97
98
  rule CallbackRest
98
99
  name:identifier ws "=" ws return_type:ReturnType ws "(" ws args:ArgumentList ")" ws ";" <ParseTree::Callback>
99
100
  end
@@ -291,6 +292,7 @@ module WebIDL
291
292
  / ExtendedAttributeIdent
292
293
  / ExtendedAttributeScopedName
293
294
  / ExtendedAttributeArgList
295
+ / ExtendedAttributeIdentList
294
296
  / ExtendedAttributeNoArg
295
297
  end
296
298
 
@@ -318,6 +320,20 @@ module WebIDL
318
320
  key:identifier "=" value:(name:identifier "(" ws args:ArgumentList ws ")" <ParseTree::ExtendedAttributeArgList>) <ParseTree::ExtendedAttributeNamedArgList>
319
321
  end
320
322
 
323
+ rule ExtendedAttributeIdentList
324
+ key:identifier "=" "(" list:IdentifierList ")" <ParseTree::ExtendedAttributeIdentList>
325
+ end
326
+
327
+ rule IdentifierList
328
+ identifier Identifiers
329
+ end
330
+
331
+ rule Identifiers
332
+ ("," IdentifierList)?
333
+ end
334
+
335
+
336
+
321
337
 
322
338
  # rule ExtendedAttribute
323
339
  # "(" ws ExtendedAttributeInner ws ")" ws ExtendedAttributeRest
@@ -417,6 +433,7 @@ module WebIDL
417
433
  rule NonAnyType
418
434
  type:PrimitiveType suffix:TypeSuffix <ParseTree::Type>
419
435
  # added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
436
+ / type:PromiseType Null { def build(parent); type.build(parent); end }
420
437
  / type:"DOMString" suffix:TypeSuffix !NonSpace <ParseTree::Type>
421
438
  / "sequence" ws "<" ws type:Type ws ">" null:Null <ParseTree::SequenceType>
422
439
  / type:"object" suffix:TypeSuffix <ParseTree::Type>
@@ -424,6 +441,14 @@ module WebIDL
424
441
  / type:identifier suffix:TypeSuffix <ParseTree::Type>
425
442
  end
426
443
 
444
+ rule PromiseType
445
+ "Promise" "<" return_type:ReturnType ">" {
446
+ def build(parent)
447
+ Ast::PromiseType.new(return_type.text_value)
448
+ end
449
+ }
450
+ end
451
+
427
452
  rule ConstType
428
453
  PrimitiveType Null
429
454
  / identifier Null
@@ -1,3 +1,3 @@
1
1
  module WebIDL
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -21,23 +21,23 @@ interface HTMLFormControlsCollection : HTMLCollection {
21
21
  };
22
22
 
23
23
  interface RadioNodeList : NodeList {
24
- attribute DOMString value;
24
+ attribute DOMString value;
25
25
  };
26
26
 
27
27
  interface HTMLOptionsCollection : HTMLCollection {
28
28
  // inherits item()
29
- attribute unsigned long length; // shadows inherited length
29
+ attribute unsigned long length; // shadows inherited length
30
30
  legacycaller HTMLOptionElement? (DOMString name);
31
31
  setter creator void (unsigned long index, HTMLOptionElement? option);
32
32
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
33
33
  void remove(long index);
34
- attribute long selectedIndex;
34
+ attribute long selectedIndex;
35
35
  };
36
36
 
37
37
  interface HTMLPropertiesCollection : HTMLCollection {
38
38
  // inherits length and item()
39
39
  getter PropertyNodeList? namedItem(DOMString name); // shadows inherited namedItem()
40
- readonly attribute DOMString[] names;
40
+ [SameObject] readonly attribute DOMString[] names;
41
41
  };
42
42
 
43
43
  typedef sequence<any> PropertyValueArray;
@@ -46,7 +46,7 @@ interface PropertyNodeList : NodeList {
46
46
  PropertyValueArray getValues();
47
47
  };
48
48
 
49
- [OverrideBuiltins, Exposed=Window,Worker]
49
+ [OverrideBuiltins, Exposed=(Window,Worker)]
50
50
  interface DOMStringMap {
51
51
  getter DOMString (DOMString name);
52
52
  setter creator void (DOMString name, DOMString value);
@@ -69,27 +69,27 @@ enum DocumentReadyState { "loading", "interactive", "complete" };
69
69
  partial /*sealed*/ interface Document {
70
70
  // resource metadata management
71
71
  [PutForwards=href, Unforgeable] readonly attribute Location? location;
72
- attribute DOMString domain;
72
+ attribute DOMString domain;
73
73
  readonly attribute DOMString referrer;
74
- attribute DOMString cookie;
74
+ attribute DOMString cookie;
75
75
  readonly attribute DOMString lastModified;
76
76
  readonly attribute DocumentReadyState readyState;
77
77
 
78
78
  // DOM tree accessors
79
79
  getter object (DOMString name);
80
- attribute DOMString title;
81
- attribute DOMString dir;
82
- attribute HTMLElement? body;
80
+ attribute DOMString title;
81
+ attribute DOMString dir;
82
+ attribute HTMLElement? body;
83
83
  readonly attribute HTMLHeadElement? head;
84
- readonly attribute HTMLCollection images;
85
- readonly attribute HTMLCollection embeds;
86
- readonly attribute HTMLCollection plugins;
87
- readonly attribute HTMLCollection links;
88
- readonly attribute HTMLCollection forms;
89
- readonly attribute HTMLCollection scripts;
84
+ [SameObject] readonly attribute HTMLCollection images;
85
+ [SameObject] readonly attribute HTMLCollection embeds;
86
+ [SameObject] readonly attribute HTMLCollection plugins;
87
+ [SameObject] readonly attribute HTMLCollection links;
88
+ [SameObject] readonly attribute HTMLCollection forms;
89
+ [SameObject] readonly attribute HTMLCollection scripts;
90
90
  NodeList getElementsByName(DOMString elementName);
91
91
  NodeList getItems(optional DOMString typeNames = ""); // microdata
92
- readonly attribute DOMElementMap cssElementMap;
92
+ [SameObject] readonly attribute DOMElementMap cssElementMap;
93
93
  readonly attribute HTMLScriptElement? currentScript;
94
94
 
95
95
  // dynamic markup insertion
@@ -103,7 +103,7 @@ partial /*sealed*/ interface Document {
103
103
  readonly attribute WindowProxy? defaultView;
104
104
  readonly attribute Element? activeElement;
105
105
  boolean hasFocus();
106
- attribute DOMString designMode;
106
+ attribute DOMString designMode;
107
107
  boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
108
108
  boolean queryCommandEnabled(DOMString commandId);
109
109
  boolean queryCommandIndeterm(DOMString commandId);
@@ -125,35 +125,33 @@ partial interface XMLDocument {
125
125
 
126
126
  interface HTMLElement : Element {
127
127
  // metadata attributes
128
- attribute DOMString title;
129
- attribute DOMString lang;
130
- attribute boolean translate;
131
- attribute DOMString dir;
132
- readonly attribute DOMStringMap dataset;
128
+ attribute DOMString title;
129
+ attribute DOMString lang;
130
+ attribute boolean translate;
131
+ attribute DOMString dir;
132
+ [SameObject] readonly attribute DOMStringMap dataset;
133
133
 
134
134
  // microdata
135
- attribute boolean itemScope;
135
+ attribute boolean itemScope;
136
136
  [PutForwards=value] readonly attribute DOMSettableTokenList itemType;
137
- attribute DOMString itemId;
137
+ attribute DOMString itemId;
138
138
  [PutForwards=value] readonly attribute DOMSettableTokenList itemRef;
139
139
  [PutForwards=value] readonly attribute DOMSettableTokenList itemProp;
140
140
  readonly attribute HTMLPropertiesCollection properties;
141
- attribute any itemValue; // acts as DOMString on setting
141
+ attribute any itemValue; // acts as DOMString on setting
142
142
 
143
143
  // user interaction
144
- attribute boolean hidden;
144
+ attribute boolean hidden;
145
145
  void click();
146
- attribute long tabIndex;
146
+ attribute long tabIndex;
147
147
  void focus();
148
148
  void blur();
149
- attribute DOMString accessKey;
149
+ attribute DOMString accessKey;
150
150
  readonly attribute DOMString accessKeyLabel;
151
- attribute boolean draggable;
151
+ attribute boolean draggable;
152
152
  [PutForwards=value] readonly attribute DOMSettableTokenList dropzone;
153
- attribute DOMString contentEditable;
154
- readonly attribute boolean isContentEditable;
155
- attribute HTMLMenuElement? contextMenu;
156
- attribute boolean spellcheck;
153
+ attribute HTMLMenuElement? contextMenu;
154
+ attribute boolean spellcheck;
157
155
  void forceSpellCheck();
158
156
 
159
157
  // command API
@@ -165,6 +163,7 @@ interface HTMLElement : Element {
165
163
  readonly attribute boolean? commandChecked;
166
164
  };
167
165
  HTMLElement implements GlobalEventHandlers;
166
+ HTMLElement implements ElementContentEditable;
168
167
 
169
168
  interface HTMLUnknownElement : HTMLElement { };
170
169
 
@@ -175,22 +174,22 @@ interface HTMLHtmlElement : HTMLElement {
175
174
  interface HTMLHeadElement : HTMLElement {};
176
175
 
177
176
  interface HTMLTitleElement : HTMLElement {
178
- attribute DOMString text;
177
+ attribute DOMString text;
179
178
  };
180
179
 
181
180
  interface HTMLBaseElement : HTMLElement {
182
- attribute DOMString href;
183
- attribute DOMString target;
181
+ attribute DOMString href;
182
+ attribute DOMString target;
184
183
  };
185
184
 
186
185
  interface HTMLLinkElement : HTMLElement {
187
- attribute DOMString href;
188
- attribute DOMString crossOrigin;
189
- attribute DOMString rel;
186
+ attribute DOMString href;
187
+ attribute DOMString? crossOrigin;
188
+ attribute DOMString rel;
190
189
  readonly attribute DOMTokenList relList;
191
- attribute DOMString media;
192
- attribute DOMString hreflang;
193
- attribute DOMString type;
190
+ attribute DOMString media;
191
+ attribute DOMString hreflang;
192
+ attribute DOMString type;
194
193
  [PutForwards=value] readonly attribute DOMSettableTokenList sizes;
195
194
 
196
195
  // also has obsolete members
@@ -198,17 +197,17 @@ interface HTMLLinkElement : HTMLElement {
198
197
  HTMLLinkElement implements LinkStyle;
199
198
 
200
199
  interface HTMLMetaElement : HTMLElement {
201
- attribute DOMString name;
202
- attribute DOMString httpEquiv;
203
- attribute DOMString content;
200
+ attribute DOMString name;
201
+ attribute DOMString httpEquiv;
202
+ attribute DOMString content;
204
203
 
205
204
  // also has obsolete members
206
205
  };
207
206
 
208
207
  interface HTMLStyleElement : HTMLElement {
209
- attribute DOMString media;
210
- attribute DOMString type;
211
- attribute boolean scoped;
208
+ attribute DOMString media;
209
+ attribute DOMString type;
210
+ attribute boolean scoped;
212
211
  };
213
212
  HTMLStyleElement implements LinkStyle;
214
213
 
@@ -235,13 +234,13 @@ interface HTMLPreElement : HTMLElement {
235
234
  };
236
235
 
237
236
  interface HTMLQuoteElement : HTMLElement {
238
- attribute DOMString cite;
237
+ attribute DOMString cite;
239
238
  };
240
239
 
241
240
  interface HTMLOListElement : HTMLElement {
242
- attribute boolean reversed;
243
- attribute long start;
244
- attribute DOMString type;
241
+ attribute boolean reversed;
242
+ attribute long start;
243
+ attribute DOMString type;
245
244
 
246
245
  // also has obsolete members
247
246
  };
@@ -251,7 +250,7 @@ interface HTMLUListElement : HTMLElement {
251
250
  };
252
251
 
253
252
  interface HTMLLIElement : HTMLElement {
254
- attribute long value;
253
+ attribute long value;
255
254
 
256
255
  // also has obsolete members
257
256
  };
@@ -265,26 +264,26 @@ interface HTMLDivElement : HTMLElement {
265
264
  };
266
265
 
267
266
  interface HTMLAnchorElement : HTMLElement {
268
- attribute DOMString target;
269
- attribute DOMString download;
267
+ attribute DOMString target;
268
+ attribute DOMString download;
270
269
  [PutForwards=value] attribute DOMSettableTokenList ping;
271
- attribute DOMString rel;
270
+ attribute DOMString rel;
272
271
  readonly attribute DOMTokenList relList;
273
- attribute DOMString hreflang;
274
- attribute DOMString type;
272
+ attribute DOMString hreflang;
273
+ attribute DOMString type;
275
274
 
276
- attribute DOMString text;
275
+ attribute DOMString text;
277
276
 
278
277
  // also has obsolete members
279
278
  };
280
279
  HTMLAnchorElement implements URLUtils;
281
280
 
282
281
  interface HTMLDataElement : HTMLElement {
283
- attribute DOMString value;
282
+ attribute DOMString value;
284
283
  };
285
284
 
286
285
  interface HTMLTimeElement : HTMLElement {
287
- attribute DOMString dateTime;
286
+ attribute DOMString dateTime;
288
287
  };
289
288
 
290
289
  interface HTMLSpanElement : HTMLElement {};
@@ -294,8 +293,16 @@ interface HTMLBRElement : HTMLElement {
294
293
  };
295
294
 
296
295
  interface HTMLModElement : HTMLElement {
297
- attribute DOMString cite;
298
- attribute DOMString dateTime;
296
+ attribute DOMString cite;
297
+ attribute DOMString dateTime;
298
+ };
299
+
300
+ interface HTMLPictureElement : HTMLElement {};
301
+
302
+ partial interface HTMLSourceElement {
303
+ attribute DOMString srcset;
304
+ attribute DOMString sizes;
305
+ attribute DOMString media;
299
306
  };
300
307
 
301
308
  [NamedConstructor=Image(optional unsigned long width, optional unsigned long height)]
@@ -303,7 +310,8 @@ interface HTMLImageElement : HTMLElement {
303
310
  attribute DOMString alt;
304
311
  attribute DOMString src;
305
312
  attribute DOMString srcset;
306
- attribute DOMString crossOrigin;
313
+ attribute DOMString sizes;
314
+ attribute DOMString? crossOrigin;
307
315
  attribute DOMString useMap;
308
316
  attribute boolean isMap;
309
317
  attribute unsigned long width;
@@ -311,46 +319,50 @@ interface HTMLImageElement : HTMLElement {
311
319
  readonly attribute unsigned long naturalWidth;
312
320
  readonly attribute unsigned long naturalHeight;
313
321
  readonly attribute boolean complete;
322
+ readonly attribute DOMString currentSrc;
314
323
 
315
324
  // also has obsolete members
316
325
  };
317
326
 
318
327
  interface HTMLIFrameElement : HTMLElement {
319
- attribute DOMString src;
320
- attribute DOMString srcdoc;
321
- attribute DOMString name;
328
+ attribute DOMString src;
329
+ attribute DOMString srcdoc;
330
+ attribute DOMString name;
322
331
  [PutForwards=value] readonly attribute DOMSettableTokenList sandbox;
323
- attribute boolean seamless;
324
- attribute boolean allowFullscreen;
325
- attribute DOMString width;
326
- attribute DOMString height;
332
+ attribute boolean seamless;
333
+ attribute boolean allowFullscreen;
334
+ attribute DOMString width;
335
+ attribute DOMString height;
327
336
  readonly attribute Document? contentDocument;
328
337
  readonly attribute WindowProxy? contentWindow;
338
+ Document? getSVGDocument();
329
339
 
330
340
  // also has obsolete members
331
341
  };
332
342
 
333
343
  interface HTMLEmbedElement : HTMLElement {
334
- attribute DOMString src;
335
- attribute DOMString type;
336
- attribute DOMString width;
337
- attribute DOMString height;
344
+ attribute DOMString src;
345
+ attribute DOMString type;
346
+ attribute DOMString width;
347
+ attribute DOMString height;
348
+ Document? getSVGDocument();
338
349
  legacycaller any (any... arguments);
339
350
 
340
351
  // also has obsolete members
341
352
  };
342
353
 
343
354
  interface HTMLObjectElement : HTMLElement {
344
- attribute DOMString data;
345
- attribute DOMString type;
346
- attribute boolean typeMustMatch;
347
- attribute DOMString name;
348
- attribute DOMString useMap;
355
+ attribute DOMString data;
356
+ attribute DOMString type;
357
+ attribute boolean typeMustMatch;
358
+ attribute DOMString name;
359
+ attribute DOMString useMap;
349
360
  readonly attribute HTMLFormElement? form;
350
- attribute DOMString width;
351
- attribute DOMString height;
361
+ attribute DOMString width;
362
+ attribute DOMString height;
352
363
  readonly attribute Document? contentDocument;
353
364
  readonly attribute WindowProxy? contentWindow;
365
+ Document? getSVGDocument();
354
366
 
355
367
  readonly attribute boolean willValidate;
356
368
  readonly attribute ValidityState validity;
@@ -365,34 +377,36 @@ interface HTMLObjectElement : HTMLElement {
365
377
  };
366
378
 
367
379
  interface HTMLParamElement : HTMLElement {
368
- attribute DOMString name;
369
- attribute DOMString value;
380
+ attribute DOMString name;
381
+ attribute DOMString value;
370
382
 
371
383
  // also has obsolete members
372
384
  };
373
385
 
374
386
  interface HTMLVideoElement : HTMLMediaElement {
375
- attribute unsigned long width;
376
- attribute unsigned long height;
387
+ attribute unsigned long width;
388
+ attribute unsigned long height;
377
389
  readonly attribute unsigned long videoWidth;
378
390
  readonly attribute unsigned long videoHeight;
379
- attribute DOMString poster;
391
+ attribute DOMString poster;
380
392
  };
381
393
 
382
394
  [NamedConstructor=Audio(optional DOMString src)]
383
395
  interface HTMLAudioElement : HTMLMediaElement {};
384
396
 
385
397
  interface HTMLSourceElement : HTMLElement {
386
- attribute DOMString src;
387
- attribute DOMString type;
398
+ attribute DOMString src;
399
+ attribute DOMString type;
400
+
401
+ // also has obsolete members
388
402
  };
389
403
 
390
404
  interface HTMLTrackElement : HTMLElement {
391
- attribute DOMString kind;
392
- attribute DOMString src;
393
- attribute DOMString srclang;
394
- attribute DOMString label;
395
- attribute boolean default;
405
+ attribute DOMString kind;
406
+ attribute DOMString src;
407
+ attribute DOMString srclang;
408
+ attribute DOMString label;
409
+ attribute boolean default;
396
410
 
397
411
  const unsigned short NONE = 0;
398
412
  const unsigned short LOADING = 1;
@@ -404,21 +418,23 @@ interface HTMLTrackElement : HTMLElement {
404
418
  };
405
419
 
406
420
  enum CanPlayTypeResult { "" /* empty string */, "maybe", "probably" };
421
+ typedef (MediaStream or MediaSource or Blob) MediaProvider;
407
422
  interface HTMLMediaElement : HTMLElement {
408
423
 
409
424
  // error state
410
425
  readonly attribute MediaError? error;
411
426
 
412
427
  // network state
413
- attribute DOMString src;
428
+ attribute DOMString src;
429
+ attribute MediaProvider? srcObject;
414
430
  readonly attribute DOMString currentSrc;
415
- attribute DOMString crossOrigin;
431
+ attribute DOMString? crossOrigin;
416
432
  const unsigned short NETWORK_EMPTY = 0;
417
433
  const unsigned short NETWORK_IDLE = 1;
418
434
  const unsigned short NETWORK_LOADING = 2;
419
435
  const unsigned short NETWORK_NO_SOURCE = 3;
420
436
  readonly attribute unsigned short networkState;
421
- attribute DOMString preload;
437
+ attribute DOMString preload;
422
438
  readonly attribute TimeRanges buffered;
423
439
  void load();
424
440
  CanPlayTypeResult canPlayType(DOMString type);
@@ -433,35 +449,35 @@ interface HTMLMediaElement : HTMLElement {
433
449
  readonly attribute boolean seeking;
434
450
 
435
451
  // playback state
436
- attribute double currentTime;
452
+ attribute double currentTime;
437
453
  void fastSeek(double time);
438
454
  readonly attribute unrestricted double duration;
439
455
  Date getStartDate();
440
456
  readonly attribute boolean paused;
441
- attribute double defaultPlaybackRate;
442
- attribute double playbackRate;
457
+ attribute double defaultPlaybackRate;
458
+ attribute double playbackRate;
443
459
  readonly attribute TimeRanges played;
444
460
  readonly attribute TimeRanges seekable;
445
461
  readonly attribute boolean ended;
446
- attribute boolean autoplay;
447
- attribute boolean loop;
462
+ attribute boolean autoplay;
463
+ attribute boolean loop;
448
464
  void play();
449
465
  void pause();
450
466
 
451
467
  // media controller
452
- attribute DOMString mediaGroup;
453
- attribute MediaController? controller;
468
+ attribute DOMString mediaGroup;
469
+ attribute MediaController? controller;
454
470
 
455
471
  // controls
456
- attribute boolean controls;
457
- attribute double volume;
458
- attribute boolean muted;
459
- attribute boolean defaultMuted;
472
+ attribute boolean controls;
473
+ attribute double volume;
474
+ attribute boolean muted;
475
+ attribute boolean defaultMuted;
460
476
 
461
477
  // tracks
462
- readonly attribute AudioTrackList audioTracks;
463
- readonly attribute VideoTrackList videoTracks;
464
- readonly attribute TextTrackList textTracks;
478
+ [SameObject] readonly attribute AudioTrackList audioTracks;
479
+ [SameObject] readonly attribute VideoTrackList videoTracks;
480
+ [SameObject] readonly attribute TextTrackList textTracks;
465
481
  TextTrack addTextTrack(TextTrackKind kind, optional DOMString label = "", optional DOMString language = "");
466
482
  };
467
483
 
@@ -478,9 +494,9 @@ interface AudioTrackList : EventTarget {
478
494
  getter AudioTrack (unsigned long index);
479
495
  AudioTrack? getTrackById(DOMString id);
480
496
 
481
- attribute EventHandler onchange;
482
- attribute EventHandler onaddtrack;
483
- attribute EventHandler onremovetrack;
497
+ attribute EventHandler onchange;
498
+ attribute EventHandler onaddtrack;
499
+ attribute EventHandler onremovetrack;
484
500
  };
485
501
 
486
502
  interface AudioTrack {
@@ -488,7 +504,7 @@ interface AudioTrack {
488
504
  readonly attribute DOMString kind;
489
505
  readonly attribute DOMString label;
490
506
  readonly attribute DOMString language;
491
- attribute boolean enabled;
507
+ attribute boolean enabled;
492
508
  };
493
509
 
494
510
  interface VideoTrackList : EventTarget {
@@ -497,9 +513,9 @@ interface VideoTrackList : EventTarget {
497
513
  VideoTrack? getTrackById(DOMString id);
498
514
  readonly attribute long selectedIndex;
499
515
 
500
- attribute EventHandler onchange;
501
- attribute EventHandler onaddtrack;
502
- attribute EventHandler onremovetrack;
516
+ attribute EventHandler onchange;
517
+ attribute EventHandler onaddtrack;
518
+ attribute EventHandler onremovetrack;
503
519
  };
504
520
 
505
521
  interface VideoTrack {
@@ -507,7 +523,7 @@ interface VideoTrack {
507
523
  readonly attribute DOMString kind;
508
524
  readonly attribute DOMString label;
509
525
  readonly attribute DOMString language;
510
- attribute boolean selected;
526
+ attribute boolean selected;
511
527
  };
512
528
 
513
529
  enum MediaControllerPlaybackState { "waiting", "playing", "ended" };
@@ -518,7 +534,7 @@ interface MediaController : EventTarget {
518
534
  readonly attribute TimeRanges buffered;
519
535
  readonly attribute TimeRanges seekable;
520
536
  readonly attribute unrestricted double duration;
521
- attribute double currentTime;
537
+ attribute double currentTime;
522
538
 
523
539
  readonly attribute boolean paused;
524
540
  readonly attribute MediaControllerPlaybackState playbackState;
@@ -527,27 +543,27 @@ interface MediaController : EventTarget {
527
543
  void unpause();
528
544
  void play(); // calls play() on all media elements as well
529
545
 
530
- attribute double defaultPlaybackRate;
531
- attribute double playbackRate;
546
+ attribute double defaultPlaybackRate;
547
+ attribute double playbackRate;
532
548
 
533
- attribute double volume;
534
- attribute boolean muted;
549
+ attribute double volume;
550
+ attribute boolean muted;
535
551
 
536
- attribute EventHandler onemptied;
537
- attribute EventHandler onloadedmetadata;
538
- attribute EventHandler onloadeddata;
539
- attribute EventHandler oncanplay;
540
- attribute EventHandler oncanplaythrough;
541
- attribute EventHandler onplaying;
542
- attribute EventHandler onended;
543
- attribute EventHandler onwaiting;
552
+ attribute EventHandler onemptied;
553
+ attribute EventHandler onloadedmetadata;
554
+ attribute EventHandler onloadeddata;
555
+ attribute EventHandler oncanplay;
556
+ attribute EventHandler oncanplaythrough;
557
+ attribute EventHandler onplaying;
558
+ attribute EventHandler onended;
559
+ attribute EventHandler onwaiting;
544
560
 
545
- attribute EventHandler ondurationchange;
546
- attribute EventHandler ontimeupdate;
547
- attribute EventHandler onplay;
548
- attribute EventHandler onpause;
549
- attribute EventHandler onratechange;
550
- attribute EventHandler onvolumechange;
561
+ attribute EventHandler ondurationchange;
562
+ attribute EventHandler ontimeupdate;
563
+ attribute EventHandler onplay;
564
+ attribute EventHandler onpause;
565
+ attribute EventHandler onratechange;
566
+ attribute EventHandler onvolumechange;
551
567
  };
552
568
 
553
569
  interface TextTrackList : EventTarget {
@@ -555,9 +571,9 @@ interface TextTrackList : EventTarget {
555
571
  getter TextTrack (unsigned long index);
556
572
  TextTrack? getTrackById(DOMString id);
557
573
 
558
- attribute EventHandler onchange;
559
- attribute EventHandler onaddtrack;
560
- attribute EventHandler onremovetrack;
574
+ attribute EventHandler onchange;
575
+ attribute EventHandler onaddtrack;
576
+ attribute EventHandler onremovetrack;
561
577
  };
562
578
 
563
579
  enum TextTrackMode { "disabled", "hidden", "showing" };
@@ -570,7 +586,7 @@ interface TextTrack : EventTarget {
570
586
  readonly attribute DOMString id;
571
587
  readonly attribute DOMString inBandMetadataTrackDispatchType;
572
588
 
573
- attribute TextTrackMode mode;
589
+ attribute TextTrackMode mode;
574
590
 
575
591
  readonly attribute TextTrackCueList? cues;
576
592
  readonly attribute TextTrackCueList? activeCues;
@@ -578,7 +594,7 @@ interface TextTrack : EventTarget {
578
594
  void addCue(TextTrackCue cue);
579
595
  void removeCue(TextTrackCue cue);
580
596
 
581
- attribute EventHandler oncuechange;
597
+ attribute EventHandler oncuechange;
582
598
  };
583
599
 
584
600
  interface TextTrackCueList {
@@ -590,13 +606,13 @@ interface TextTrackCueList {
590
606
  interface TextTrackCue : EventTarget {
591
607
  readonly attribute TextTrack? track;
592
608
 
593
- attribute DOMString id;
594
- attribute double startTime;
595
- attribute double endTime;
596
- attribute boolean pauseOnExit;
609
+ attribute DOMString id;
610
+ attribute double startTime;
611
+ attribute double endTime;
612
+ attribute boolean pauseOnExit;
597
613
 
598
- attribute EventHandler onenter;
599
- attribute EventHandler onexit;
614
+ attribute EventHandler onenter;
615
+ attribute EventHandler onexit;
600
616
  };
601
617
 
602
618
  interface TimeRanges {
@@ -607,43 +623,43 @@ interface TimeRanges {
607
623
 
608
624
  [Constructor(DOMString type, optional TrackEventInit eventInitDict)]
609
625
  interface TrackEvent : Event {
610
- readonly attribute (VideoTrack or AudioTrack or TextTrack) track;
626
+ readonly attribute (VideoTrack or AudioTrack or TextTrack)? track;
611
627
  };
612
628
 
613
629
  dictionary TrackEventInit : EventInit {
614
- (VideoTrack or AudioTrack or TextTrack) track;
630
+ (VideoTrack or AudioTrack or TextTrack)? track;
615
631
  };
616
632
 
617
633
  interface HTMLMapElement : HTMLElement {
618
- attribute DOMString name;
634
+ attribute DOMString name;
619
635
  readonly attribute HTMLCollection areas;
620
636
  readonly attribute HTMLCollection images;
621
637
  };
622
638
 
623
639
  interface HTMLAreaElement : HTMLElement {
624
- attribute DOMString alt;
625
- attribute DOMString coords;
626
- attribute DOMString shape;
627
- attribute DOMString target;
628
- attribute DOMString download;
640
+ attribute DOMString alt;
641
+ attribute DOMString coords;
642
+ attribute DOMString shape;
643
+ attribute DOMString target;
644
+ attribute DOMString download;
629
645
  [PutForwards=value] attribute DOMSettableTokenList ping;
630
- attribute DOMString rel;
646
+ attribute DOMString rel;
631
647
  readonly attribute DOMTokenList relList;
632
- attribute DOMString hreflang;
633
- attribute DOMString type;
648
+ attribute DOMString hreflang;
649
+ attribute DOMString type;
634
650
 
635
651
  // also has obsolete members
636
652
  };
637
653
  HTMLAreaElement implements URLUtils;
638
654
 
639
655
  interface HTMLTableElement : HTMLElement {
640
- attribute HTMLTableCaptionElement? caption;
656
+ attribute HTMLTableCaptionElement? caption;
641
657
  HTMLElement createCaption();
642
658
  void deleteCaption();
643
- attribute HTMLTableSectionElement? tHead;
659
+ attribute HTMLTableSectionElement? tHead;
644
660
  HTMLElement createTHead();
645
661
  void deleteTHead();
646
- attribute HTMLTableSectionElement? tFoot;
662
+ attribute HTMLTableSectionElement? tFoot;
647
663
  HTMLElement createTFoot();
648
664
  void deleteTFoot();
649
665
  readonly attribute HTMLCollection tBodies;
@@ -651,7 +667,7 @@ interface HTMLTableElement : HTMLElement {
651
667
  readonly attribute HTMLCollection rows;
652
668
  HTMLElement insertRow(optional long index = -1);
653
669
  void deleteRow(long index);
654
- attribute boolean sortable;
670
+ attribute boolean sortable;
655
671
  void stopSorting();
656
672
 
657
673
  // also has obsolete members
@@ -662,7 +678,7 @@ interface HTMLTableCaptionElement : HTMLElement {
662
678
  };
663
679
 
664
680
  interface HTMLTableColElement : HTMLElement {
665
- attribute unsigned long span;
681
+ attribute unsigned long span;
666
682
 
667
683
  // also has obsolete members
668
684
  };
@@ -690,15 +706,15 @@ interface HTMLTableDataCellElement : HTMLTableCellElement {
690
706
  };
691
707
 
692
708
  interface HTMLTableHeaderCellElement : HTMLTableCellElement {
693
- attribute DOMString scope;
694
- attribute DOMString abbr;
695
- attribute DOMString sorted;
709
+ attribute DOMString scope;
710
+ attribute DOMString abbr;
711
+ attribute DOMString sorted;
696
712
  void sort();
697
713
  };
698
714
 
699
715
  interface HTMLTableCellElement : HTMLElement {
700
- attribute unsigned long colSpan;
701
- attribute unsigned long rowSpan;
716
+ attribute unsigned long colSpan;
717
+ attribute unsigned long rowSpan;
702
718
  [PutForwards=value] readonly attribute DOMSettableTokenList headers;
703
719
  readonly attribute long cellIndex;
704
720
 
@@ -707,15 +723,15 @@ interface HTMLTableCellElement : HTMLElement {
707
723
 
708
724
  [OverrideBuiltins]
709
725
  interface HTMLFormElement : HTMLElement {
710
- attribute DOMString acceptCharset;
711
- attribute DOMString action;
712
- attribute DOMString autocomplete;
713
- attribute DOMString enctype;
714
- attribute DOMString encoding;
715
- attribute DOMString method;
716
- attribute DOMString name;
717
- attribute boolean noValidate;
718
- attribute DOMString target;
726
+ attribute DOMString acceptCharset;
727
+ attribute DOMString action;
728
+ attribute DOMString autocomplete;
729
+ attribute DOMString enctype;
730
+ attribute DOMString encoding;
731
+ attribute DOMString method;
732
+ attribute DOMString name;
733
+ attribute boolean noValidate;
734
+ attribute DOMString target;
719
735
 
720
736
  readonly attribute HTMLFormControlsCollection elements;
721
737
  readonly attribute long length;
@@ -732,51 +748,51 @@ interface HTMLFormElement : HTMLElement {
732
748
 
733
749
  interface HTMLLabelElement : HTMLElement {
734
750
  readonly attribute HTMLFormElement? form;
735
- attribute DOMString htmlFor;
751
+ attribute DOMString htmlFor;
736
752
  readonly attribute HTMLElement? control;
737
753
  };
738
754
 
739
755
  interface HTMLInputElement : HTMLElement {
740
- attribute DOMString accept;
741
- attribute DOMString alt;
742
- attribute DOMString autocomplete;
743
- attribute boolean autofocus;
744
- attribute boolean defaultChecked;
745
- attribute boolean checked;
746
- attribute DOMString dirName;
747
- attribute boolean disabled;
756
+ attribute DOMString accept;
757
+ attribute DOMString alt;
758
+ attribute DOMString autocomplete;
759
+ attribute boolean autofocus;
760
+ attribute boolean defaultChecked;
761
+ attribute boolean checked;
762
+ attribute DOMString dirName;
763
+ attribute boolean disabled;
748
764
  readonly attribute HTMLFormElement? form;
749
765
  readonly attribute FileList? files;
750
- attribute DOMString formAction;
751
- attribute DOMString formEnctype;
752
- attribute DOMString formMethod;
753
- attribute boolean formNoValidate;
754
- attribute DOMString formTarget;
755
- attribute unsigned long height;
756
- attribute boolean indeterminate;
757
- attribute DOMString inputMode;
766
+ attribute DOMString formAction;
767
+ attribute DOMString formEnctype;
768
+ attribute DOMString formMethod;
769
+ attribute boolean formNoValidate;
770
+ attribute DOMString formTarget;
771
+ attribute unsigned long height;
772
+ attribute boolean indeterminate;
773
+ attribute DOMString inputMode;
758
774
  readonly attribute HTMLElement? list;
759
- attribute DOMString max;
760
- attribute long maxLength;
761
- attribute DOMString min;
762
- attribute long minLength;
763
- attribute boolean multiple;
764
- attribute DOMString name;
765
- attribute DOMString pattern;
766
- attribute DOMString placeholder;
767
- attribute boolean readOnly;
768
- attribute boolean required;
769
- attribute unsigned long size;
770
- attribute DOMString src;
771
- attribute DOMString step;
772
- attribute DOMString type;
773
- attribute DOMString defaultValue;
775
+ attribute DOMString max;
776
+ attribute long maxLength;
777
+ attribute DOMString min;
778
+ attribute long minLength;
779
+ attribute boolean multiple;
780
+ attribute DOMString name;
781
+ attribute DOMString pattern;
782
+ attribute DOMString placeholder;
783
+ attribute boolean readOnly;
784
+ attribute boolean required;
785
+ attribute unsigned long size;
786
+ attribute DOMString src;
787
+ attribute DOMString step;
788
+ attribute DOMString type;
789
+ attribute DOMString defaultValue;
774
790
  [TreatNullAs=EmptyString] attribute DOMString value;
775
- attribute Date? valueAsDate;
776
- attribute unrestricted double valueAsNumber;
777
- attribute double valueLow;
778
- attribute double valueHigh;
779
- attribute unsigned long width;
791
+ attribute Date? valueAsDate;
792
+ attribute unrestricted double valueAsNumber;
793
+ attribute double valueLow;
794
+ attribute double valueHigh;
795
+ attribute unsigned long width;
780
796
 
781
797
  void stepUp(optional long n = 1);
782
798
  void stepDown(optional long n = 1);
@@ -791,9 +807,9 @@ interface HTMLInputElement : HTMLElement {
791
807
  readonly attribute NodeList labels;
792
808
 
793
809
  void select();
794
- attribute unsigned long selectionStart;
795
- attribute unsigned long selectionEnd;
796
- attribute DOMString selectionDirection;
810
+ attribute unsigned long selectionStart;
811
+ attribute unsigned long selectionEnd;
812
+ attribute DOMString selectionDirection;
797
813
  void setRangeText(DOMString replacement);
798
814
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
799
815
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
@@ -802,18 +818,18 @@ interface HTMLInputElement : HTMLElement {
802
818
  };
803
819
 
804
820
  interface HTMLButtonElement : HTMLElement {
805
- attribute boolean autofocus;
806
- attribute boolean disabled;
821
+ attribute boolean autofocus;
822
+ attribute boolean disabled;
807
823
  readonly attribute HTMLFormElement? form;
808
- attribute DOMString formAction;
809
- attribute DOMString formEnctype;
810
- attribute DOMString formMethod;
811
- attribute boolean formNoValidate;
812
- attribute DOMString formTarget;
813
- attribute DOMString name;
814
- attribute DOMString type;
815
- attribute DOMString value;
816
- attribute HTMLMenuElement? menu;
824
+ attribute DOMString formAction;
825
+ attribute DOMString formEnctype;
826
+ attribute DOMString formMethod;
827
+ attribute boolean formNoValidate;
828
+ attribute DOMString formTarget;
829
+ attribute DOMString name;
830
+ attribute DOMString type;
831
+ attribute DOMString value;
832
+ attribute HTMLMenuElement? menu;
817
833
 
818
834
  readonly attribute boolean willValidate;
819
835
  readonly attribute ValidityState validity;
@@ -826,19 +842,19 @@ interface HTMLButtonElement : HTMLElement {
826
842
  };
827
843
 
828
844
  interface HTMLSelectElement : HTMLElement {
829
- attribute DOMString autocomplete;
830
- attribute boolean autofocus;
831
- attribute boolean disabled;
845
+ attribute DOMString autocomplete;
846
+ attribute boolean autofocus;
847
+ attribute boolean disabled;
832
848
  readonly attribute HTMLFormElement? form;
833
- attribute boolean multiple;
834
- attribute DOMString name;
835
- attribute boolean required;
836
- attribute unsigned long size;
849
+ attribute boolean multiple;
850
+ attribute DOMString name;
851
+ attribute boolean required;
852
+ attribute unsigned long size;
837
853
 
838
854
  readonly attribute DOMString type;
839
855
 
840
856
  readonly attribute HTMLOptionsCollection options;
841
- attribute unsigned long length;
857
+ attribute unsigned long length;
842
858
  getter Element? item(unsigned long index);
843
859
  HTMLOptionElement? namedItem(DOMString name);
844
860
  void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
@@ -847,8 +863,8 @@ interface HTMLSelectElement : HTMLElement {
847
863
  setter creator void (unsigned long index, HTMLOptionElement? option);
848
864
 
849
865
  readonly attribute HTMLCollection selectedOptions;
850
- attribute long selectedIndex;
851
- attribute DOMString value;
866
+ attribute long selectedIndex;
867
+ attribute DOMString value;
852
868
 
853
869
  readonly attribute boolean willValidate;
854
870
  readonly attribute ValidityState validity;
@@ -865,42 +881,42 @@ interface HTMLDataListElement : HTMLElement {
865
881
  };
866
882
 
867
883
  interface HTMLOptGroupElement : HTMLElement {
868
- attribute boolean disabled;
869
- attribute DOMString label;
884
+ attribute boolean disabled;
885
+ attribute DOMString label;
870
886
  };
871
887
 
872
888
  [NamedConstructor=Option(optional DOMString text = "", optional DOMString value, optional boolean defaultSelected = false, optional boolean selected = false)]
873
889
  interface HTMLOptionElement : HTMLElement {
874
- attribute boolean disabled;
890
+ attribute boolean disabled;
875
891
  readonly attribute HTMLFormElement? form;
876
- attribute DOMString label;
877
- attribute boolean defaultSelected;
878
- attribute boolean selected;
879
- attribute DOMString value;
892
+ attribute DOMString label;
893
+ attribute boolean defaultSelected;
894
+ attribute boolean selected;
895
+ attribute DOMString value;
880
896
 
881
- attribute DOMString text;
897
+ attribute DOMString text;
882
898
  readonly attribute long index;
883
899
  };
884
900
 
885
901
  interface HTMLTextAreaElement : HTMLElement {
886
- attribute DOMString autocomplete;
887
- attribute boolean autofocus;
888
- attribute unsigned long cols;
889
- attribute DOMString dirName;
890
- attribute boolean disabled;
902
+ attribute DOMString autocomplete;
903
+ attribute boolean autofocus;
904
+ attribute unsigned long cols;
905
+ attribute DOMString dirName;
906
+ attribute boolean disabled;
891
907
  readonly attribute HTMLFormElement? form;
892
- attribute DOMString inputMode;
893
- attribute long maxLength;
894
- attribute long minLength;
895
- attribute DOMString name;
896
- attribute DOMString placeholder;
897
- attribute boolean readOnly;
898
- attribute boolean required;
899
- attribute unsigned long rows;
900
- attribute DOMString wrap;
908
+ attribute DOMString inputMode;
909
+ attribute long maxLength;
910
+ attribute long minLength;
911
+ attribute DOMString name;
912
+ attribute DOMString placeholder;
913
+ attribute boolean readOnly;
914
+ attribute boolean required;
915
+ attribute unsigned long rows;
916
+ attribute DOMString wrap;
901
917
 
902
918
  readonly attribute DOMString type;
903
- attribute DOMString defaultValue;
919
+ attribute DOMString defaultValue;
904
920
  [TreatNullAs=EmptyString] attribute DOMString value;
905
921
  readonly attribute unsigned long textLength;
906
922
 
@@ -914,21 +930,21 @@ interface HTMLTextAreaElement : HTMLElement {
914
930
  readonly attribute NodeList labels;
915
931
 
916
932
  void select();
917
- attribute unsigned long selectionStart;
918
- attribute unsigned long selectionEnd;
919
- attribute DOMString selectionDirection;
933
+ attribute unsigned long selectionStart;
934
+ attribute unsigned long selectionEnd;
935
+ attribute DOMString selectionDirection;
920
936
  void setRangeText(DOMString replacement);
921
937
  void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve");
922
938
  void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
923
939
  };
924
940
 
925
941
  interface HTMLKeygenElement : HTMLElement {
926
- attribute boolean autofocus;
927
- attribute DOMString challenge;
928
- attribute boolean disabled;
942
+ attribute boolean autofocus;
943
+ attribute DOMString challenge;
944
+ attribute boolean disabled;
929
945
  readonly attribute HTMLFormElement? form;
930
- attribute DOMString keytype;
931
- attribute DOMString name;
946
+ attribute DOMString keytype;
947
+ attribute DOMString name;
932
948
 
933
949
  readonly attribute DOMString type;
934
950
 
@@ -945,11 +961,11 @@ interface HTMLKeygenElement : HTMLElement {
945
961
  interface HTMLOutputElement : HTMLElement {
946
962
  [PutForwards=value] readonly attribute DOMSettableTokenList htmlFor;
947
963
  readonly attribute HTMLFormElement? form;
948
- attribute DOMString name;
964
+ attribute DOMString name;
949
965
 
950
966
  readonly attribute DOMString type;
951
- attribute DOMString defaultValue;
952
- attribute DOMString value;
967
+ attribute DOMString defaultValue;
968
+ attribute DOMString value;
953
969
 
954
970
  readonly attribute boolean willValidate;
955
971
  readonly attribute ValidityState validity;
@@ -962,33 +978,33 @@ interface HTMLOutputElement : HTMLElement {
962
978
  };
963
979
 
964
980
  interface HTMLProgressElement : HTMLElement {
965
- attribute double value;
966
- attribute double max;
981
+ attribute double value;
982
+ attribute double max;
967
983
  readonly attribute double position;
968
984
  readonly attribute NodeList labels;
969
985
  };
970
986
 
971
987
  interface HTMLMeterElement : HTMLElement {
972
- attribute double value;
973
- attribute double min;
974
- attribute double max;
975
- attribute double low;
976
- attribute double high;
977
- attribute double optimum;
988
+ attribute double value;
989
+ attribute double min;
990
+ attribute double max;
991
+ attribute double low;
992
+ attribute double high;
993
+ attribute double optimum;
978
994
  readonly attribute NodeList labels;
979
995
  };
980
996
 
981
997
  interface HTMLFieldSetElement : HTMLElement {
982
- attribute boolean disabled;
998
+ attribute boolean disabled;
983
999
  readonly attribute HTMLFormElement? form;
984
- attribute DOMString name;
1000
+ attribute DOMString name;
985
1001
 
986
1002
  readonly attribute DOMString type;
987
1003
 
988
1004
  readonly attribute HTMLFormControlsCollection elements;
989
1005
 
990
1006
  readonly attribute boolean willValidate;
991
- readonly attribute ValidityState validity;
1007
+ [SameObject] readonly attribute ValidityState validity;
992
1008
  readonly attribute DOMString validationMessage;
993
1009
  boolean checkValidity();
994
1010
  boolean reportValidity();
@@ -1012,6 +1028,7 @@ dictionary AutocompleteErrorEventInit : EventInit {
1012
1028
  AutocompleteErrorReason reason;
1013
1029
  };
1014
1030
 
1031
+
1015
1032
  enum SelectionMode {
1016
1033
  "select",
1017
1034
  "start",
@@ -1034,24 +1051,24 @@ interface ValidityState {
1034
1051
  };
1035
1052
 
1036
1053
  interface HTMLDetailsElement : HTMLElement {
1037
- attribute boolean open;
1054
+ attribute boolean open;
1038
1055
  };
1039
1056
 
1040
1057
  interface HTMLMenuElement : HTMLElement {
1041
- attribute DOMString type;
1042
- attribute DOMString label;
1058
+ attribute DOMString type;
1059
+ attribute DOMString label;
1043
1060
 
1044
1061
  // also has obsolete members
1045
1062
  };
1046
1063
 
1047
1064
  interface HTMLMenuItemElement : HTMLElement {
1048
- attribute DOMString type;
1049
- attribute DOMString label;
1050
- attribute DOMString icon;
1051
- attribute boolean disabled;
1052
- attribute boolean checked;
1053
- attribute DOMString radiogroup;
1054
- attribute boolean default;
1065
+ attribute DOMString type;
1066
+ attribute DOMString label;
1067
+ attribute DOMString icon;
1068
+ attribute boolean disabled;
1069
+ attribute boolean checked;
1070
+ attribute DOMString radiogroup;
1071
+ attribute boolean default;
1055
1072
  readonly attribute HTMLElement? command;
1056
1073
  };
1057
1074
 
@@ -1065,21 +1082,21 @@ dictionary RelatedEventInit : EventInit {
1065
1082
  };
1066
1083
 
1067
1084
  interface HTMLDialogElement : HTMLElement {
1068
- attribute boolean open;
1069
- attribute DOMString returnValue;
1085
+ attribute boolean open;
1086
+ attribute DOMString returnValue;
1070
1087
  void show(optional (MouseEvent or Element) anchor);
1071
1088
  void showModal(optional (MouseEvent or Element) anchor);
1072
1089
  void close(optional DOMString returnValue);
1073
1090
  };
1074
1091
 
1075
1092
  interface HTMLScriptElement : HTMLElement {
1076
- attribute DOMString src;
1077
- attribute DOMString type;
1078
- attribute DOMString charset;
1079
- attribute boolean async;
1080
- attribute boolean defer;
1081
- attribute DOMString crossOrigin;
1082
- attribute DOMString text;
1093
+ attribute DOMString src;
1094
+ attribute DOMString type;
1095
+ attribute DOMString charset;
1096
+ attribute boolean async;
1097
+ attribute boolean defer;
1098
+ attribute DOMString? crossOrigin;
1099
+ attribute DOMString text;
1083
1100
 
1084
1101
  // also has obsolete members
1085
1102
  };
@@ -1091,8 +1108,8 @@ interface HTMLTemplateElement : HTMLElement {
1091
1108
  typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext;
1092
1109
 
1093
1110
  interface HTMLCanvasElement : HTMLElement {
1094
- attribute unsigned long width;
1095
- attribute unsigned long height;
1111
+ attribute unsigned long width;
1112
+ attribute unsigned long height;
1096
1113
 
1097
1114
  RenderingContext? getContext(DOMString contextId, any... arguments);
1098
1115
  boolean probablySupportsContext(DOMString contextId, any... arguments);
@@ -1104,7 +1121,7 @@ interface HTMLCanvasElement : HTMLElement {
1104
1121
  void toBlob(FileCallback? _callback, optional DOMString type, any... arguments);
1105
1122
  };
1106
1123
 
1107
- [Exposed=Window,Worker]
1124
+ [Exposed=(Window,Worker)]
1108
1125
  interface CanvasProxy {
1109
1126
  void setContext(RenderingContext context);
1110
1127
  };
@@ -1118,15 +1135,18 @@ typedef (HTMLImageElement or
1118
1135
 
1119
1136
  enum CanvasFillRule { "nonzero", "evenodd" };
1120
1137
 
1121
- [Constructor(optional unsigned long width, unsigned long height), Exposed=Window,Worker]
1138
+
1139
+ [Constructor(),
1140
+ Constructor(unsigned long width, unsigned long height),
1141
+ Exposed=(Window,Worker)]
1122
1142
  interface CanvasRenderingContext2D {
1123
1143
 
1124
1144
  // back-reference to the canvas
1125
1145
  readonly attribute HTMLCanvasElement canvas;
1126
1146
 
1127
1147
  // canvas dimensions
1128
- attribute unsigned long width;
1129
- attribute unsigned long height;
1148
+ attribute unsigned long width;
1149
+ attribute unsigned long height;
1130
1150
 
1131
1151
  // for contexts that aren't directly fixed to a specific canvas
1132
1152
  void commit(); // push the image to the output bitmap
@@ -1136,7 +1156,7 @@ interface CanvasRenderingContext2D {
1136
1156
  void restore(); // pop state stack and restore state
1137
1157
 
1138
1158
  // transformations (default transform is the identity matrix)
1139
- attribute SVGMatrix currentTransform;
1159
+ attribute SVGMatrix currentTransform;
1140
1160
  void scale(unrestricted double x, unrestricted double y);
1141
1161
  void rotate(unrestricted double angle);
1142
1162
  void translate(unrestricted double x, unrestricted double y);
@@ -1145,24 +1165,24 @@ interface CanvasRenderingContext2D {
1145
1165
  void resetTransform();
1146
1166
 
1147
1167
  // compositing
1148
- attribute unrestricted double globalAlpha; // (default 1.0)
1149
- attribute DOMString globalCompositeOperation; // (default source-over)
1168
+ attribute unrestricted double globalAlpha; // (default 1.0)
1169
+ attribute DOMString globalCompositeOperation; // (default source-over)
1150
1170
 
1151
1171
  // image smoothing
1152
- attribute boolean imageSmoothingEnabled; // (default true)
1172
+ attribute boolean imageSmoothingEnabled; // (default true)
1153
1173
 
1154
- // colors and styles (see also the CanvasDrawingStyles interface)
1155
- attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
1156
- attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
1174
+ // colours and styles (see also the CanvasDrawingStyles interface)
1175
+ attribute (DOMString or CanvasGradient or CanvasPattern) strokeStyle; // (default black)
1176
+ attribute (DOMString or CanvasGradient or CanvasPattern) fillStyle; // (default black)
1157
1177
  CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
1158
1178
  CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
1159
1179
  CanvasPattern createPattern(CanvasImageSource image, [TreatNullAs=EmptyString] DOMString repetition);
1160
1180
 
1161
1181
  // shadows
1162
- attribute unrestricted double shadowOffsetX; // (default 0)
1163
- attribute unrestricted double shadowOffsetY; // (default 0)
1164
- attribute unrestricted double shadowBlur; // (default 0)
1165
- attribute DOMString shadowColor; // (default transparent black)
1182
+ attribute unrestricted double shadowOffsetX; // (default 0)
1183
+ attribute unrestricted double shadowOffsetY; // (default 0)
1184
+ attribute unrestricted double shadowBlur; // (default 0)
1185
+ attribute DOMString shadowColor; // (default transparent black)
1166
1186
 
1167
1187
  // rects
1168
1188
  void clearRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
@@ -1175,10 +1195,8 @@ interface CanvasRenderingContext2D {
1175
1195
  void fill(Path2D path, optional CanvasFillRule fillRule = "nonzero");
1176
1196
  void stroke();
1177
1197
  void stroke(Path2D path);
1178
- void drawSystemFocusRing(Element element);
1179
- void drawSystemFocusRing(Path2D path, Element element);
1180
- boolean drawCustomFocusRing(Element element);
1181
- boolean drawCustomFocusRing(Path2D path, Element element);
1198
+ void drawFocusIfNeeded(Element element);
1199
+ void drawFocusIfNeeded(Path2D path, Element element);
1182
1200
  void scrollPathIntoView();
1183
1201
  void scrollPathIntoView(Path2D path);
1184
1202
  void clip(optional CanvasFillRule fillRule = "nonzero");
@@ -1202,6 +1220,7 @@ interface CanvasRenderingContext2D {
1202
1220
  // hit regions
1203
1221
  void addHitRegion(optional HitRegionOptions options);
1204
1222
  void removeHitRegion(DOMString id);
1223
+ void clearHitRegions();
1205
1224
 
1206
1225
  // pixel manipulation
1207
1226
  ImageData createImageData(double sw, double sh);
@@ -1213,27 +1232,27 @@ interface CanvasRenderingContext2D {
1213
1232
  CanvasRenderingContext2D implements CanvasDrawingStyles;
1214
1233
  CanvasRenderingContext2D implements CanvasPathMethods;
1215
1234
 
1216
- [NoInterfaceObject, Exposed=Window,Worker]
1235
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1217
1236
  interface CanvasDrawingStyles {
1218
1237
  // line caps/joins
1219
- attribute unrestricted double lineWidth; // (default 1)
1220
- attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
1221
- attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
1222
- attribute unrestricted double miterLimit; // (default 10)
1238
+ attribute unrestricted double lineWidth; // (default 1)
1239
+ attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
1240
+ attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
1241
+ attribute unrestricted double miterLimit; // (default 10)
1223
1242
 
1224
1243
  // dashed lines
1225
1244
  void setLineDash(sequence<unrestricted double> segments); // default empty
1226
1245
  sequence<unrestricted double> getLineDash();
1227
- attribute unrestricted double lineDashOffset;
1246
+ attribute unrestricted double lineDashOffset;
1228
1247
 
1229
1248
  // text
1230
- attribute DOMString font; // (default 10px sans-serif)
1231
- attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
1232
- attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
1233
- attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
1249
+ attribute DOMString font; // (default 10px sans-serif)
1250
+ attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
1251
+ attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
1252
+ attribute DOMString direction; // "ltr", "rtl", "inherit" (default: "inherit")
1234
1253
  };
1235
1254
 
1236
- [NoInterfaceObject, Exposed=Window,Worker]
1255
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1237
1256
  interface CanvasPathMethods {
1238
1257
  // shared path API methods
1239
1258
  void closePath();
@@ -1241,26 +1260,26 @@ interface CanvasPathMethods {
1241
1260
  void lineTo(unrestricted double x, unrestricted double y);
1242
1261
  void quadraticCurveTo(unrestricted double cpx, unrestricted double cpy, unrestricted double x, unrestricted double y);
1243
1262
  void bezierCurveTo(unrestricted double cp1x, unrestricted double cp1y, unrestricted double cp2x, unrestricted double cp2y, unrestricted double x, unrestricted double y);
1244
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
1245
- void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation);
1263
+ void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radius);
1264
+ void arcTo(unrestricted double x1, unrestricted double y1, unrestricted double x2, unrestricted double y2, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation);
1246
1265
  void rect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h);
1247
- void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1248
- void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1266
+ void arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1267
+ void ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
1249
1268
  };
1250
1269
 
1251
- [Exposed=Window,Worker]
1270
+ [Exposed=(Window,Worker)]
1252
1271
  interface CanvasGradient {
1253
1272
  // opaque object
1254
1273
  void addColorStop(double offset, DOMString color);
1255
1274
  };
1256
1275
 
1257
- [Exposed=Window,Worker]
1276
+ [Exposed=(Window,Worker)]
1258
1277
  interface CanvasPattern {
1259
1278
  // opaque object
1260
1279
  void setTransform(SVGMatrix transform);
1261
1280
  };
1262
1281
 
1263
- [Exposed=Window,Worker]
1282
+ [Exposed=(Window,Worker)]
1264
1283
  interface TextMetrics {
1265
1284
  // x-direction
1266
1285
  readonly attribute double width; // advance width
@@ -1282,7 +1301,7 @@ interface TextMetrics {
1282
1301
  dictionary HitRegionOptions {
1283
1302
  Path2D? path = null;
1284
1303
  CanvasFillRule fillRule = "nonzero";
1285
- DOMString id = "";
1304
+ DOMString id = "";
1286
1305
  DOMString? parentID = null;
1287
1306
  DOMString cursor = "inherit";
1288
1307
  // for control-backed regions:
@@ -1294,21 +1313,21 @@ dictionary HitRegionOptions {
1294
1313
 
1295
1314
  [Constructor(unsigned long sw, unsigned long sh),
1296
1315
  Constructor(Uint8ClampedArray data, unsigned long sw, optional unsigned long sh),
1297
- Exposed=Window,Worker]
1316
+ Exposed=(Window,Worker)]
1298
1317
  interface ImageData {
1299
1318
  readonly attribute unsigned long width;
1300
1319
  readonly attribute unsigned long height;
1301
1320
  readonly attribute Uint8ClampedArray data;
1302
1321
  };
1303
1322
 
1304
- [Constructor(optional Element scope), Exposed=Window,Worker]
1323
+ [Constructor(optional Element scope), Exposed=(Window,Worker)]
1305
1324
  interface DrawingStyle { };
1306
1325
  DrawingStyle implements CanvasDrawingStyles;
1307
1326
 
1308
1327
  [Constructor,
1309
1328
  Constructor(Path2D path),
1310
1329
  Constructor(Path2D[] paths, optional CanvasFillRule fillRule = "nonzero"),
1311
- Constructor(DOMString d), Exposed=Window,Worker]
1330
+ Constructor(DOMString d), Exposed=(Window,Worker)]
1312
1331
  interface Path2D {
1313
1332
  void addPath(Path2D path, optional SVGMatrix? transformation = null);
1314
1333
  void addPathByStrokingPath(Path2D path, CanvasDrawingStyles styles, optional SVGMatrix? transformation = null);
@@ -1331,20 +1350,26 @@ partial interface Touch {
1331
1350
  readonly attribute DOMString? region;
1332
1351
  };
1333
1352
 
1353
+ [NoInterfaceObject]
1354
+ interface ElementContentEditable {
1355
+ attribute DOMString contentEditable;
1356
+ readonly attribute boolean isContentEditable;
1357
+ };
1358
+
1334
1359
  interface DataTransfer {
1335
- attribute DOMString dropEffect;
1336
- attribute DOMString effectAllowed;
1360
+ attribute DOMString dropEffect;
1361
+ attribute DOMString effectAllowed;
1337
1362
 
1338
- readonly attribute DataTransferItemList items;
1363
+ [SameObject] readonly attribute DataTransferItemList items;
1339
1364
 
1340
1365
  void setDragImage(Element image, long x, long y);
1341
1366
 
1342
1367
  /* old interface */
1343
- readonly attribute DOMString[] types;
1368
+ [SameObject] readonly attribute DOMString[] types;
1344
1369
  DOMString getData(DOMString format);
1345
1370
  void setData(DOMString format, DOMString data);
1346
1371
  void clearData(optional DOMString format);
1347
- readonly attribute FileList files;
1372
+ [SameObject] readonly attribute FileList files;
1348
1373
  };
1349
1374
 
1350
1375
  interface DataTransferItemList {
@@ -1374,13 +1399,13 @@ dictionary DragEventInit : MouseEventInit {
1374
1399
  DataTransfer? dataTransfer;
1375
1400
  };
1376
1401
 
1377
- [PrimaryGlobal]
1402
+ [PrimaryGlobal]
1378
1403
  /*sealed*/ interface Window : EventTarget {
1379
1404
  // the current browsing context
1380
1405
  [Unforgeable] readonly attribute WindowProxy window;
1381
1406
  [Replaceable] readonly attribute WindowProxy self;
1382
1407
  [Unforgeable] readonly attribute Document document;
1383
- attribute DOMString name;
1408
+ attribute DOMString name;
1384
1409
  [PutForwards=href, Unforgeable] readonly attribute Location location;
1385
1410
  readonly attribute History history;
1386
1411
  [Replaceable] readonly attribute BarProp locationbar;
@@ -1389,7 +1414,7 @@ dictionary DragEventInit : MouseEventInit {
1389
1414
  [Replaceable] readonly attribute BarProp scrollbars;
1390
1415
  [Replaceable] readonly attribute BarProp statusbar;
1391
1416
  [Replaceable] readonly attribute BarProp toolbar;
1392
- attribute DOMString status;
1417
+ attribute DOMString status;
1393
1418
  void close();
1394
1419
  readonly attribute boolean closed;
1395
1420
  void stop();
@@ -1400,16 +1425,16 @@ dictionary DragEventInit : MouseEventInit {
1400
1425
  [Replaceable] readonly attribute WindowProxy frames;
1401
1426
  [Replaceable] readonly attribute unsigned long length;
1402
1427
  [Unforgeable] readonly attribute WindowProxy top;
1403
- attribute any opener;
1404
- readonly attribute WindowProxy parent;
1428
+ attribute any opener;
1429
+ [Replaceable] readonly attribute WindowProxy parent;
1405
1430
  readonly attribute Element? frameElement;
1406
- WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", optional DOMString features = "", optional boolean replace = false);
1431
+ WindowProxy open(optional DOMString url = "about:blank", optional DOMString target = "_blank", [TreatNullAs=EmptyString] optional DOMString features = "", optional boolean replace = false);
1407
1432
  getter WindowProxy (unsigned long index);
1408
1433
  getter object (DOMString name);
1409
1434
 
1410
1435
  // the user agent
1411
- readonly attribute Navigator navigator;
1412
- [Replaceable] readonly attribute External external;
1436
+ readonly attribute Navigator navigator;
1437
+ [Replaceable, SameObject] readonly attribute External external;
1413
1438
  readonly attribute ApplicationCache applicationCache;
1414
1439
 
1415
1440
  // user prompts
@@ -1418,7 +1443,10 @@ dictionary DragEventInit : MouseEventInit {
1418
1443
  boolean confirm(optional DOMString message = "");
1419
1444
  DOMString? prompt(optional DOMString message = "", optional DOMString default = "");
1420
1445
  void print();
1421
- any showModalDialog(DOMString url, optional any argument);
1446
+ any showModalDialog(DOMString url, optional any argument); // deprecated
1447
+
1448
+ long requestAnimationFrame(FrameRequestCallback callback);
1449
+ void cancelAnimationFrame(long handle);
1422
1450
 
1423
1451
  void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer);
1424
1452
 
@@ -1428,7 +1456,7 @@ Window implements GlobalEventHandlers;
1428
1456
  Window implements WindowEventHandlers;
1429
1457
 
1430
1458
  interface BarProp {
1431
- attribute boolean visible;
1459
+ attribute boolean visible;
1432
1460
  };
1433
1461
 
1434
1462
  interface History {
@@ -1448,7 +1476,7 @@ interface History {
1448
1476
  };
1449
1477
  Location implements URLUtils;
1450
1478
 
1451
- [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=Window,Worker]
1479
+ [Constructor(DOMString type, optional PopStateEventInit eventInitDict), Exposed=(Window,Worker)]
1452
1480
  interface PopStateEvent : Event {
1453
1481
  readonly attribute any state;
1454
1482
  };
@@ -1457,7 +1485,7 @@ dictionary PopStateEventInit : EventInit {
1457
1485
  any state;
1458
1486
  };
1459
1487
 
1460
- [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=Window,Worker]
1488
+ [Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)]
1461
1489
  interface HashChangeEvent : Event {
1462
1490
  readonly attribute DOMString oldURL;
1463
1491
  readonly attribute DOMString newURL;
@@ -1468,7 +1496,7 @@ dictionary HashChangeEventInit : EventInit {
1468
1496
  DOMString newURL;
1469
1497
  };
1470
1498
 
1471
- [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=Window,Worker]
1499
+ [Constructor(DOMString type, optional PageTransitionEventInit eventInitDict), Exposed=(Window,Worker)]
1472
1500
  interface PageTransitionEvent : Event {
1473
1501
  readonly attribute boolean persisted;
1474
1502
  };
@@ -1478,10 +1506,10 @@ dictionary PageTransitionEventInit : EventInit {
1478
1506
  };
1479
1507
 
1480
1508
  interface BeforeUnloadEvent : Event {
1481
- attribute DOMString returnValue;
1509
+ attribute DOMString returnValue;
1482
1510
  };
1483
1511
 
1484
- [Exposed=Window,SharedWorker]
1512
+ [Exposed=(Window,SharedWorker)]
1485
1513
  interface ApplicationCache : EventTarget {
1486
1514
 
1487
1515
  // update status
@@ -1499,22 +1527,22 @@ interface ApplicationCache : EventTarget {
1499
1527
  void swapCache();
1500
1528
 
1501
1529
  // events
1502
- attribute EventHandler onchecking;
1503
- attribute EventHandler onerror;
1504
- attribute EventHandler onnoupdate;
1505
- attribute EventHandler ondownloading;
1506
- attribute EventHandler onprogress;
1507
- attribute EventHandler onupdateready;
1508
- attribute EventHandler oncached;
1509
- attribute EventHandler onobsolete;
1530
+ attribute EventHandler onchecking;
1531
+ attribute EventHandler onerror;
1532
+ attribute EventHandler onnoupdate;
1533
+ attribute EventHandler ondownloading;
1534
+ attribute EventHandler onprogress;
1535
+ attribute EventHandler onupdateready;
1536
+ attribute EventHandler oncached;
1537
+ attribute EventHandler onobsolete;
1510
1538
  };
1511
1539
 
1512
- [NoInterfaceObject, Exposed=Window,Worker]
1540
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1513
1541
  interface NavigatorOnLine {
1514
1542
  readonly attribute boolean onLine;
1515
1543
  };
1516
1544
 
1517
- [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=Window,Worker]
1545
+ [Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
1518
1546
  interface ErrorEvent : Event {
1519
1547
  readonly attribute DOMString message;
1520
1548
  readonly attribute DOMString filename;
@@ -1545,96 +1573,96 @@ typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
1545
1573
 
1546
1574
  [NoInterfaceObject]
1547
1575
  interface GlobalEventHandlers {
1548
- attribute EventHandler onabort;
1549
- attribute EventHandler onautocomplete;
1550
- attribute EventHandler onautocompleteerror;
1551
- attribute EventHandler onblur;
1552
- attribute EventHandler oncancel;
1553
- attribute EventHandler oncanplay;
1554
- attribute EventHandler oncanplaythrough;
1555
- attribute EventHandler onchange;
1556
- attribute EventHandler onclick;
1557
- attribute EventHandler onclose;
1558
- attribute EventHandler oncontextmenu;
1559
- attribute EventHandler oncuechange;
1560
- attribute EventHandler ondblclick;
1561
- attribute EventHandler ondrag;
1562
- attribute EventHandler ondragend;
1563
- attribute EventHandler ondragenter;
1564
- attribute EventHandler ondragexit;
1565
- attribute EventHandler ondragleave;
1566
- attribute EventHandler ondragover;
1567
- attribute EventHandler ondragstart;
1568
- attribute EventHandler ondrop;
1569
- attribute EventHandler ondurationchange;
1570
- attribute EventHandler onemptied;
1571
- attribute EventHandler onended;
1572
- attribute OnErrorEventHandler onerror;
1573
- attribute EventHandler onfocus;
1574
- attribute EventHandler oninput;
1575
- attribute EventHandler oninvalid;
1576
- attribute EventHandler onkeydown;
1577
- attribute EventHandler onkeypress;
1578
- attribute EventHandler onkeyup;
1579
- attribute EventHandler onload;
1580
- attribute EventHandler onloadeddata;
1581
- attribute EventHandler onloadedmetadata;
1582
- attribute EventHandler onloadstart;
1583
- attribute EventHandler onmousedown;
1576
+ attribute EventHandler onabort;
1577
+ attribute EventHandler onautocomplete;
1578
+ attribute EventHandler onautocompleteerror;
1579
+ attribute EventHandler onblur;
1580
+ attribute EventHandler oncancel;
1581
+ attribute EventHandler oncanplay;
1582
+ attribute EventHandler oncanplaythrough;
1583
+ attribute EventHandler onchange;
1584
+ attribute EventHandler onclick;
1585
+ attribute EventHandler onclose;
1586
+ attribute EventHandler oncontextmenu;
1587
+ attribute EventHandler oncuechange;
1588
+ attribute EventHandler ondblclick;
1589
+ attribute EventHandler ondrag;
1590
+ attribute EventHandler ondragend;
1591
+ attribute EventHandler ondragenter;
1592
+ attribute EventHandler ondragexit;
1593
+ attribute EventHandler ondragleave;
1594
+ attribute EventHandler ondragover;
1595
+ attribute EventHandler ondragstart;
1596
+ attribute EventHandler ondrop;
1597
+ attribute EventHandler ondurationchange;
1598
+ attribute EventHandler onemptied;
1599
+ attribute EventHandler onended;
1600
+ attribute OnErrorEventHandler onerror;
1601
+ attribute EventHandler onfocus;
1602
+ attribute EventHandler oninput;
1603
+ attribute EventHandler oninvalid;
1604
+ attribute EventHandler onkeydown;
1605
+ attribute EventHandler onkeypress;
1606
+ attribute EventHandler onkeyup;
1607
+ attribute EventHandler onload;
1608
+ attribute EventHandler onloadeddata;
1609
+ attribute EventHandler onloadedmetadata;
1610
+ attribute EventHandler onloadstart;
1611
+ attribute EventHandler onmousedown;
1584
1612
  [LenientThis] attribute EventHandler onmouseenter;
1585
1613
  [LenientThis] attribute EventHandler onmouseleave;
1586
- attribute EventHandler onmousemove;
1587
- attribute EventHandler onmouseout;
1588
- attribute EventHandler onmouseover;
1589
- attribute EventHandler onmouseup;
1590
- attribute EventHandler onmousewheel;
1591
- attribute EventHandler onpause;
1592
- attribute EventHandler onplay;
1593
- attribute EventHandler onplaying;
1594
- attribute EventHandler onprogress;
1595
- attribute EventHandler onratechange;
1596
- attribute EventHandler onreset;
1597
- attribute EventHandler onresize;
1598
- attribute EventHandler onscroll;
1599
- attribute EventHandler onseeked;
1600
- attribute EventHandler onseeking;
1601
- attribute EventHandler onselect;
1602
- attribute EventHandler onshow;
1603
- attribute EventHandler onsort;
1604
- attribute EventHandler onstalled;
1605
- attribute EventHandler onsubmit;
1606
- attribute EventHandler onsuspend;
1607
- attribute EventHandler ontimeupdate;
1608
- attribute EventHandler ontoggle;
1609
- attribute EventHandler onvolumechange;
1610
- attribute EventHandler onwaiting;
1614
+ attribute EventHandler onmousemove;
1615
+ attribute EventHandler onmouseout;
1616
+ attribute EventHandler onmouseover;
1617
+ attribute EventHandler onmouseup;
1618
+ attribute EventHandler onmousewheel;
1619
+ attribute EventHandler onpause;
1620
+ attribute EventHandler onplay;
1621
+ attribute EventHandler onplaying;
1622
+ attribute EventHandler onprogress;
1623
+ attribute EventHandler onratechange;
1624
+ attribute EventHandler onreset;
1625
+ attribute EventHandler onresize;
1626
+ attribute EventHandler onscroll;
1627
+ attribute EventHandler onseeked;
1628
+ attribute EventHandler onseeking;
1629
+ attribute EventHandler onselect;
1630
+ attribute EventHandler onshow;
1631
+ attribute EventHandler onsort;
1632
+ attribute EventHandler onstalled;
1633
+ attribute EventHandler onsubmit;
1634
+ attribute EventHandler onsuspend;
1635
+ attribute EventHandler ontimeupdate;
1636
+ attribute EventHandler ontoggle;
1637
+ attribute EventHandler onvolumechange;
1638
+ attribute EventHandler onwaiting;
1611
1639
  };
1612
1640
 
1613
1641
  [NoInterfaceObject]
1614
1642
  interface WindowEventHandlers {
1615
- attribute EventHandler onafterprint;
1616
- attribute EventHandler onbeforeprint;
1617
- attribute OnBeforeUnloadEventHandler onbeforeunload;
1618
- attribute EventHandler onhashchange;
1619
- attribute EventHandler onlanguagechange;
1620
- attribute EventHandler onmessage;
1621
- attribute EventHandler onoffline;
1622
- attribute EventHandler ononline;
1623
- attribute EventHandler onpagehide;
1624
- attribute EventHandler onpageshow;
1625
- attribute EventHandler onpopstate;
1626
- attribute EventHandler onstorage;
1627
- attribute EventHandler onunload;
1628
- };
1629
-
1630
- [NoInterfaceObject, Exposed=Window,Worker]
1643
+ attribute EventHandler onafterprint;
1644
+ attribute EventHandler onbeforeprint;
1645
+ attribute OnBeforeUnloadEventHandler onbeforeunload;
1646
+ attribute EventHandler onhashchange;
1647
+ attribute EventHandler onlanguagechange;
1648
+ attribute EventHandler onmessage;
1649
+ attribute EventHandler onoffline;
1650
+ attribute EventHandler ononline;
1651
+ attribute EventHandler onpagehide;
1652
+ attribute EventHandler onpageshow;
1653
+ attribute EventHandler onpopstate;
1654
+ attribute EventHandler onstorage;
1655
+ attribute EventHandler onunload;
1656
+ };
1657
+
1658
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1631
1659
  interface WindowBase64 {
1632
1660
  DOMString btoa(DOMString btoa);
1633
1661
  DOMString atob(DOMString atob);
1634
1662
  };
1635
1663
  Window implements WindowBase64;
1636
1664
 
1637
- [NoInterfaceObject, Exposed=Window,Worker]
1665
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1638
1666
  interface WindowTimers {
1639
1667
  long setTimeout(Function handler, optional long timeout = 0, any... arguments);
1640
1668
  long setTimeout(DOMString handler, optional long timeout = 0, any... arguments);
@@ -1648,7 +1676,7 @@ Window implements WindowTimers;
1648
1676
  [NoInterfaceObject]
1649
1677
  interface WindowModal {
1650
1678
  readonly attribute any dialogArguments;
1651
- attribute any returnValue;
1679
+ attribute any returnValue;
1652
1680
  };
1653
1681
 
1654
1682
  interface Navigator {
@@ -1661,7 +1689,7 @@ Navigator implements NavigatorContentUtils;
1661
1689
  Navigator implements NavigatorStorageUtils;
1662
1690
  Navigator implements NavigatorPlugins;
1663
1691
 
1664
- [NoInterfaceObject, Exposed=Window,Worker]
1692
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1665
1693
  interface NavigatorID {
1666
1694
  readonly attribute DOMString appCodeName; // constant "Mozilla"
1667
1695
  readonly attribute DOMString appName;
@@ -1672,7 +1700,7 @@ interface NavigatorID {
1672
1700
  readonly attribute DOMString userAgent;
1673
1701
  };
1674
1702
 
1675
- [NoInterfaceObject, Exposed=Window,Worker]
1703
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1676
1704
  interface NavigatorLanguage {
1677
1705
  readonly attribute DOMString? language;
1678
1706
  readonly attribute DOMString[] languages;
@@ -1697,8 +1725,8 @@ interface NavigatorStorageUtils {
1697
1725
 
1698
1726
  [NoInterfaceObject]
1699
1727
  interface NavigatorPlugins {
1700
- readonly attribute PluginArray plugins;
1701
- readonly attribute MimeTypeArray mimeTypes;
1728
+ [SameObject] readonly attribute PluginArray plugins;
1729
+ [SameObject] readonly attribute MimeTypeArray mimeTypes;
1702
1730
  readonly attribute boolean javaEnabled;
1703
1731
  };
1704
1732
 
@@ -1736,7 +1764,7 @@ interface External {
1736
1764
  unsigned long IsSearchProviderInstalled(DOMString engineURL);
1737
1765
  };
1738
1766
 
1739
- [Exposed=Window,Worker]
1767
+ [Exposed=(Window,Worker)]
1740
1768
  interface ImageBitmap {
1741
1769
  readonly attribute unsigned long width;
1742
1770
  readonly attribute unsigned long height;
@@ -1750,32 +1778,34 @@ typedef (HTMLImageElement or
1750
1778
  CanvasRenderingContext2D or
1751
1779
  ImageBitmap) ImageBitmapSource;
1752
1780
 
1753
- [NoInterfaceObject, Exposed=Window,Worker]
1781
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1754
1782
  interface ImageBitmapFactories {
1755
- Promise createImageBitmap(ImageBitmapSource image, optional long sx, long sy, long sw, long sh);
1783
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image);
1784
+ Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh);
1756
1785
  };
1757
1786
  Window implements ImageBitmapFactories;
1758
1787
  WorkerGlobalScope implements ImageBitmapFactories;
1759
1788
 
1760
- [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=Window,Worker]
1789
+ [Constructor(DOMString type, optional MessageEventInit eventInitDict), Exposed=(Window,Worker)]
1761
1790
  interface MessageEvent : Event {
1762
1791
  readonly attribute any data;
1763
1792
  readonly attribute DOMString origin;
1764
1793
  readonly attribute DOMString lastEventId;
1765
1794
  readonly attribute (WindowProxy or MessagePort)? source;
1766
1795
  readonly attribute MessagePort[]? ports;
1796
+
1797
+ void initMessageEvent(DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, any dataArg, DOMString originArg, DOMString lastEventIdArg, (WindowProxy or MessagePort) sourceArg, sequence<MessagePort>? portsArg);
1767
1798
  };
1768
1799
 
1769
1800
  dictionary MessageEventInit : EventInit {
1770
1801
  any data;
1771
1802
  DOMString origin;
1772
1803
  DOMString lastEventId;
1773
- DOMString channel;
1774
1804
  (WindowProxy or MessagePort)? source;
1775
1805
  sequence<MessagePort> ports;
1776
1806
  };
1777
1807
 
1778
- [Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=Window,Worker]
1808
+ [Constructor(DOMString url, optional EventSourceInit eventSourceInitDict), Exposed=(Window,Worker)]
1779
1809
  interface EventSource : EventTarget {
1780
1810
  readonly attribute DOMString url;
1781
1811
  readonly attribute boolean withCredentials;
@@ -1787,9 +1817,9 @@ interface EventSource : EventTarget {
1787
1817
  readonly attribute unsigned short readyState;
1788
1818
 
1789
1819
  // networking
1790
- attribute EventHandler onopen;
1791
- attribute EventHandler onmessage;
1792
- attribute EventHandler onerror;
1820
+ attribute EventHandler onopen;
1821
+ attribute EventHandler onmessage;
1822
+ attribute EventHandler onerror;
1793
1823
  void close();
1794
1824
  };
1795
1825
 
@@ -1798,7 +1828,7 @@ dictionary EventSourceInit {
1798
1828
  };
1799
1829
 
1800
1830
  enum BinaryType { "blob", "arraybuffer" };
1801
- [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=Window,Worker]
1831
+ [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=(Window,Worker)]
1802
1832
  interface WebSocket : EventTarget {
1803
1833
  readonly attribute DOMString url;
1804
1834
 
@@ -1811,23 +1841,23 @@ interface WebSocket : EventTarget {
1811
1841
  readonly attribute unsigned long bufferedAmount;
1812
1842
 
1813
1843
  // networking
1814
- attribute EventHandler onopen;
1815
- attribute EventHandler onerror;
1816
- attribute EventHandler onclose;
1844
+ attribute EventHandler onopen;
1845
+ attribute EventHandler onerror;
1846
+ attribute EventHandler onclose;
1817
1847
  readonly attribute DOMString extensions;
1818
1848
  readonly attribute DOMString protocol;
1819
- void close([Clamp] optional unsigned short code, optional DOMString reason);
1849
+ void close([Clamp] optional unsigned short code, optional USVString reason);
1820
1850
 
1821
1851
  // messaging
1822
- attribute EventHandler onmessage;
1823
- attribute BinaryType binaryType;
1824
- void send(DOMString data);
1852
+ attribute EventHandler onmessage;
1853
+ attribute BinaryType binaryType;
1854
+ void send(USVString data);
1825
1855
  void send(Blob data);
1826
1856
  void send(ArrayBuffer data);
1827
1857
  void send(ArrayBufferView data);
1828
1858
  };
1829
1859
 
1830
- [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=Window,Worker]
1860
+ [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=(Window,Worker)]
1831
1861
  interface CloseEvent : Event {
1832
1862
  readonly attribute boolean wasClean;
1833
1863
  readonly attribute unsigned short code;
@@ -1840,24 +1870,24 @@ dictionary CloseEventInit : EventInit {
1840
1870
  DOMString reason;
1841
1871
  };
1842
1872
 
1843
- [Constructor, Exposed=Window,Worker]
1873
+ [Constructor, Exposed=(Window,Worker)]
1844
1874
  interface MessageChannel {
1845
1875
  readonly attribute MessagePort port1;
1846
1876
  readonly attribute MessagePort port2;
1847
1877
  };
1848
1878
 
1849
- [Exposed=Window,Worker]
1879
+ [Exposed=(Window,Worker)]
1850
1880
  interface MessagePort : EventTarget {
1851
1881
  void postMessage(any message, optional sequence<Transferable> transfer);
1852
1882
  void start();
1853
1883
  void close();
1854
1884
 
1855
1885
  // event handlers
1856
- attribute EventHandler onmessage;
1886
+ attribute EventHandler onmessage;
1857
1887
  };
1858
1888
  // MessagePort implements Transferable;
1859
1889
 
1860
- [Constructor, Exposed=Window,Worker]
1890
+ [Constructor, Exposed=(Window,Worker)]
1861
1891
  interface PortCollection {
1862
1892
  void add(MessagePort port);
1863
1893
  void remove(MessagePort port);
@@ -1867,63 +1897,63 @@ interface PortCollection {
1867
1897
 
1868
1898
  callback PortCollectionCallback = void (MessagePort port);
1869
1899
 
1870
- [Constructor(DOMString channel), Exposed=Window,Worker]
1900
+ [Constructor(DOMString channel), Exposed=(Window,Worker)]
1871
1901
  interface BroadcastChannel : EventTarget {
1872
1902
  readonly attribute DOMString name;
1873
1903
  void postMessage(any message);
1874
1904
  void close();
1875
- attribute EventHandler onmessage;
1905
+ attribute EventHandler onmessage;
1876
1906
  };
1877
1907
 
1878
- [Exposed=Worker]
1908
+ [Exposed=Worker]
1879
1909
  interface WorkerGlobalScope : EventTarget {
1880
1910
  readonly attribute WorkerGlobalScope self;
1881
1911
  readonly attribute WorkerLocation location;
1882
1912
 
1883
1913
  void close();
1884
- attribute OnErrorEventHandler onerror;
1885
- attribute EventHandler onlanguagechange;
1886
- attribute EventHandler onoffline;
1887
- attribute EventHandler ononline;
1914
+ attribute OnErrorEventHandler onerror;
1915
+ attribute EventHandler onlanguagechange;
1916
+ attribute EventHandler onoffline;
1917
+ attribute EventHandler ononline;
1888
1918
 
1889
1919
  // also has additional members in a partial interface
1890
1920
  };
1891
1921
 
1892
- [Global=Worker,DedicatedWorker]
1922
+ [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker]
1893
1923
  /*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
1894
1924
  void postMessage(any message, optional sequence<Transferable> transfer);
1895
- attribute EventHandler onmessage;
1925
+ attribute EventHandler onmessage;
1896
1926
  };
1897
1927
 
1898
- [Global=Worker,SharedWorker]
1928
+ [Global=(Worker,SharedWorker),Exposed=SharedWorker]
1899
1929
  /*sealed*/ interface SharedWorkerGlobalScope : WorkerGlobalScope {
1900
1930
  readonly attribute DOMString name;
1901
1931
  readonly attribute ApplicationCache applicationCache;
1902
- attribute EventHandler onconnect;
1932
+ attribute EventHandler onconnect;
1903
1933
  };
1904
1934
 
1905
- [NoInterfaceObject, Exposed=Window,Worker]
1935
+ [NoInterfaceObject, Exposed=(Window,Worker)]
1906
1936
  interface AbstractWorker {
1907
- attribute EventHandler onerror;
1937
+ attribute EventHandler onerror;
1908
1938
  };
1909
1939
 
1910
- [Constructor(DOMString scriptURL), Exposed=Window,Worker]
1940
+ [Constructor(DOMString scriptURL), Exposed=(Window,Worker)]
1911
1941
  interface Worker : EventTarget {
1912
1942
  void terminate();
1913
1943
 
1914
1944
  void postMessage(any message, optional sequence<Transferable> transfer);
1915
- attribute EventHandler onmessage;
1945
+ attribute EventHandler onmessage;
1916
1946
  };
1917
1947
  Worker implements AbstractWorker;
1918
1948
 
1919
- [Constructor(DOMString scriptURL, optional DOMString name), Exposed=Window,Worker]
1949
+ [Constructor(DOMString scriptURL, optional DOMString name), Exposed=(Window,Worker)]
1920
1950
  interface SharedWorker : EventTarget {
1921
1951
  readonly attribute MessagePort port;
1922
1952
  };
1923
1953
  SharedWorker implements AbstractWorker;
1924
1954
 
1925
1955
  [Exposed=Worker]
1926
- partial interface WorkerGlobalScope {
1956
+ partial interface WorkerGlobalScope { // not obsolete
1927
1957
  void importScripts(DOMString... urls);
1928
1958
  readonly attribute WorkerNavigator navigator;
1929
1959
  };
@@ -1979,53 +2009,53 @@ dictionary StorageEventInit : EventInit {
1979
2009
  };
1980
2010
 
1981
2011
  interface HTMLAppletElement : HTMLElement {
1982
- attribute DOMString align;
1983
- attribute DOMString alt;
1984
- attribute DOMString archive;
1985
- attribute DOMString code;
1986
- attribute DOMString codeBase;
1987
- attribute DOMString height;
1988
- attribute unsigned long hspace;
1989
- attribute DOMString name;
1990
- attribute DOMString _object; // the underscore is not part of the identifier
1991
- attribute unsigned long vspace;
1992
- attribute DOMString width;
2012
+ attribute DOMString align;
2013
+ attribute DOMString alt;
2014
+ attribute DOMString archive;
2015
+ attribute DOMString code;
2016
+ attribute DOMString codeBase;
2017
+ attribute DOMString height;
2018
+ attribute unsigned long hspace;
2019
+ attribute DOMString name;
2020
+ attribute DOMString _object; // the underscore is not part of the identifier
2021
+ attribute unsigned long vspace;
2022
+ attribute DOMString width;
1993
2023
  };
1994
2024
 
1995
2025
  interface HTMLMarqueeElement : HTMLElement {
1996
- attribute DOMString behavior;
1997
- attribute DOMString bgColor;
1998
- attribute DOMString direction;
1999
- attribute DOMString height;
2000
- attribute unsigned long hspace;
2001
- attribute long loop;
2002
- attribute unsigned long scrollAmount;
2003
- attribute unsigned long scrollDelay;
2004
- attribute boolean trueSpeed;
2005
- attribute unsigned long vspace;
2006
- attribute DOMString width;
2007
-
2008
- attribute EventHandler onbounce;
2009
- attribute EventHandler onfinish;
2010
- attribute EventHandler onstart;
2026
+ attribute DOMString behavior;
2027
+ attribute DOMString bgColor;
2028
+ attribute DOMString direction;
2029
+ attribute DOMString height;
2030
+ attribute unsigned long hspace;
2031
+ attribute long loop;
2032
+ attribute unsigned long scrollAmount;
2033
+ attribute unsigned long scrollDelay;
2034
+ attribute boolean trueSpeed;
2035
+ attribute unsigned long vspace;
2036
+ attribute DOMString width;
2037
+
2038
+ attribute EventHandler onbounce;
2039
+ attribute EventHandler onfinish;
2040
+ attribute EventHandler onstart;
2011
2041
 
2012
2042
  void start();
2013
2043
  void stop();
2014
2044
  };
2015
2045
 
2016
2046
  interface HTMLFrameSetElement : HTMLElement {
2017
- attribute DOMString cols;
2018
- attribute DOMString rows;
2047
+ attribute DOMString cols;
2048
+ attribute DOMString rows;
2019
2049
  };
2020
2050
  HTMLFrameSetElement implements WindowEventHandlers;
2021
2051
 
2022
2052
  interface HTMLFrameElement : HTMLElement {
2023
- attribute DOMString name;
2024
- attribute DOMString scrolling;
2025
- attribute DOMString src;
2026
- attribute DOMString frameBorder;
2027
- attribute DOMString longDesc;
2028
- attribute boolean noResize;
2053
+ attribute DOMString name;
2054
+ attribute DOMString scrolling;
2055
+ attribute DOMString src;
2056
+ attribute DOMString frameBorder;
2057
+ attribute DOMString longDesc;
2058
+ attribute boolean noResize;
2029
2059
  readonly attribute Document? contentDocument;
2030
2060
  readonly attribute WindowProxy? contentWindow;
2031
2061
 
@@ -2034,15 +2064,15 @@ interface HTMLFrameElement : HTMLElement {
2034
2064
  };
2035
2065
 
2036
2066
  partial interface HTMLAnchorElement {
2037
- attribute DOMString coords;
2038
- attribute DOMString charset;
2039
- attribute DOMString name;
2040
- attribute DOMString rev;
2041
- attribute DOMString shape;
2067
+ attribute DOMString coords;
2068
+ attribute DOMString charset;
2069
+ attribute DOMString name;
2070
+ attribute DOMString rev;
2071
+ attribute DOMString shape;
2042
2072
  };
2043
2073
 
2044
2074
  partial interface HTMLAreaElement {
2045
- attribute boolean noHref;
2075
+ attribute boolean noHref;
2046
2076
  };
2047
2077
 
2048
2078
  partial interface HTMLBodyElement {
@@ -2051,155 +2081,155 @@ partial interface HTMLBodyElement {
2051
2081
  [TreatNullAs=EmptyString] attribute DOMString vLink;
2052
2082
  [TreatNullAs=EmptyString] attribute DOMString aLink;
2053
2083
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2054
- attribute DOMString background;
2084
+ attribute DOMString background;
2055
2085
  };
2056
2086
 
2057
2087
  partial interface HTMLBRElement {
2058
- attribute DOMString clear;
2088
+ attribute DOMString clear;
2059
2089
  };
2060
2090
 
2061
2091
  partial interface HTMLTableCaptionElement {
2062
- attribute DOMString align;
2092
+ attribute DOMString align;
2063
2093
  };
2064
2094
 
2065
2095
  partial interface HTMLTableColElement {
2066
- attribute DOMString align;
2067
- attribute DOMString ch;
2068
- attribute DOMString chOff;
2069
- attribute DOMString vAlign;
2070
- attribute DOMString width;
2096
+ attribute DOMString align;
2097
+ attribute DOMString ch;
2098
+ attribute DOMString chOff;
2099
+ attribute DOMString vAlign;
2100
+ attribute DOMString width;
2071
2101
  };
2072
2102
 
2073
2103
  interface HTMLDirectoryElement : HTMLElement {
2074
- attribute boolean compact;
2104
+ attribute boolean compact;
2075
2105
  };
2076
2106
 
2077
2107
  partial interface HTMLDivElement {
2078
- attribute DOMString align;
2108
+ attribute DOMString align;
2079
2109
  };
2080
2110
 
2081
2111
  partial interface HTMLDListElement {
2082
- attribute boolean compact;
2112
+ attribute boolean compact;
2083
2113
  };
2084
2114
 
2085
2115
  partial interface HTMLEmbedElement {
2086
- attribute DOMString align;
2087
- attribute DOMString name;
2116
+ attribute DOMString align;
2117
+ attribute DOMString name;
2088
2118
  };
2089
2119
 
2090
2120
  interface HTMLFontElement : HTMLElement {
2091
2121
  [TreatNullAs=EmptyString] attribute DOMString color;
2092
- attribute DOMString face;
2093
- attribute DOMString size;
2122
+ attribute DOMString face;
2123
+ attribute DOMString size;
2094
2124
  };
2095
2125
 
2096
2126
  partial interface HTMLHeadingElement {
2097
- attribute DOMString align;
2127
+ attribute DOMString align;
2098
2128
  };
2099
2129
 
2100
2130
  partial interface HTMLHRElement {
2101
- attribute DOMString align;
2102
- attribute DOMString color;
2103
- attribute boolean noShade;
2104
- attribute DOMString size;
2105
- attribute DOMString width;
2131
+ attribute DOMString align;
2132
+ attribute DOMString color;
2133
+ attribute boolean noShade;
2134
+ attribute DOMString size;
2135
+ attribute DOMString width;
2106
2136
  };
2107
2137
 
2108
2138
  partial interface HTMLHtmlElement {
2109
- attribute DOMString version;
2139
+ attribute DOMString version;
2110
2140
  };
2111
2141
 
2112
2142
  partial interface HTMLIFrameElement {
2113
- attribute DOMString align;
2114
- attribute DOMString scrolling;
2115
- attribute DOMString frameBorder;
2116
- attribute DOMString longDesc;
2143
+ attribute DOMString align;
2144
+ attribute DOMString scrolling;
2145
+ attribute DOMString frameBorder;
2146
+ attribute DOMString longDesc;
2117
2147
 
2118
2148
  [TreatNullAs=EmptyString] attribute DOMString marginHeight;
2119
2149
  [TreatNullAs=EmptyString] attribute DOMString marginWidth;
2120
2150
  };
2121
2151
 
2122
2152
  partial interface HTMLImageElement {
2123
- attribute DOMString name;
2124
- attribute DOMString lowsrc;
2125
- attribute DOMString align;
2126
- attribute unsigned long hspace;
2127
- attribute unsigned long vspace;
2128
- attribute DOMString longDesc;
2153
+ attribute DOMString name;
2154
+ attribute DOMString lowsrc;
2155
+ attribute DOMString align;
2156
+ attribute unsigned long hspace;
2157
+ attribute unsigned long vspace;
2158
+ attribute DOMString longDesc;
2129
2159
 
2130
2160
  [TreatNullAs=EmptyString] attribute DOMString border;
2131
2161
  };
2132
2162
 
2133
2163
  partial interface HTMLInputElement {
2134
- attribute DOMString align;
2135
- attribute DOMString useMap;
2164
+ attribute DOMString align;
2165
+ attribute DOMString useMap;
2136
2166
  };
2137
2167
 
2138
2168
  partial interface HTMLLegendElement {
2139
- attribute DOMString align;
2169
+ attribute DOMString align;
2140
2170
  };
2141
2171
 
2142
2172
  partial interface HTMLLIElement {
2143
- attribute DOMString type;
2173
+ attribute DOMString type;
2144
2174
  };
2145
2175
 
2146
2176
  partial interface HTMLLinkElement {
2147
- attribute DOMString charset;
2148
- attribute DOMString rev;
2149
- attribute DOMString target;
2177
+ attribute DOMString charset;
2178
+ attribute DOMString rev;
2179
+ attribute DOMString target;
2150
2180
  };
2151
2181
 
2152
2182
  partial interface HTMLMenuElement {
2153
- attribute boolean compact;
2183
+ attribute boolean compact;
2154
2184
  };
2155
2185
 
2156
2186
  partial interface HTMLMetaElement {
2157
- attribute DOMString scheme;
2187
+ attribute DOMString scheme;
2158
2188
  };
2159
2189
 
2160
2190
  partial interface HTMLObjectElement {
2161
- attribute DOMString align;
2162
- attribute DOMString archive;
2163
- attribute DOMString code;
2164
- attribute boolean declare;
2165
- attribute unsigned long hspace;
2166
- attribute DOMString standby;
2167
- attribute unsigned long vspace;
2168
- attribute DOMString codeBase;
2169
- attribute DOMString codeType;
2191
+ attribute DOMString align;
2192
+ attribute DOMString archive;
2193
+ attribute DOMString code;
2194
+ attribute boolean declare;
2195
+ attribute unsigned long hspace;
2196
+ attribute DOMString standby;
2197
+ attribute unsigned long vspace;
2198
+ attribute DOMString codeBase;
2199
+ attribute DOMString codeType;
2170
2200
 
2171
2201
  [TreatNullAs=EmptyString] attribute DOMString border;
2172
2202
  };
2173
2203
 
2174
2204
  partial interface HTMLOListElement {
2175
- attribute boolean compact;
2205
+ attribute boolean compact;
2176
2206
  };
2177
2207
 
2178
2208
  partial interface HTMLParagraphElement {
2179
- attribute DOMString align;
2209
+ attribute DOMString align;
2180
2210
  };
2181
2211
 
2182
2212
  partial interface HTMLParamElement {
2183
- attribute DOMString type;
2184
- attribute DOMString valueType;
2213
+ attribute DOMString type;
2214
+ attribute DOMString valueType;
2185
2215
  };
2186
2216
 
2187
2217
  partial interface HTMLPreElement {
2188
- attribute long width;
2218
+ attribute long width;
2189
2219
  };
2190
2220
 
2191
2221
  partial interface HTMLScriptElement {
2192
- attribute DOMString event;
2193
- attribute DOMString htmlFor;
2222
+ attribute DOMString event;
2223
+ attribute DOMString htmlFor;
2194
2224
  };
2195
2225
 
2196
2226
  partial interface HTMLTableElement {
2197
- attribute DOMString align;
2198
- attribute DOMString border;
2199
- attribute DOMString frame;
2200
- attribute DOMString rules;
2201
- attribute DOMString summary;
2202
- attribute DOMString width;
2227
+ attribute DOMString align;
2228
+ attribute DOMString border;
2229
+ attribute DOMString frame;
2230
+ attribute DOMString rules;
2231
+ attribute DOMString summary;
2232
+ attribute DOMString width;
2203
2233
 
2204
2234
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2205
2235
  [TreatNullAs=EmptyString] attribute DOMString cellPadding;
@@ -2207,42 +2237,42 @@ partial interface HTMLTableElement {
2207
2237
  };
2208
2238
 
2209
2239
  partial interface HTMLTableSectionElement {
2210
- attribute DOMString align;
2211
- attribute DOMString ch;
2212
- attribute DOMString chOff;
2213
- attribute DOMString vAlign;
2240
+ attribute DOMString align;
2241
+ attribute DOMString ch;
2242
+ attribute DOMString chOff;
2243
+ attribute DOMString vAlign;
2214
2244
  };
2215
2245
 
2216
2246
  partial interface HTMLTableCellElement {
2217
- attribute DOMString align;
2218
- attribute DOMString axis;
2219
- attribute DOMString height;
2220
- attribute DOMString width;
2247
+ attribute DOMString align;
2248
+ attribute DOMString axis;
2249
+ attribute DOMString height;
2250
+ attribute DOMString width;
2221
2251
 
2222
- attribute DOMString ch;
2223
- attribute DOMString chOff;
2224
- attribute boolean noWrap;
2225
- attribute DOMString vAlign;
2252
+ attribute DOMString ch;
2253
+ attribute DOMString chOff;
2254
+ attribute boolean noWrap;
2255
+ attribute DOMString vAlign;
2226
2256
 
2227
2257
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2228
2258
  };
2229
2259
 
2230
2260
  partial interface HTMLTableDataCellElement {
2231
- attribute DOMString abbr;
2261
+ attribute DOMString abbr;
2232
2262
  };
2233
2263
 
2234
2264
  partial interface HTMLTableRowElement {
2235
- attribute DOMString align;
2236
- attribute DOMString ch;
2237
- attribute DOMString chOff;
2238
- attribute DOMString vAlign;
2265
+ attribute DOMString align;
2266
+ attribute DOMString ch;
2267
+ attribute DOMString chOff;
2268
+ attribute DOMString vAlign;
2239
2269
 
2240
2270
  [TreatNullAs=EmptyString] attribute DOMString bgColor;
2241
2271
  };
2242
2272
 
2243
2273
  partial interface HTMLUListElement {
2244
- attribute boolean compact;
2245
- attribute DOMString type;
2274
+ attribute boolean compact;
2275
+ attribute DOMString type;
2246
2276
  };
2247
2277
 
2248
2278
  partial interface Document {