webidl 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/LICENSE +1 -1
- data/README.md +3 -3
- data/lib/webidl.rb +3 -0
- data/lib/webidl/ast/dictionary.rb +2 -1
- data/lib/webidl/ast/enum.rb +16 -0
- data/lib/webidl/parse_tree/argument.rb +13 -8
- data/lib/webidl/parse_tree/definitions.rb +1 -1
- data/lib/webidl/parse_tree/dictionary.rb +8 -4
- data/lib/webidl/parse_tree/enum.rb +11 -0
- data/lib/webidl/parse_tree/interface.rb +7 -9
- data/lib/webidl/parse_tree/partial_dictionary.rb +22 -0
- data/lib/webidl/parse_tree/partial_interface.rb +8 -0
- data/lib/webidl/parse_tree/type.rb +8 -1
- data/lib/webidl/parser/idl.rb +8029 -0
- data/lib/webidl/parser/idl.treetop +152 -34
- data/lib/webidl/version.rb +1 -1
- data/spec/fixtures/html5.idl +182 -170
- metadata +41 -12
@@ -11,11 +11,12 @@ module WebIDL
|
|
11
11
|
rule Definition
|
12
12
|
Module
|
13
13
|
/ Interface
|
14
|
-
/ PartialInterface
|
15
14
|
/ Dictionary
|
15
|
+
/ Partial
|
16
16
|
/ Exception
|
17
17
|
/ TypeDef
|
18
18
|
/ ImplementsStatement
|
19
|
+
/ Enum
|
19
20
|
end
|
20
21
|
|
21
22
|
rule Module
|
@@ -26,8 +27,17 @@ module WebIDL
|
|
26
27
|
"interface" ws name:identifier ws inherits:Inheritance ws "{" ws members:InterfaceMembers ws "}" ws ";" <ParseTree::Interface>
|
27
28
|
end
|
28
29
|
|
30
|
+
rule Partial
|
31
|
+
"partial" ws defn:PartialDefinition { def build(parent) defn.build(parent) end }
|
32
|
+
end
|
33
|
+
|
34
|
+
rule PartialDefinition
|
35
|
+
PartialInterface / PartialDictionary
|
36
|
+
end
|
37
|
+
|
38
|
+
# like an interface, but no inheritance
|
29
39
|
rule PartialInterface
|
30
|
-
"
|
40
|
+
"interface" ws name:identifier ws "{" ws members:InterfaceMembers ws "}" ws ";" <ParseTree::PartialInterface>
|
31
41
|
end
|
32
42
|
|
33
43
|
rule Inheritance
|
@@ -48,21 +58,27 @@ module WebIDL
|
|
48
58
|
"dictionary" ws name:identifier ws inherits:Inheritance ws "{" ws members:DictionaryMembers ws "}" ws ";" <ParseTree::Dictionary>
|
49
59
|
end
|
50
60
|
|
61
|
+
# Like a dictionary, but no inheritance
|
62
|
+
rule PartialDictionary
|
63
|
+
"dictionary" ws name:identifier ws "{" ws members:DictionaryMembers ws "}" ws ";" <ParseTree::PartialDictionary>
|
64
|
+
end
|
65
|
+
|
51
66
|
# [11] DictionaryMembers → ExtendedAttributeList DictionaryMember DictionaryMembers
|
52
67
|
# | ε
|
53
68
|
rule DictionaryMembers
|
54
69
|
(eal:ExtendedAttributeList ws member:DictionaryMember ws members:DictionaryMembers <ParseTree::DictionaryMembers>)?
|
55
70
|
end
|
56
71
|
|
57
|
-
# [12] DictionaryMember → Type identifier DefaultValue ";"
|
58
72
|
rule DictionaryMember
|
59
|
-
type:Type ws name:identifier ws default:
|
73
|
+
type:Type ws name:identifier ws default:Default ws ";" <ParseTree::DictionaryMember>
|
74
|
+
end
|
75
|
+
|
76
|
+
rule Default
|
77
|
+
("=" ws val:DefaultValue { def build() val.build end })?
|
60
78
|
end
|
61
79
|
|
62
|
-
# [13] DefaultValue → "=" ConstValue
|
63
|
-
# | ε
|
64
80
|
rule DefaultValue
|
65
|
-
|
81
|
+
string / ConstValue
|
66
82
|
end
|
67
83
|
|
68
84
|
rule Exception
|
@@ -87,13 +103,52 @@ module WebIDL
|
|
87
103
|
end
|
88
104
|
|
89
105
|
rule ConstValue
|
90
|
-
|
106
|
+
"null" { def build() nil end }
|
107
|
+
/ BooleanLiteral
|
108
|
+
/ FloatLiteral
|
109
|
+
/ integer
|
91
110
|
end
|
92
111
|
|
93
112
|
rule BooleanLiteral
|
94
113
|
("true" / "false") { def build() text_value == "true" end }
|
95
114
|
end
|
96
115
|
|
116
|
+
rule FloatLiteral
|
117
|
+
float
|
118
|
+
/ "-" "Infinity" { def build() -1.0/0 end }
|
119
|
+
/ "Infinity" { def build() 1.0/0 end }
|
120
|
+
/ "NaN" { def build() Float::NAN end }
|
121
|
+
end
|
122
|
+
|
123
|
+
rule Enum
|
124
|
+
"enum" ws id:identifier ws "{" ws values:EnumValueList ws "}" ws ";" <ParseTree::Enum>
|
125
|
+
end
|
126
|
+
|
127
|
+
rule EnumValueList
|
128
|
+
name:string ws
|
129
|
+
vals:EnumValues
|
130
|
+
ws ","? # trailing commas actually not allowed, but in use
|
131
|
+
{
|
132
|
+
def build()
|
133
|
+
res = [name.build]
|
134
|
+
res += vals.build if vals.any?
|
135
|
+
|
136
|
+
res
|
137
|
+
end
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
rule EnumValues
|
142
|
+
("," ws name:string ws vals:EnumValues {
|
143
|
+
def build()
|
144
|
+
res = [name.build]
|
145
|
+
res += vals.build if vals.any?
|
146
|
+
|
147
|
+
res
|
148
|
+
end
|
149
|
+
})?
|
150
|
+
end
|
151
|
+
|
97
152
|
rule AttributeOrOperation
|
98
153
|
StringifierAttributeOrOperation / Attribute / Operation
|
99
154
|
end
|
@@ -163,15 +218,39 @@ module WebIDL
|
|
163
218
|
end
|
164
219
|
|
165
220
|
rule Argument
|
166
|
-
eal:ExtendedAttributeList ws
|
221
|
+
eal:ExtendedAttributeList ws "in"? ws arg:OptionalOrRequiredArgument <ParseTree::Argument>
|
222
|
+
end
|
223
|
+
|
224
|
+
rule OptionalOrRequiredArgument
|
225
|
+
optional:"optional" ws type:Type ws name:ArgumentName ws default:Default
|
226
|
+
/ type:Type ws variadic:Ellipsis ws name:ArgumentName
|
167
227
|
end
|
168
228
|
|
169
|
-
|
170
|
-
|
229
|
+
|
230
|
+
rule ArgumentName
|
231
|
+
ArgumentNameKeyword { def build() text_value end } / identifier
|
171
232
|
end
|
172
233
|
|
173
|
-
rule
|
174
|
-
"
|
234
|
+
rule ArgumentNameKeyword
|
235
|
+
"attribute"
|
236
|
+
/ "callback"
|
237
|
+
/ "const"
|
238
|
+
/ "creator"
|
239
|
+
/ "deleter"
|
240
|
+
/ "dictionary"
|
241
|
+
/ "enum"
|
242
|
+
/ "exception"
|
243
|
+
/ "getter"
|
244
|
+
/ "implements"
|
245
|
+
/ "inherit"
|
246
|
+
/ "interface"
|
247
|
+
/ "legacycaller"
|
248
|
+
/ "partial"
|
249
|
+
/ "setter"
|
250
|
+
/ "static"
|
251
|
+
/ "stringifier"
|
252
|
+
/ "typedef"
|
253
|
+
/ "unrestricted"
|
175
254
|
end
|
176
255
|
|
177
256
|
rule Ellipsis
|
@@ -304,36 +383,61 @@ module WebIDL
|
|
304
383
|
end
|
305
384
|
|
306
385
|
rule Type
|
307
|
-
|
386
|
+
SingleType
|
387
|
+
/ type:UnionType suffix:TypeSuffix <ParseTree::Type>
|
308
388
|
end
|
309
389
|
|
310
|
-
rule
|
311
|
-
|
390
|
+
rule SingleType
|
391
|
+
NonAnyType
|
392
|
+
/ type:"any" suffix:TypeSuffixStartingWithArray <ParseTree::Type>
|
393
|
+
end
|
394
|
+
|
395
|
+
rule UnionType
|
396
|
+
"(" ws UnionMemberType ws "or" ws UnionMemberType ws UnionMemberTypes ws ")"
|
312
397
|
end
|
313
398
|
|
314
|
-
rule
|
315
|
-
|
316
|
-
/ type:
|
399
|
+
rule UnionMemberType
|
400
|
+
NonAnyType
|
401
|
+
/ type:UnionType suffix:TypeSuffix <ParseTree::Type>
|
402
|
+
/ type:"any" suffix:TypeSuffixStartingWithArray <ParseTree::Type>
|
403
|
+
end
|
404
|
+
|
405
|
+
rule UnionMemberTypes
|
406
|
+
("or" ws UnionMemberType ws UnionMemberTypes)?
|
407
|
+
end
|
408
|
+
|
409
|
+
rule NonAnyType
|
410
|
+
type:PrimitiveType suffix:TypeSuffix <ParseTree::Type>
|
411
|
+
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
|
412
|
+
/ type:"DOMString" suffix:TypeSuffix !NonSpace <ParseTree::Type>
|
413
|
+
/ "sequence" ws "<" ws type:Type ws ">" null:Null <ParseTree::SequenceType>
|
317
414
|
/ type:"object" suffix:TypeSuffix <ParseTree::Type>
|
318
415
|
/ type:"Date" suffix:TypeSuffix <ParseTree::Type>
|
319
|
-
/ type:
|
416
|
+
/ type:identifier suffix:TypeSuffix <ParseTree::Type>
|
417
|
+
end
|
418
|
+
|
419
|
+
rule ConstType
|
420
|
+
PrimitiveType Null
|
421
|
+
/ identifier Null
|
320
422
|
end
|
321
423
|
|
322
|
-
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other
|
323
|
-
rule
|
424
|
+
# added: cannot be followed by a NonSpace character, since e.g. DOMStringMap, DOMStringList or other identifiers would break parsing
|
425
|
+
rule PrimitiveType
|
324
426
|
(UnsignedIntegerType
|
325
|
-
/
|
326
|
-
/ "
|
327
|
-
/ "
|
328
|
-
/ "
|
329
|
-
/ "double" !NonSpace
|
330
|
-
/ "DOMString" !NonSpace) {
|
427
|
+
/ UnrestrictedFloatType
|
428
|
+
/ "boolean" !NonSpace
|
429
|
+
/ "byte" !NonSpace
|
430
|
+
/ "octet" !NonSpace) {
|
331
431
|
def build(parent)
|
332
432
|
Ast::Type.new(parent, text_value)
|
333
433
|
end
|
334
434
|
}
|
335
435
|
end
|
336
436
|
|
437
|
+
rule Null
|
438
|
+
"?"?
|
439
|
+
end
|
440
|
+
|
337
441
|
rule TypeSuffix
|
338
442
|
(
|
339
443
|
array:("[" ws "]") suffix:TypeSuffix <ParseTree::TypeSuffix>
|
@@ -349,6 +453,15 @@ module WebIDL
|
|
349
453
|
"unsigned" ws IntegerType / IntegerType
|
350
454
|
end
|
351
455
|
|
456
|
+
rule UnrestrictedFloatType
|
457
|
+
"unrestricted" ws FloatType
|
458
|
+
/ FloatType
|
459
|
+
end
|
460
|
+
|
461
|
+
rule FloatType
|
462
|
+
"float" / "double"
|
463
|
+
end
|
464
|
+
|
352
465
|
rule IntegerType
|
353
466
|
("short" / "long" ws OptionalLong)
|
354
467
|
end
|
@@ -357,10 +470,6 @@ module WebIDL
|
|
357
470
|
"long"?
|
358
471
|
end
|
359
472
|
|
360
|
-
rule Nullable
|
361
|
-
"?"?
|
362
|
-
end
|
363
|
-
|
364
473
|
rule Array
|
365
474
|
("[" ws "]")?
|
366
475
|
end
|
@@ -418,11 +527,20 @@ module WebIDL
|
|
418
527
|
end
|
419
528
|
|
420
529
|
rule identifier
|
421
|
-
[A-Z_a-z] [0-9A-Z_a-z]* { def build() text_value[/^_?(.+)/, 1] end }
|
530
|
+
[A-Z_a-z] [0-9A-Z_a-z]* { def build(parent = nil) text_value[/^_?(.+)/, 1] end }
|
422
531
|
end
|
423
532
|
|
424
533
|
rule string
|
425
|
-
|
534
|
+
# spec only allows double quotes, but single quotes are used in the HTML spec
|
535
|
+
double_quoted_string / single_quoted_string
|
536
|
+
end
|
537
|
+
|
538
|
+
rule double_quoted_string
|
539
|
+
"\"" data:[^"]* "\"" { def build() data.text_value end }
|
540
|
+
end
|
541
|
+
|
542
|
+
rule single_quoted_string
|
543
|
+
"'" data:[^']* "'" { def build() data.text_value end }
|
426
544
|
end
|
427
545
|
|
428
546
|
rule ws
|
data/lib/webidl/version.rb
CHANGED
data/spec/fixtures/html5.idl
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
interface Example {
|
2
|
+
// this is an IDL definition
|
3
|
+
};
|
1
4
|
|
2
5
|
interface HTMLAllCollection : HTMLCollection {
|
3
|
-
// inherits length and item()
|
6
|
+
// inherits length and item(unsigned long index)
|
7
|
+
object? item(DOMString name);
|
4
8
|
legacycaller getter object? namedItem(DOMString name); // overrides inherited namedItem()
|
5
9
|
HTMLAllCollection tags(DOMString tagName);
|
6
10
|
};
|
@@ -19,10 +23,7 @@ interface HTMLOptionsCollection : HTMLCollection {
|
|
19
23
|
attribute unsigned long length; // overrides inherited length
|
20
24
|
legacycaller getter object? namedItem(DOMString name); // overrides inherited namedItem()
|
21
25
|
setter creator void (unsigned long index, HTMLOptionElement option);
|
22
|
-
void add(HTMLOptionElement element, optional HTMLElement? before);
|
23
|
-
void add(HTMLOptGroupElement element, optional HTMLElement? before);
|
24
|
-
void add(HTMLOptionElement element, long before);
|
25
|
-
void add(HTMLOptGroupElement element, long before);
|
26
|
+
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
|
26
27
|
void remove(long index);
|
27
28
|
attribute long selectedIndex;
|
28
29
|
};
|
@@ -108,10 +109,12 @@ partial interface Document {
|
|
108
109
|
// event handler IDL attributes
|
109
110
|
[TreatNonCallableAsNull] attribute Function? onabort;
|
110
111
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
112
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
111
113
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
112
114
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
113
115
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
114
116
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
117
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
115
118
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
116
119
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
117
120
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -172,6 +175,7 @@ interface HTMLElement : Element {
|
|
172
175
|
// metadata attributes
|
173
176
|
attribute DOMString title;
|
174
177
|
attribute DOMString lang;
|
178
|
+
attribute boolean translate;
|
175
179
|
attribute DOMString dir;
|
176
180
|
attribute DOMString className;
|
177
181
|
readonly attribute DOMTokenList classList;
|
@@ -215,10 +219,12 @@ interface HTMLElement : Element {
|
|
215
219
|
// event handler IDL attributes
|
216
220
|
[TreatNonCallableAsNull] attribute Function? onabort;
|
217
221
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
222
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
218
223
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
219
224
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
220
225
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
221
226
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
227
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
222
228
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
223
229
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
224
230
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -396,6 +402,10 @@ interface HTMLDataElement : HTMLElement {
|
|
396
402
|
attribute DOMString value;
|
397
403
|
};
|
398
404
|
|
405
|
+
interface HTMLTimeElement : HTMLElement {
|
406
|
+
attribute DOMString datetime;
|
407
|
+
};
|
408
|
+
|
399
409
|
interface HTMLSpanElement : HTMLElement {};
|
400
410
|
|
401
411
|
interface HTMLBRElement : HTMLElement {};
|
@@ -438,6 +448,7 @@ interface HTMLEmbedElement : HTMLElement {
|
|
438
448
|
attribute DOMString type;
|
439
449
|
attribute DOMString width;
|
440
450
|
attribute DOMString height;
|
451
|
+
legacycaller any (any... arguments);
|
441
452
|
};
|
442
453
|
|
443
454
|
interface HTMLObjectElement : HTMLElement {
|
@@ -457,6 +468,8 @@ interface HTMLObjectElement : HTMLElement {
|
|
457
468
|
readonly attribute DOMString validationMessage;
|
458
469
|
boolean checkValidity();
|
459
470
|
void setCustomValidity(DOMString error);
|
471
|
+
|
472
|
+
legacycaller any (any... arguments);
|
460
473
|
};
|
461
474
|
|
462
475
|
interface HTMLParamElement : HTMLElement {
|
@@ -528,9 +541,8 @@ interface HTMLMediaElement : HTMLElement {
|
|
528
541
|
|
529
542
|
// playback state
|
530
543
|
attribute double currentTime;
|
531
|
-
readonly attribute double initialTime;
|
532
544
|
readonly attribute double duration;
|
533
|
-
readonly attribute Date
|
545
|
+
readonly attribute Date startDate;
|
534
546
|
readonly attribute boolean paused;
|
535
547
|
attribute double defaultPlaybackRate;
|
536
548
|
attribute double playbackRate;
|
@@ -567,7 +579,7 @@ interface MediaError {
|
|
567
579
|
readonly attribute unsigned short code;
|
568
580
|
};
|
569
581
|
|
570
|
-
interface AudioTrackList {
|
582
|
+
interface AudioTrackList : EventTarget {
|
571
583
|
readonly attribute unsigned long length;
|
572
584
|
getter AudioTrack (unsigned long index);
|
573
585
|
AudioTrack? getTrackById(DOMString id);
|
@@ -584,7 +596,7 @@ interface AudioTrack {
|
|
584
596
|
attribute boolean enabled;
|
585
597
|
};
|
586
598
|
|
587
|
-
interface VideoTrackList {
|
599
|
+
interface VideoTrackList : EventTarget {
|
588
600
|
readonly attribute unsigned long length;
|
589
601
|
getter VideoTrack (unsigned long index);
|
590
602
|
VideoTrack? getTrackById(DOMString id);
|
@@ -637,22 +649,20 @@ interface MediaController {
|
|
637
649
|
[TreatNonCallableAsNull] attribute Function? onvolumechange;
|
638
650
|
};
|
639
651
|
|
640
|
-
interface TextTrackList {
|
652
|
+
interface TextTrackList : EventTarget {
|
641
653
|
readonly attribute unsigned long length;
|
642
654
|
getter TextTrack (unsigned long index);
|
643
655
|
|
644
656
|
[TreatNonCallableAsNull] attribute Function? onaddtrack;
|
645
657
|
};
|
646
658
|
|
659
|
+
enum TextTrackMode { "disabled", "hidden", "showing" };
|
647
660
|
interface TextTrack : EventTarget {
|
648
661
|
readonly attribute DOMString kind;
|
649
662
|
readonly attribute DOMString label;
|
650
663
|
readonly attribute DOMString language;
|
651
664
|
|
652
|
-
|
653
|
-
const unsigned short HIDDEN = 1;
|
654
|
-
const unsigned short SHOWING = 2;
|
655
|
-
attribute unsigned short mode;
|
665
|
+
attribute TextTrackMode mode;
|
656
666
|
|
657
667
|
readonly attribute TextTrackCueList? cues;
|
658
668
|
readonly attribute TextTrackCueList? activeCues;
|
@@ -678,13 +688,13 @@ interface TextTrackCue : EventTarget {
|
|
678
688
|
attribute double startTime;
|
679
689
|
attribute double endTime;
|
680
690
|
attribute boolean pauseOnExit;
|
681
|
-
attribute DOMString
|
691
|
+
attribute DOMString vertical;
|
682
692
|
attribute boolean snapToLines;
|
683
|
-
attribute long
|
684
|
-
attribute long
|
693
|
+
attribute long line;
|
694
|
+
attribute long position;
|
685
695
|
attribute long size;
|
686
|
-
attribute DOMString
|
687
|
-
attribute DOMString
|
696
|
+
attribute DOMString align;
|
697
|
+
attribute DOMString text;
|
688
698
|
DocumentFragment getCueAsHTML();
|
689
699
|
|
690
700
|
[TreatNonCallableAsNull] attribute Function? onenter;
|
@@ -703,7 +713,7 @@ interface TrackEvent : Event {
|
|
703
713
|
};
|
704
714
|
|
705
715
|
dictionary TrackEventInit : EventInit {
|
706
|
-
object?
|
716
|
+
object? track;
|
707
717
|
};
|
708
718
|
|
709
719
|
interface HTMLCanvasElement : HTMLElement {
|
@@ -711,7 +721,7 @@ interface HTMLCanvasElement : HTMLElement {
|
|
711
721
|
attribute unsigned long height;
|
712
722
|
|
713
723
|
DOMString toDataURL(optional DOMString type, any... args);
|
714
|
-
void toBlob(FileCallback?
|
724
|
+
void toBlob(FileCallback? _callback, optional DOMString type, any... args);
|
715
725
|
|
716
726
|
object? getContext(DOMString contextId, any... args);
|
717
727
|
};
|
@@ -726,30 +736,24 @@ interface CanvasRenderingContext2D {
|
|
726
736
|
void restore(); // pop state stack and restore state
|
727
737
|
|
728
738
|
// transformations (default transform is the identity matrix)
|
739
|
+
attribute SVGMatrix currentTransform;
|
729
740
|
void scale(double x, double y);
|
730
741
|
void rotate(double angle);
|
731
742
|
void translate(double x, double y);
|
732
743
|
void transform(double a, double b, double c, double d, double e, double f);
|
733
744
|
void setTransform(double a, double b, double c, double d, double e, double f);
|
745
|
+
void resetTransform();
|
734
746
|
|
735
747
|
// compositing
|
736
748
|
attribute double globalAlpha; // (default 1.0)
|
737
749
|
attribute DOMString globalCompositeOperation; // (default source-over)
|
738
750
|
|
739
|
-
// colors and styles
|
751
|
+
// colors and styles (see also the CanvasDrawingStyles interface)
|
740
752
|
attribute any strokeStyle; // (default black)
|
741
753
|
attribute any fillStyle; // (default black)
|
742
754
|
CanvasGradient createLinearGradient(double x0, double y0, double x1, double y1);
|
743
755
|
CanvasGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1);
|
744
|
-
CanvasPattern createPattern(HTMLImageElement image, DOMString repetition);
|
745
|
-
CanvasPattern createPattern(HTMLCanvasElement image, DOMString repetition);
|
746
|
-
CanvasPattern createPattern(HTMLVideoElement image, DOMString repetition);
|
747
|
-
|
748
|
-
// line caps/joins
|
749
|
-
attribute double lineWidth; // (default 1)
|
750
|
-
attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
|
751
|
-
attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
|
752
|
-
attribute double miterLimit; // (default 10)
|
756
|
+
CanvasPattern createPattern((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, DOMString repetition);
|
753
757
|
|
754
758
|
// shadows
|
755
759
|
attribute double shadowOffsetX; // (default 0)
|
@@ -762,42 +766,37 @@ interface CanvasRenderingContext2D {
|
|
762
766
|
void fillRect(double x, double y, double w, double h);
|
763
767
|
void strokeRect(double x, double y, double w, double h);
|
764
768
|
|
765
|
-
// path API
|
769
|
+
// path API (see also CanvasPathMethods)
|
766
770
|
void beginPath();
|
767
|
-
void closePath();
|
768
|
-
void moveTo(double x, double y);
|
769
|
-
void lineTo(double x, double y);
|
770
|
-
void quadraticCurveTo(double cpx, double cpy, double x, double y);
|
771
|
-
void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
|
772
|
-
void arcTo(double x1, double y1, double x2, double y2, double radius);
|
773
|
-
void rect(double x, double y, double w, double h);
|
774
|
-
void arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise);
|
775
771
|
void fill();
|
772
|
+
void fill(Path path);
|
776
773
|
void stroke();
|
774
|
+
void stroke(Path path);
|
777
775
|
void drawSystemFocusRing(Element element);
|
776
|
+
void drawSystemFocusRing(Path path, Element element);
|
778
777
|
boolean drawCustomFocusRing(Element element);
|
778
|
+
boolean drawCustomFocusRing(Path path, Element element);
|
779
779
|
void scrollPathIntoView();
|
780
|
+
void scrollPathIntoView(Path path);
|
780
781
|
void clip();
|
782
|
+
void clip(Path path);
|
783
|
+
void resetClip();
|
781
784
|
boolean isPointInPath(double x, double y);
|
785
|
+
boolean isPointInPath(Path path, double x, double y);
|
782
786
|
|
783
|
-
// text
|
784
|
-
attribute DOMString font; // (default 10px sans-serif)
|
785
|
-
attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
|
786
|
-
attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
|
787
|
+
// text (see also the CanvasDrawingStyles interface)
|
787
788
|
void fillText(DOMString text, double x, double y, optional double maxWidth);
|
788
789
|
void strokeText(DOMString text, double x, double y, optional double maxWidth);
|
789
790
|
TextMetrics measureText(DOMString text);
|
790
791
|
|
791
792
|
// drawing images
|
792
|
-
|
793
|
-
void drawImage(HTMLImageElement
|
794
|
-
void drawImage(HTMLImageElement
|
795
|
-
void drawImage(HTMLCanvasElement image, double dx, double dy);
|
796
|
-
|
797
|
-
|
798
|
-
void
|
799
|
-
void drawImage(HTMLVideoElement image, double dx, double dy, double dw, double dh);
|
800
|
-
void drawImage(HTMLVideoElement image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
|
793
|
+
attribute boolean imageSmoothingEnabled; // (default true)
|
794
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double dx, double dy);
|
795
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double dx, double dy, double dw, double dh);
|
796
|
+
void drawImage((HTMLImageElement or HTMLCanvasElement or HTMLVideoElement) image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
|
797
|
+
|
798
|
+
// hit regions
|
799
|
+
void addHitRegion(HitRegionOptions options);
|
801
800
|
|
802
801
|
// pixel manipulation
|
803
802
|
ImageData createImageData(double sw, double sh);
|
@@ -806,6 +805,42 @@ interface CanvasRenderingContext2D {
|
|
806
805
|
void putImageData(ImageData imagedata, double dx, double dy);
|
807
806
|
void putImageData(ImageData imagedata, double dx, double dy, double dirtyX, double dirtyY, double dirtyWidth, double dirtyHeight);
|
808
807
|
};
|
808
|
+
CanvasRenderingContext2D implements CanvasDrawingStyles;
|
809
|
+
CanvasRenderingContext2D implements CanvasPathMethods;
|
810
|
+
|
811
|
+
[NoInterfaceObject]
|
812
|
+
interface CanvasDrawingStyles {
|
813
|
+
// line caps/joins
|
814
|
+
attribute double lineWidth; // (default 1)
|
815
|
+
attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
|
816
|
+
attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
|
817
|
+
attribute double miterLimit; // (default 10)
|
818
|
+
|
819
|
+
// dashed lines
|
820
|
+
void setLineDash(sequence<double> segments); // default empty
|
821
|
+
sequence<double> getLineDash();
|
822
|
+
attribute double lineDashOffset;
|
823
|
+
|
824
|
+
// text
|
825
|
+
attribute DOMString font; // (default 10px sans-serif)
|
826
|
+
attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
|
827
|
+
attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
|
828
|
+
};
|
829
|
+
|
830
|
+
[NoInterfaceObject]
|
831
|
+
interface CanvasPathMethods {
|
832
|
+
// shared path API methods
|
833
|
+
void closePath();
|
834
|
+
void moveTo(double x, double y);
|
835
|
+
void lineTo(double x, double y);
|
836
|
+
void quadraticCurveTo(double cpx, double cpy, double x, double y);
|
837
|
+
void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y);
|
838
|
+
void arcTo(double x1, double y1, double x2, double y2, double radius);
|
839
|
+
void arcTo(double x1, double y1, double x2, double y2, double radiusX, double radiusY, double rotation);
|
840
|
+
void rect(double x, double y, double w, double h);
|
841
|
+
void arc(double x, double y, double radius, double startAngle, double endAngle, optional boolean anticlockwise = false);
|
842
|
+
void ellipse(double x, double y, double radiusX, double radiusY, double rotation, double startAngle, double endAngle, boolean anticlockwise);
|
843
|
+
};
|
809
844
|
|
810
845
|
interface CanvasGradient {
|
811
846
|
// opaque object
|
@@ -814,10 +849,37 @@ interface CanvasGradient {
|
|
814
849
|
|
815
850
|
interface CanvasPattern {
|
816
851
|
// opaque object
|
852
|
+
void setTransform(SVGMatrix transform);
|
817
853
|
};
|
818
854
|
|
819
855
|
interface TextMetrics {
|
820
|
-
|
856
|
+
// x-direction
|
857
|
+
readonly attribute double width; // advance width
|
858
|
+
readonly attribute double actualBoundingBoxLeft;
|
859
|
+
readonly attribute double actualBoundingBoxRight;
|
860
|
+
|
861
|
+
// y-direction
|
862
|
+
readonly attribute double fontBoundingBoxAscent;
|
863
|
+
readonly attribute double fontBoundingBoxDescent;
|
864
|
+
readonly attribute double actualBoundingBoxAscent;
|
865
|
+
readonly attribute double actualBoundingBoxDescent;
|
866
|
+
readonly attribute double emHeightAscent;
|
867
|
+
readonly attribute double emHeightDescent;
|
868
|
+
readonly attribute double hangingBaseline;
|
869
|
+
readonly attribute double alphabeticBaseline;
|
870
|
+
readonly attribute double ideographicBaseline;
|
871
|
+
};
|
872
|
+
|
873
|
+
dictionary HitRegionOptions {
|
874
|
+
Path? path = null;
|
875
|
+
DOMString id = '';
|
876
|
+
DOMString? parentID = null;
|
877
|
+
DOMString cursor = 'inherit';
|
878
|
+
// for control-backed regions:
|
879
|
+
Element? control = null;
|
880
|
+
// for unbacked regions:
|
881
|
+
DOMString? label = null;
|
882
|
+
DOMString? role = null;
|
821
883
|
};
|
822
884
|
|
823
885
|
interface ImageData {
|
@@ -826,6 +888,31 @@ interface ImageData {
|
|
826
888
|
readonly attribute Uint8ClampedArray data;
|
827
889
|
};
|
828
890
|
|
891
|
+
[Constructor(optional Element scope)]
|
892
|
+
interface DrawingStyle { };
|
893
|
+
DrawingStyle implements CanvasDrawingStyles;
|
894
|
+
|
895
|
+
[Constructor,
|
896
|
+
Constructor(Path path),
|
897
|
+
Constructor(DOMString d)]
|
898
|
+
interface Path {
|
899
|
+
void addPath(Path path, SVGMatrix? transformation);
|
900
|
+
void addPathByStrokingPath(Path path, CanvasDrawingStyles styles, SVGMatrix? transformation);
|
901
|
+
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, double x, double y, optional double maxWidth);
|
902
|
+
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, double x, double y, optional double maxWidth);
|
903
|
+
void addText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path path, optional double maxWidth);
|
904
|
+
void addPathByStrokingText(DOMString text, CanvasDrawingStyles styles, SVGMatrix? transformation, Path path, optional double maxWidth);
|
905
|
+
};
|
906
|
+
Path implements CanvasPathMethods;
|
907
|
+
|
908
|
+
partial interface MouseEvent {
|
909
|
+
readonly attribute DOMString? region;
|
910
|
+
};
|
911
|
+
|
912
|
+
partial dictionary MouseEventInit {
|
913
|
+
DOMString? region;
|
914
|
+
};
|
915
|
+
|
829
916
|
interface HTMLMapElement : HTMLElement {
|
830
917
|
attribute DOMString name;
|
831
918
|
readonly attribute HTMLCollection areas;
|
@@ -991,7 +1078,7 @@ interface HTMLInputElement : HTMLElement {
|
|
991
1078
|
attribute DOMString type;
|
992
1079
|
attribute DOMString defaultValue;
|
993
1080
|
attribute DOMString value;
|
994
|
-
attribute Date valueAsDate;
|
1081
|
+
attribute Date? valueAsDate;
|
995
1082
|
attribute double valueAsNumber;
|
996
1083
|
attribute unsigned long width;
|
997
1084
|
|
@@ -1010,6 +1097,10 @@ interface HTMLInputElement : HTMLElement {
|
|
1010
1097
|
attribute unsigned long selectionStart;
|
1011
1098
|
attribute unsigned long selectionEnd;
|
1012
1099
|
attribute DOMString selectionDirection;
|
1100
|
+
|
1101
|
+
void setRangeText(DOMString replacement);
|
1102
|
+
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode);
|
1103
|
+
|
1013
1104
|
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
|
1014
1105
|
};
|
1015
1106
|
|
@@ -1050,10 +1141,7 @@ interface HTMLSelectElement : HTMLElement {
|
|
1050
1141
|
attribute unsigned long length;
|
1051
1142
|
getter Element item(unsigned long index);
|
1052
1143
|
object namedItem(DOMString name);
|
1053
|
-
void add(HTMLOptionElement element, optional HTMLElement? before);
|
1054
|
-
void add(HTMLOptGroupElement element, optional HTMLElement? before);
|
1055
|
-
void add(HTMLOptionElement element, long before);
|
1056
|
-
void add(HTMLOptGroupElement element, long before);
|
1144
|
+
void add((HTMLOptionElement or HTMLOptGroupElement) element, optional (HTMLElement or long)? before = null);
|
1057
1145
|
void remove(long index);
|
1058
1146
|
setter creator void (unsigned long index, HTMLOptionElement option);
|
1059
1147
|
|
@@ -1127,6 +1215,10 @@ interface HTMLTextAreaElement : HTMLElement {
|
|
1127
1215
|
attribute unsigned long selectionStart;
|
1128
1216
|
attribute unsigned long selectionEnd;
|
1129
1217
|
attribute DOMString selectionDirection;
|
1218
|
+
|
1219
|
+
void setRangeText(DOMString replacement);
|
1220
|
+
void setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode);
|
1221
|
+
|
1130
1222
|
void setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction);
|
1131
1223
|
};
|
1132
1224
|
|
@@ -1184,6 +1276,14 @@ interface HTMLMeterElement : HTMLElement {
|
|
1184
1276
|
readonly attribute NodeList labels;
|
1185
1277
|
};
|
1186
1278
|
|
1279
|
+
|
1280
|
+
enum SelectionMode {
|
1281
|
+
'select',
|
1282
|
+
'start',
|
1283
|
+
'end',
|
1284
|
+
'preserve',
|
1285
|
+
};
|
1286
|
+
|
1187
1287
|
interface ValidityState {
|
1188
1288
|
readonly attribute boolean valueMissing;
|
1189
1289
|
readonly attribute boolean typeMismatch;
|
@@ -1207,6 +1307,7 @@ interface HTMLCommandElement : HTMLElement {
|
|
1207
1307
|
attribute boolean disabled;
|
1208
1308
|
attribute boolean checked;
|
1209
1309
|
attribute DOMString radiogroup;
|
1310
|
+
readonly attribute HTMLElement? command;
|
1210
1311
|
};
|
1211
1312
|
|
1212
1313
|
interface HTMLMenuElement : HTMLElement {
|
@@ -1214,6 +1315,14 @@ interface HTMLMenuElement : HTMLElement {
|
|
1214
1315
|
attribute DOMString label;
|
1215
1316
|
};
|
1216
1317
|
|
1318
|
+
interface HTMLDialogElement : HTMLElement {
|
1319
|
+
attribute boolean open;
|
1320
|
+
attribute DOMString returnValue;
|
1321
|
+
void show(optional (MouseEvent or Element) anchor);
|
1322
|
+
void showModal(optional (MouseEvent or Element) anchor);
|
1323
|
+
void close(optional DOMString returnValue);
|
1324
|
+
};
|
1325
|
+
|
1217
1326
|
[ReplaceableNamedProperties]
|
1218
1327
|
interface Window : EventTarget {
|
1219
1328
|
// the current browsing context
|
@@ -1242,7 +1351,7 @@ interface Window : EventTarget {
|
|
1242
1351
|
[Replaceable] readonly attribute WindowProxy frames;
|
1243
1352
|
[Replaceable] readonly attribute unsigned long length;
|
1244
1353
|
[Unforgeable] readonly attribute WindowProxy top;
|
1245
|
-
attribute WindowProxy opener;
|
1354
|
+
attribute WindowProxy? opener;
|
1246
1355
|
readonly attribute WindowProxy parent;
|
1247
1356
|
readonly attribute Element? frameElement;
|
1248
1357
|
WindowProxy open(optional DOMString url, optional DOMString target, optional DOMString features, optional boolean replace);
|
@@ -1270,10 +1379,12 @@ interface Window : EventTarget {
|
|
1270
1379
|
[TreatNonCallableAsNull] attribute Function? onbeforeprint;
|
1271
1380
|
[TreatNonCallableAsNull] attribute Function? onbeforeunload;
|
1272
1381
|
[TreatNonCallableAsNull] attribute Function? onblur;
|
1382
|
+
[TreatNonCallableAsNull] attribute Function? oncancel;
|
1273
1383
|
[TreatNonCallableAsNull] attribute Function? oncanplay;
|
1274
1384
|
[TreatNonCallableAsNull] attribute Function? oncanplaythrough;
|
1275
1385
|
[TreatNonCallableAsNull] attribute Function? onchange;
|
1276
1386
|
[TreatNonCallableAsNull] attribute Function? onclick;
|
1387
|
+
[TreatNonCallableAsNull] attribute Function? onclose;
|
1277
1388
|
[TreatNonCallableAsNull] attribute Function? oncontextmenu;
|
1278
1389
|
[TreatNonCallableAsNull] attribute Function? oncuechange;
|
1279
1390
|
[TreatNonCallableAsNull] attribute Function? ondblclick;
|
@@ -1523,11 +1634,11 @@ interface DataTransferItemList {
|
|
1523
1634
|
interface DataTransferItem {
|
1524
1635
|
readonly attribute DOMString kind;
|
1525
1636
|
readonly attribute DOMString type;
|
1526
|
-
void getAsString(FunctionStringCallback?
|
1637
|
+
void getAsString(FunctionStringCallback? _callback);
|
1527
1638
|
File? getAsFile();
|
1528
1639
|
};
|
1529
1640
|
|
1530
|
-
[Callback
|
1641
|
+
[Callback, NoInterfaceObject]
|
1531
1642
|
interface FunctionStringCallback {
|
1532
1643
|
void handleEvent(DOMString data);
|
1533
1644
|
};
|
@@ -1541,104 +1652,6 @@ dictionary DragEventInit : MouseEventInit {
|
|
1541
1652
|
DataTransfer? dataTransfer;
|
1542
1653
|
};
|
1543
1654
|
|
1544
|
-
[NoInterfaceObject]
|
1545
|
-
interface NavigatorUserMedia {
|
1546
|
-
void getUserMedia(DOMString options, NavigatorUserMediaSuccessCallback? successCallback, optional NavigatorUserMediaErrorCallback? errorCallback);
|
1547
|
-
};
|
1548
|
-
Navigator implements NavigatorUserMedia;
|
1549
|
-
|
1550
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1551
|
-
interface NavigatorUserMediaSuccessCallback {
|
1552
|
-
void handleEvent(LocalMediaStream stream);
|
1553
|
-
};
|
1554
|
-
|
1555
|
-
[NoInterfaceObject]
|
1556
|
-
interface NavigatorUserMediaError {
|
1557
|
-
const unsigned short PERMISSION_DENIED = 1;
|
1558
|
-
readonly attribute unsigned short code;
|
1559
|
-
};
|
1560
|
-
|
1561
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1562
|
-
interface NavigatorUserMediaErrorCallback {
|
1563
|
-
void handleEvent(NavigatorUserMediaError error);
|
1564
|
-
};
|
1565
|
-
|
1566
|
-
[Constructor(MediaStream parentStream)]
|
1567
|
-
interface MediaStream : EventTarget {
|
1568
|
-
readonly attribute DOMString label;
|
1569
|
-
readonly attribute MediaStreamTrack[] tracks;
|
1570
|
-
|
1571
|
-
MediaStreamRecorder record();
|
1572
|
-
|
1573
|
-
const unsigned short LIVE = 1;
|
1574
|
-
const unsigned short ENDED = 2;
|
1575
|
-
readonly attribute unsigned short readyState;
|
1576
|
-
[TreatNonCallableAsNull] attribute Function? onended;
|
1577
|
-
};
|
1578
|
-
|
1579
|
-
interface LocalMediaStream : MediaStream {
|
1580
|
-
void stop();
|
1581
|
-
};
|
1582
|
-
|
1583
|
-
interface MediaStreamTrack {
|
1584
|
-
readonly attribute DOMString kind;
|
1585
|
-
readonly attribute DOMString label;
|
1586
|
-
attribute boolean enabled;
|
1587
|
-
};
|
1588
|
-
|
1589
|
-
interface MediaStreamRecorder {
|
1590
|
-
void getRecordedData(BlobCallback? callback);
|
1591
|
-
};
|
1592
|
-
|
1593
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1594
|
-
interface BlobCallback {
|
1595
|
-
void handleEvent(Blob blob);
|
1596
|
-
};
|
1597
|
-
|
1598
|
-
partial interface URL {
|
1599
|
-
static DOMString createObjectURL(MediaStream stream);
|
1600
|
-
};
|
1601
|
-
|
1602
|
-
[Constructor(DOMString serverConfiguration, SignalingCallback signalingCallback)]
|
1603
|
-
interface PeerConnection : EventTarget {
|
1604
|
-
void processSignalingMessage(DOMString message);
|
1605
|
-
|
1606
|
-
const unsigned short NEW = 0;
|
1607
|
-
const unsigned short NEGOTIATING = 1;
|
1608
|
-
const unsigned short ACTIVE = 2;
|
1609
|
-
const unsigned short CLOSED = 3;
|
1610
|
-
readonly attribute unsigned short readyState;
|
1611
|
-
|
1612
|
-
void send(DOMString text);
|
1613
|
-
void addStream(MediaStream stream);
|
1614
|
-
void removeStream(MediaStream stream);
|
1615
|
-
readonly attribute MediaStream[] localStreams;
|
1616
|
-
readonly attribute MediaStream[] remoteStreams;
|
1617
|
-
|
1618
|
-
void close();
|
1619
|
-
|
1620
|
-
// connection quality information
|
1621
|
-
[TreatNonCallableAsNull] attribute Function? onconnecting;
|
1622
|
-
[TreatNonCallableAsNull] attribute Function? onopen;
|
1623
|
-
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1624
|
-
[TreatNonCallableAsNull] attribute Function? onaddstream;
|
1625
|
-
[TreatNonCallableAsNull] attribute Function? onremovestream;
|
1626
|
-
};
|
1627
|
-
|
1628
|
-
[Callback=FunctionOnly, NoInterfaceObject]
|
1629
|
-
interface SignalingCallback {
|
1630
|
-
void handleEvent(DOMString message, PeerConnection source);
|
1631
|
-
};
|
1632
|
-
|
1633
|
-
[Constructor(DOMString type, optional MediaStreamEventInit eventInitDict)]
|
1634
|
-
interface MediaStreamEvent : Event {
|
1635
|
-
readonly attribute MediaStream? stream;
|
1636
|
-
};
|
1637
|
-
|
1638
|
-
dictionary MediaStreamEventInit : EventInit {
|
1639
|
-
// DOMString MediaStream? stream;
|
1640
|
-
};
|
1641
|
-
|
1642
1655
|
interface WorkerGlobalScope : EventTarget {
|
1643
1656
|
readonly attribute WorkerGlobalScope self;
|
1644
1657
|
readonly attribute WorkerLocation location;
|
@@ -1650,13 +1663,11 @@ interface WorkerGlobalScope : EventTarget {
|
|
1650
1663
|
};
|
1651
1664
|
WorkerGlobalScope implements WorkerUtils;
|
1652
1665
|
|
1653
|
-
[Supplemental, NoInterfaceObject]
|
1654
1666
|
interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
1655
1667
|
void postMessage(any message, optional sequence<Transferable> transfer);
|
1656
1668
|
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1657
1669
|
};
|
1658
1670
|
|
1659
|
-
[Supplemental, NoInterfaceObject]
|
1660
1671
|
interface SharedWorkerGlobalScope : WorkerGlobalScope {
|
1661
1672
|
readonly attribute DOMString name;
|
1662
1673
|
readonly attribute ApplicationCache applicationCache;
|
@@ -1676,24 +1687,26 @@ dictionary ErrorEventInit : EventInit {
|
|
1676
1687
|
unsigned long lineno;
|
1677
1688
|
};
|
1678
1689
|
|
1679
|
-
[
|
1680
|
-
interface AbstractWorker
|
1690
|
+
[NoInterfaceObject]
|
1691
|
+
interface AbstractWorker {
|
1681
1692
|
[TreatNonCallableAsNull] attribute Function? onerror;
|
1682
1693
|
|
1683
1694
|
};
|
1684
1695
|
|
1685
1696
|
[Constructor(DOMString scriptURL)]
|
1686
|
-
interface Worker :
|
1697
|
+
interface Worker : EventTarget {
|
1687
1698
|
void terminate();
|
1688
1699
|
|
1689
1700
|
void postMessage(any message, optional sequence<Transferable> transfer);
|
1690
1701
|
[TreatNonCallableAsNull] attribute Function? onmessage;
|
1691
1702
|
};
|
1703
|
+
Worker implements AbstractWorker;
|
1692
1704
|
|
1693
1705
|
[Constructor(DOMString scriptURL, optional DOMString name)]
|
1694
|
-
interface SharedWorker :
|
1706
|
+
interface SharedWorker : EventTarget {
|
1695
1707
|
readonly attribute MessagePort port;
|
1696
1708
|
};
|
1709
|
+
SharedWorker implements AbstractWorker;
|
1697
1710
|
|
1698
1711
|
[NoInterfaceObject]
|
1699
1712
|
interface WorkerUtils {
|
@@ -1758,8 +1771,7 @@ dictionary EventSourceInit {
|
|
1758
1771
|
boolean withCredentials = false;
|
1759
1772
|
};
|
1760
1773
|
|
1761
|
-
[Constructor(DOMString url, optional DOMString protocols)
|
1762
|
-
Constructor(DOMString url, optional DOMString[] protocols)]
|
1774
|
+
[Constructor(DOMString url, optional (DOMString or DOMString[]) protocols)]
|
1763
1775
|
interface WebSocket : EventTarget {
|
1764
1776
|
readonly attribute DOMString url;
|
1765
1777
|
|
@@ -1839,7 +1851,7 @@ Window implements WindowLocalStorage;
|
|
1839
1851
|
|
1840
1852
|
[Constructor(DOMString type, optional StorageEventInit eventInitDict)]
|
1841
1853
|
interface StorageEvent : Event {
|
1842
|
-
readonly attribute DOMString key;
|
1854
|
+
readonly attribute DOMString? key;
|
1843
1855
|
readonly attribute DOMString? oldValue;
|
1844
1856
|
readonly attribute DOMString? newValue;
|
1845
1857
|
readonly attribute DOMString url;
|
@@ -1847,7 +1859,7 @@ interface StorageEvent : Event {
|
|
1847
1859
|
};
|
1848
1860
|
|
1849
1861
|
dictionary StorageEventInit : EventInit {
|
1850
|
-
DOMString key;
|
1862
|
+
DOMString? key;
|
1851
1863
|
DOMString? oldValue;
|
1852
1864
|
DOMString? newValue;
|
1853
1865
|
DOMString url;
|