[WebIDL] Remove need for custom binding for Worker constructor
[WebKit.git] / Source / WebCore / bindings / scripts / IDLAttributes.json
1 {
2     "contexts": [
3         "type",
4         "interface",
5         "attribute",
6         "operation",
7         "argument",
8         "callback-function",
9         "dictionary",
10         "dictionary-member",
11         "enum",
12         "constant",
13         "union-member",
14         "iterable",
15         "map-like",
16         "set-like"
17     ],
18     "attributes": {
19         "ActiveDOMObject": {
20             "contextsAllowed": ["interface"]
21         },
22         "AppleCopyright": {
23             "contextsAllowed": ["interface", "attribute", "operation"]
24         },
25         "AtomicString": {
26             "contextsAllowed": ["type"]
27         },
28         "CEReactions": {
29             "contextsAllowed": ["attribute", "operation"]
30         },
31         "CachedAttribute": {
32             "contextsAllowed": ["attribute"]
33         },
34         "CallbackNeedsOperatorEqual": {
35             "contextsAllowed": ["callback-function"]
36         },
37         "CallWith": {
38             "contextsAllowed": ["attribute", "operation"],
39             "values": ["Document", "ScriptExecutionContext", "ScriptState", "ScriptArguments", "CallStack", "GlobalObject", "ActiveWindow", "FirstWindow", "CallerDocument", "CallerWindow"]
40         },
41         "CheckSecurity": {
42             "contextsAllowed": ["interface"]
43         },
44         "CheckSecurityForNode": {
45             "contextsAllowed": ["attribute", "operation"]
46         },
47         "Clamp": {
48             "contextsAllowed": ["type"],
49             "standard": {
50                 "url": "https://heycam.github.io/webidl/#Clamp"
51             }
52         },
53         "Conditional": {
54             "contextsAllowed": ["interface", "dictionary", "dictionary-member", "enum", "attribute", "operation", "constant", "callback-function"],
55             "values": ["*"]
56         },
57         "ConstantsScope": {
58             "contextsAllowed": ["interface"],
59             "values": ["*"]
60         },
61         "Constructor": {
62             "contextsAllowed": ["interface"],
63             "standard": {
64                 "url": "https://heycam.github.io/webidl/#Constructor"
65             }
66         },
67         "ConstructorCallWith": {
68             "contextsAllowed": ["interface"],
69             "values": ["Document", "RuntimeFlags", "ScriptExecutionContext", "ScriptState"]
70         },
71         "ConstructorMayThrowException": {
72             "contextsAllowed": ["interface"]
73         },
74         "Custom": {
75             "contextsAllowed": ["attribute", "operation"]
76         },
77         "CustomCall": {
78             "contextsAllowed": ["interface"]
79         },
80         "CustomConstructor": {
81             "contextsAllowed": ["interface"]
82         },
83         "CustomDeleteProperty": {
84             "contextsAllowed": ["interface"]
85         },
86         "CustomEnumerateProperty": {
87             "contextsAllowed": ["interface"]
88         },
89         "CustomGetOwnPropertySlot": {
90             "contextsAllowed": ["interface"]
91         },
92         "CustomGetPrototype": {
93             "contextsAllowed": ["interface"]
94         },
95         "CustomGetter": {
96             "contextsAllowed": ["attribute"]
97         },
98         "CustomIndexedSetter": {
99             "contextsAllowed": ["interface"]
100         },
101         "CustomIsReachable": {
102             "contextsAllowed": ["interface"]
103         },
104         "CustomNamedGetter": {
105             "contextsAllowed": ["interface"]
106         },
107         "CustomNamedSetter": {
108             "contextsAllowed": ["interface"]
109         },
110         "CustomPreventExtensions": {
111             "contextsAllowed": ["interface"]
112         },
113         "CustomProxyToJSObject": {
114             "contextsAllowed": ["interface"]
115         },
116         "CustomPutFunction": {
117             "contextsAllowed": ["interface"]
118         },
119         "CustomSetter": {
120             "contextsAllowed": ["attribute"]
121         },
122         "CustomToJSObject": {
123             "contextsAllowed": ["interface"]
124         },
125         "CustomToStringName": {
126             "contextsAllowed": ["interface"]
127         },
128         "DOMJIT": {
129             "contextsAllowed": ["attribute", "operation"],
130             "values": ["", "ReadDOM", "Getter"]
131         },
132         "DoNotCheckConstants": {
133             "contextsAllowed": ["interface"]
134         },
135         "DoNotCheckSecurity": {
136             "contextsAllowed": ["attribute", "operation"]
137         },
138         "DoNotCheckSecurityOnGetter": {
139             "contextsAllowed": ["attribute"]
140         },
141         "DoNotCheckSecurityOnSetter": {
142             "contextsAllowed": ["attribute"]
143         },
144         "DocumentEventHandler": {
145             "contextsAllowed": ["attribute"]
146         },
147         "EnabledAtRuntime": {
148             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant", "iterable"],
149             "values": ["*"]
150         },
151         "EnabledBySetting": {
152             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant"],
153             "values": ["*"]
154         },
155         "EnabledForWorld": {
156             "contextsAllowed": ["attribute", "operation"],
157             "values": ["*"]
158         },
159         "EnforceRange": {
160             "contextsAllowed": ["type"],
161             "standard": {
162                 "url": "https://heycam.github.io/webidl/#EnforceRange"
163             }
164         },
165         "ExportMacro": {
166             "contextsAllowed": ["interface", "dictionary", "enum"],
167             "values": ["WEBCORE_EXPORT", "WEBCORE_TESTSUPPORT_EXPORT"]
168         },
169         "ExportToWrappedFunction": {
170             "contextsAllowed": ["interface"]
171         },
172         "Exposed": {
173             "contextsAllowed": ["interface", "attribute", "operation", "constant"],
174             "values": ["*"],
175             "standard": {
176                 "url": "https://heycam.github.io/webidl/#Exposed"
177             }
178         },
179         "ForwardDeclareInHeader": {
180             "contextsAllowed": ["attribute", "operation"]
181         },
182         "GenerateIsReachable": {
183             "contextsAllowed": ["interface"],
184             "values": ["", "Impl", "ImplWebGLRenderingContext", "ImplDocument", "ImplElementRoot", "ImplFrame", "ImplOwnerNodeRoot", "ImplScriptExecutionContext"]
185         },
186         "GetterMayThrowException": {
187             "contextsAllowed": ["attribute"]
188         },
189         "Global": {
190             "contextsAllowed": ["interface"],
191             "values": ["*"],
192             "standard": {
193                 "url": "https://heycam.github.io/webidl/#Global"
194             }
195         },
196         "ImplementedAs": {
197             "contextsAllowed": ["interface", "dictionary", "dictionary-member", "enum", "attribute", "operation"],
198             "values": ["*"]
199         },
200         "ImplementationLacksVTable": {
201             "contextsAllowed": ["interface"]
202         },
203         "ImplicitThis": {
204             "contextsAllowed": ["interface"]
205         },
206         "InterfaceName": {
207             "contextsAllowed": ["interface"],
208             "values": ["*"]
209         },
210         "IsImmutablePrototypeExoticObject": {
211             "contextsAllowed": ["interface"]
212         },
213         "IsImmutablePrototypeExoticObjectOnPrototype": {
214             "contextsAllowed": ["interface"]
215         },
216         "IsWeakCallback": {
217             "contextsAllowed": ["callback-function", "interface"]
218         },
219         "JSBuiltin": {
220             "contextsAllowed": ["interface", "attribute", "operation"]
221         },
222         "JSBuiltinConstructor": {
223             "contextsAllowed": ["interface"]
224         },
225         "JSCustomDefineOwnProperty": {
226             "contextsAllowed": ["interface"]
227         },
228         "JSCustomDefineOwnPropertyOnPrototype": {
229             "contextsAllowed": ["interface"]
230         },
231         "JSCustomFinalize": {
232             "contextsAllowed": ["interface"]
233         },
234         "JSCustomGetOwnPropertySlotAndDescriptor": {
235             "contextsAllowed": ["interface"]
236         },
237         "JSCustomHeader": {
238             "contextsAllowed": ["interface"]
239         },
240         "JSCustomMarkFunction": {
241             "contextsAllowed": ["interface"]
242         },
243         "JSCustomNamedGetterOnPrototype": {
244             "contextsAllowed": ["interface"]
245         },
246         "JSCustomPushEventHandlerScope": {
247             "contextsAllowed": ["interface"]
248         },
249         "JSCustomToNativeObject": {
250             "contextsAllowed": ["interface"]
251         },
252         "JSGenerateToJSObject": {
253             "contextsAllowed": ["interface", "dictionary", "callback-function"]
254         },
255         "JSGenerateToNativeObject": {
256             "contextsAllowed": ["interface"]
257         },
258         "JSLegacyParent": {
259             "contextsAllowed": ["interface"],
260             "values": ["*"]
261         },
262         "LegacyArrayClass": {
263             "contextsAllowed": ["interface"],
264             "standard": {
265                 "url": "https://heycam.github.io/webidl/#LegacyArrayClass"
266             },
267             "unsupported": true
268         },
269         "LegacyUnenumerableNamedProperties": {
270             "contextsAllowed": ["interface"],
271             "standard": {
272                 "url": "https://heycam.github.io/webidl/#LegacyUnenumerableNamedProperties"
273             }
274         },
275         "LenientSetter": {
276             "contextsAllowed": ["attribute"],
277             "standard": {
278                 "url": "https://heycam.github.io/webidl/#LenientSetter"
279             },
280             "unsupported": true
281         },
282         "LenientThis": {
283             "contextsAllowed": ["attribute"],
284             "standard": {
285                 "url": "https://heycam.github.io/webidl/#LenientThis"
286             }
287         },
288         "MasqueradesAsUndefined": {
289             "contextsAllowed": ["interface"]
290         },
291         "MayThrowException": {
292             "contextsAllowed": ["attribute", "operation"]
293         },
294         "NamedConstructor": {
295             "contextsAllowed": ["interface"],
296             "values": ["*"],
297             "standard": {
298                 "url": "https://heycam.github.io/webidl/#NamedConstructor"
299             }
300         },
301         "NewImpurePropertyFiresWatchpoints": {
302             "contextsAllowed": ["interface"]
303         },
304         "NewObject": {
305             "contextsAllowed": ["attribute", "operation"],
306             "standard": {
307                 "url": "https://heycam.github.io/webidl/#NewObject"
308             }
309         },
310         "NoInterfaceObject": {
311             "contextsAllowed": ["interface"],
312             "standard": {
313                 "url": "https://heycam.github.io/webidl/#NoInterfaceObject"
314             }
315         },
316         "NotEnumerable": {
317             "contextsAllowed": ["attribute", "operation"]
318         },
319         "OverrideBuiltins": {
320             "contextsAllowed": ["interface"],
321             "standard": {
322                 "url": "https://heycam.github.io/webidl/#OverrideBuiltins"
323             }
324         },
325         "OverrideIDLType": {
326             "contextsAllowed": ["type"],
327             "values": ["*"]
328         },
329         "PassContext": {
330             "contextsAllowed": ["operation"],
331             "notes" : "Only used by WebKitTestRunner and DumpRenderTree"
332         },
333         "PrimaryGlobal": {
334             "contextsAllowed": ["interface"],
335             "values": ["*"],
336             "standard": {
337                 "url": "https://heycam.github.io/webidl/#Global"
338             }
339         },
340         "PrivateIdentifier": {
341             "contextsAllowed": ["interface", "attribute", "operation"]
342         },
343         "PublicIdentifier": {
344             "contextsAllowed": ["interface", "attribute", "operation"]
345         },
346         "PutForwards": {
347             "contextsAllowed": ["attribute"],
348             "values": ["*"],
349             "standard": {
350                 "url": "https://heycam.github.io/webidl/#PutForwards"
351             }
352         },
353         "Reflect": {
354             "contextsAllowed": ["attribute", "constant"],
355             "values": ["*"]
356         },
357         "Replaceable": {
358             "contextsAllowed": ["attribute"],
359             "standard": {
360                 "url": "https://heycam.github.io/webidl/#Replaceable"
361             }
362         },
363         "ReportExtraMemoryCost": {
364             "contextsAllowed": ["interface"]
365         },
366         "ReportExternalMemoryCost": {
367             "contextsAllowed": ["interface"]
368         },
369         "RequiresExistingAtomicString": {
370             "contextsAllowed": ["type"]
371         },
372         "SameObject": {
373             "contextsAllowed": ["attribute"],
374             "standard": {
375                 "url": "https://heycam.github.io/webidl/#Replaceable"
376             },
377             "unsupported": true
378         },
379         "SecureContext": {
380             "contextsAllowed": ["interface", "dictionary", "enum", "attribute", "operation", "constant"],
381             "standard": {
382                 "url": "https://heycam.github.io/webidl/#SecureContext"
383             },
384             "unsupported": true
385         },
386         "SetterCallWith": {
387             "contextsAllowed": ["attribute"],
388             "values": ["ScriptExecutionContext", "ScriptState", "ScriptArguments", "CallStack", "GlobalObject", "ActiveWindow", "FirstWindow"]
389         },
390         "SetterMayThrowException": {
391             "contextsAllowed": ["attribute"]
392         },
393         "SkipVTableValidation": {
394             "contextsAllowed": ["interface"]
395         },
396         "SuppressToJSObject": {
397             "contextsAllowed": ["interface"]
398         },
399         "TreatNonObjectAsNull": {
400             "contextsAllowed": ["callback-function"],
401             "standard": {
402                 "url": "https://heycam.github.io/webidl/#TreatNonObjectAsNull"
403             },
404             "unsupported": true
405         },
406         "TreatNullAs": {
407             "contextsAllowed": ["type"],
408             "values": ["EmptyString"],
409             "standard": {
410                 "url": "https://heycam.github.io/webidl/#TreatNullAs"
411             }
412         },
413         "URL": {
414             "contextsAllowed": ["attribute"]
415         },
416         "Unforgeable": {
417             "contextsAllowed": ["attribute", "operation", "interface"],
418             "standard": {
419                 "url": "https://heycam.github.io/webidl/#Unforgeable"
420             }
421         },
422         "Unscopable": {
423             "contextsAllowed": ["attribute", "operation"],
424             "standard": {
425                 "url": "https://heycam.github.io/webidl/#Unscopable"
426             }
427         },
428         "WindowEventHandler": {
429             "contextsAllowed": ["attribute"]
430         }
431     }
432 }