44
55import 'dart:js_interop' ;
66
7- @JS ()
8- @staticInterop
9- class IDLType {}
10-
11- extension IDLTypeExtension on IDLType {
7+ extension type IDLType ._(JSObject _) implements JSObject {
128 external String ? get type;
139 external String get generic;
1410 external JSAny get idlType;
@@ -18,21 +14,13 @@ extension IDLTypeExtension on IDLType {
1814
1915/// The abstract node interface in the IDL AST. All nodes that can occur at the
2016/// 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 {
2618 external String get type;
2719}
2820
2921/// The abstract node interface for named nodes in the IDL. Most root nodes have
3022/// 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 {
3624 external String get name;
3725}
3826
@@ -43,69 +31,39 @@ extension NamedExtension on Named {
4331/// * callback interface
4432/// * dictionary
4533/// 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 {
5135 external bool get partial;
52- external JSArray get members;
36+ external JSArray < Member > get members;
5337 external String ? get inheritance;
5438}
5539
56- @JS ()
57- @staticInterop
58- class Callback extends Named {}
59-
60- extension CallbackExtension on Callback {
40+ extension type Callback ._(JSObject _) implements Named {
6141 external IDLType get idlType;
62- external JSArray get arguments;
42+ external JSArray < Argument > get arguments;
6343}
6444
65- @JS ()
66- @staticInterop
67- class EnumValue {}
68-
69- extension EnumValueExtension on EnumValue {
45+ extension type EnumValue ._(JSObject _) implements JSObject {
7046 external String get type;
7147 external String get value;
7248}
7349
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 {}
8151
82- extension TypedefExtension on Typedef {
52+ extension type Typedef ._( JSObject _) implements Named {
8353 external IDLType get idlType;
8454}
8555
86- @JS ()
87- @staticInterop
88- class Includes extends Node {}
89-
90- extension IncludesExtension on Includes {
56+ extension type Includes ._(JSObject _) implements Node {
9157 external String get target;
9258 external String get includes;
9359}
9460
9561/// 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 {
10163 external String get type;
10264}
10365
104- @JS ()
105- @staticInterop
106- class Argument {}
107-
108- extension ArgumentExtension on Argument {
66+ extension type Argument ._(JSObject _) implements JSObject {
10967 external String get type;
11068 @JS ('default' )
11169 external Value ? get defaultValue;
@@ -115,63 +73,39 @@ extension ArgumentExtension on Argument {
11573 external String get name;
11674}
11775
118- @JS ()
119- @staticInterop
120- class Operation extends Member {}
121-
122- extension OperationExtension on Operation {
76+ extension type Operation ._(JSObject _) implements Member {
12377 external String get special;
12478 external IDLType get idlType;
12579 external String get name;
126- external JSArray get arguments;
80+ external JSArray < Argument > get arguments;
12781}
12882
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;
13585}
13686
137- @JS ()
138- @staticInterop
139- class Attribute extends Member {}
140-
141- extension AttributeExtension on Attribute {
87+ extension type Attribute ._(JSObject _) implements Member {
14288 external String get special;
14389 external bool get readonly;
14490 external IDLType get idlType;
14591 external String get name;
14692}
14793
148- @JS ()
149- @staticInterop
150- class Field extends Member {}
151-
152- extension FieldExtension on Field {
94+ extension type Field ._(JSObject _) implements Member {
15395 external String get name;
15496 external bool get required ;
15597 external IDLType get idlType;
15698 @JS ('default' )
15799 external Value ? get defaultValue;
158100}
159101
160- @JS ()
161- @staticInterop
162- class Value {}
163-
164- extension ValueExtension on Value {
102+ extension type Value ._(JSObject _) implements JSObject {
165103 external String get type;
166104 external JSAny ? get value;
167105 external bool ? get negative;
168106}
169107
170- @JS ()
171- @staticInterop
172- class Constant extends Member {}
173-
174- extension ConstantExtension on Constant {
108+ extension type Constant ._(JSObject _) implements Member {
175109 external IDLType get idlType;
176110 external String get name;
177111 external Value get value;
@@ -182,23 +116,15 @@ extension ConstantExtension on Constant {
182116/// * async iterable<>
183117/// * maplike<>
184118/// * setlike<>
185- @JS ()
186- @staticInterop
187- class MemberDeclaration {}
188-
189- extension MemberDeclarationExtension on MemberDeclaration {
119+ extension type MemberDeclaration ._(JSObject _) implements JSObject {
190120 external String get type;
191121 external IDLType get idlType;
192122 external bool get readonly;
193123 external bool get async ;
194- external JSArray get arguments;
124+ external JSArray < Argument > get arguments;
195125}
196126
197- @JS ()
198- @staticInterop
199- class EOF {}
200-
201- extension EOFExtension on EOF {
127+ extension type EOF ._(JSObject _) implements JSObject {
202128 external String get type;
203129 external String get value;
204130}
0 commit comments