4
4
5
5
import 'dart:js_interop' ;
6
6
7
- @JS ()
8
- @staticInterop
9
- class IDLType {}
10
-
11
- extension IDLTypeExtension on IDLType {
7
+ extension type IDLType ._(JSObject _) implements JSObject {
12
8
external String ? get type;
13
9
external String get generic;
14
10
external JSAny get idlType;
@@ -18,21 +14,13 @@ extension IDLTypeExtension on IDLType {
18
14
19
15
/// The abstract node interface in the IDL AST. All nodes that can occur at the
20
16
/// root of the IDL inherit from [Node] .
21
- @JS ()
22
- @staticInterop
23
- class Node {}
24
-
25
- extension NodeExtension on Node {
17
+ extension type Node ._(JSObject _) implements JSObject {
26
18
external String get type;
27
19
}
28
20
29
21
/// The abstract node interface for named nodes in the IDL. Most root nodes have
30
22
/// names, with the exception of `includes` .
31
- @JS ()
32
- @staticInterop
33
- class Named extends Node {}
34
-
35
- extension NamedExtension on Named {
23
+ extension type Named ._(JSObject _) implements Node {
36
24
external String get name;
37
25
}
38
26
@@ -43,69 +31,39 @@ extension NamedExtension on Named {
43
31
/// * callback interface
44
32
/// * dictionary
45
33
/// To disambiguate, use the `type` getter.
46
- @JS ()
47
- @staticInterop
48
- class Interfacelike extends Named {}
49
-
50
- extension InterfaceExtension on Interfacelike {
34
+ extension type Interfacelike ._(JSObject _) implements Named {
51
35
external bool get partial;
52
- external JSArray get members;
36
+ external JSArray < Member > get members;
53
37
external String ? get inheritance;
54
38
}
55
39
56
- @JS ()
57
- @staticInterop
58
- class Callback extends Named {}
59
-
60
- extension CallbackExtension on Callback {
40
+ extension type Callback ._(JSObject _) implements Named {
61
41
external IDLType get idlType;
62
- external JSArray get arguments;
42
+ external JSArray < Argument > get arguments;
63
43
}
64
44
65
- @JS ()
66
- @staticInterop
67
- class EnumValue {}
68
-
69
- extension EnumValueExtension on EnumValue {
45
+ extension type EnumValue ._(JSObject _) implements JSObject {
70
46
external String get type;
71
47
external String get value;
72
48
}
73
49
74
- @JS ()
75
- @staticInterop
76
- class Enum extends Named {}
77
-
78
- @JS ()
79
- @staticInterop
80
- class Typedef extends Named {}
50
+ extension type Enum ._(JSObject _) implements Named {}
81
51
82
- extension TypedefExtension on Typedef {
52
+ extension type Typedef ._( JSObject _) implements Named {
83
53
external IDLType get idlType;
84
54
}
85
55
86
- @JS ()
87
- @staticInterop
88
- class Includes extends Node {}
89
-
90
- extension IncludesExtension on Includes {
56
+ extension type Includes ._(JSObject _) implements Node {
91
57
external String get target;
92
58
external String get includes;
93
59
}
94
60
95
61
/// All members inherit from the [Member] node.
96
- @JS ()
97
- @staticInterop
98
- class Member {}
99
-
100
- extension MemberExtension on Member {
62
+ extension type Member ._(JSObject _) implements JSObject {
101
63
external String get type;
102
64
}
103
65
104
- @JS ()
105
- @staticInterop
106
- class Argument {}
107
-
108
- extension ArgumentExtension on Argument {
66
+ extension type Argument ._(JSObject _) implements JSObject {
109
67
external String get type;
110
68
@JS ('default' )
111
69
external Value ? get defaultValue;
@@ -115,63 +73,39 @@ extension ArgumentExtension on Argument {
115
73
external String get name;
116
74
}
117
75
118
- @JS ()
119
- @staticInterop
120
- class Operation extends Member {}
121
-
122
- extension OperationExtension on Operation {
76
+ extension type Operation ._(JSObject _) implements Member {
123
77
external String get special;
124
78
external IDLType get idlType;
125
79
external String get name;
126
- external JSArray get arguments;
80
+ external JSArray < Argument > get arguments;
127
81
}
128
82
129
- @JS ()
130
- @staticInterop
131
- class Constructor extends Member {}
132
-
133
- extension ConstructorExtension on Constructor {
134
- external JSArray get arguments;
83
+ extension type Constructor ._(JSObject _) implements Member {
84
+ external JSArray <Argument > get arguments;
135
85
}
136
86
137
- @JS ()
138
- @staticInterop
139
- class Attribute extends Member {}
140
-
141
- extension AttributeExtension on Attribute {
87
+ extension type Attribute ._(JSObject _) implements Member {
142
88
external String get special;
143
89
external bool get readonly;
144
90
external IDLType get idlType;
145
91
external String get name;
146
92
}
147
93
148
- @JS ()
149
- @staticInterop
150
- class Field extends Member {}
151
-
152
- extension FieldExtension on Field {
94
+ extension type Field ._(JSObject _) implements Member {
153
95
external String get name;
154
96
external bool get required ;
155
97
external IDLType get idlType;
156
98
@JS ('default' )
157
99
external Value ? get defaultValue;
158
100
}
159
101
160
- @JS ()
161
- @staticInterop
162
- class Value {}
163
-
164
- extension ValueExtension on Value {
102
+ extension type Value ._(JSObject _) implements JSObject {
165
103
external String get type;
166
104
external JSAny ? get value;
167
105
external bool ? get negative;
168
106
}
169
107
170
- @JS ()
171
- @staticInterop
172
- class Constant extends Member {}
173
-
174
- extension ConstantExtension on Constant {
108
+ extension type Constant ._(JSObject _) implements Member {
175
109
external IDLType get idlType;
176
110
external String get name;
177
111
external Value get value;
@@ -182,23 +116,15 @@ extension ConstantExtension on Constant {
182
116
/// * async iterable<>
183
117
/// * maplike<>
184
118
/// * setlike<>
185
- @JS ()
186
- @staticInterop
187
- class MemberDeclaration {}
188
-
189
- extension MemberDeclarationExtension on MemberDeclaration {
119
+ extension type MemberDeclaration ._(JSObject _) implements JSObject {
190
120
external String get type;
191
121
external IDLType get idlType;
192
122
external bool get readonly;
193
123
external bool get async ;
194
- external JSArray get arguments;
124
+ external JSArray < Argument > get arguments;
195
125
}
196
126
197
- @JS ()
198
- @staticInterop
199
- class EOF {}
200
-
201
- extension EOFExtension on EOF {
127
+ extension type EOF ._(JSObject _) implements JSObject {
202
128
external String get type;
203
129
external String get value;
204
130
}
0 commit comments